]> git.pld-linux.org Git - packages/vim.git/blob - vim-gtk2-20030206.patch
- _with_gtk1 bcond description
[packages/vim.git] / vim-gtk2-20030206.patch
1 Index: runtime/menu.vim
2 ===================================================================
3 RCS file: /cvsroot/vim/vim/runtime/menu.vim,v
4 retrieving revision 1.76
5 diff -u -3 -p -r1.76 menu.vim
6 --- runtime/menu.vim    19 Nov 2002 23:53:46 -0000      1.76
7 +++ runtime/menu.vim    6 Feb 2003 17:52:16 -0000
8 @@ -695,6 +695,7 @@ func! s:BMMunge(fname, bnum)
9    endif
10    let name = name2 . "\t" . <SID>BMTruncName(fnamemodify(name,':h'))
11    let name = escape(name, "\\. \t|")
12 +  let name = substitute(name, "&", "&&", "g")
13    let name = substitute(name, "\n", "^@", "g")
14    return name
15  endfunc
16 Index: runtime/doc/gui.txt
17 ===================================================================
18 RCS file: /cvsroot/vim/vim/runtime/doc/gui.txt,v
19 retrieving revision 1.58
20 diff -u -3 -p -r1.58 gui.txt
21 --- runtime/doc/gui.txt 13 May 2002 15:35:02 -0000      1.58
22 +++ runtime/doc/gui.txt 6 Feb 2003 17:52:17 -0000
23 @@ -493,7 +493,8 @@ which when selected, performs the operat
24  Special characters in a menu name:
25  
26         &       The next character is the shortcut key.  Make sure each
27 -               shortcut key is only used once in a (sub)menu.
28 +               shortcut key is only used once in a (sub)menu.  If you want to
29 +               insert a literal "&" in the menu name use "&&".
30         <Tab>   Separates the menu name from right-aligned text.  This can be
31                 used to show the equivalent typed command.  The text "<Tab>"
32                 can be used here for convenience.  If you are using a real
33 @@ -576,7 +577,8 @@ When no or zero priority is given, 500 i
34  The priority for the PopUp menu is not used.
35  
36  The Help menu will be placed on the far right side of the menu bar on systems
37 -which support this (Motif and GTK+).
38 +which support this (Motif and GTK+).  For GTK+ 2, this is not done anymore
39 +because right-aligning the Help menu is now discouraged UI design.
40  
41  You can use a priority higher than 9999, to make it go after the Help menu,
42  but that is non-standard and is discouraged.  The highest possible priority is
43 @@ -644,8 +646,10 @@ level.  Vim interprets the items in this
44      toolbar button image.  Note that the exact filename is OS-specific: For
45      example, under Win32 the command >
46         :amenu ToolBar.Hello :echo "hello"<CR>
47 -<   would find the file 'hello.bmp'.  Under GTK+/X11 it is 'Hello.xpm'.
48 -    For MS-Windows the bitmap is scaled to fit the button.
49 +<   would find the file 'hello.bmp'.  Under GTK+/X11 it is 'Hello.xpm'.  With
50 +    GTK+ 2 the files 'Hello.png', 'Hello.xpm' and 'Hello.bmp' are checked for
51 +    existence, and the first one found would be used.
52 +    For MS-Windows and GTK+ 2 the bitmap is scaled to fit the button.
53      For others the size of the default pixmaps used is 20 by 20 pixels.
54      For MS-Windows the bitmap should have 16 colors with the standard pallete.
55      The light grey pixels will be changed to the Window frame color and the
56 @@ -826,8 +830,10 @@ The tip is defined like this: >
57  And delete it with: >
58         :tunmenu MyMenu.Hello
59  
60 -When using the GTK GUI, and Vim has already opened the GUI window, the tooltip
61 -must be defined before the ToolBar menu.  Otherwise it won't show up.
62 +When using the GTK+ 1.2 GUI, and Vim has already opened the GUI window, the
63 +tooltip must be defined before the ToolBar menu.  Otherwise it won't show up.
64 +In the GTK+ 2 port the tooltip is now updated on the fly, so this is no longer
65 +necessary.
66  
67  Tooltips are currently only supported for the X11 and Win32 GUI. However, they
68  should appear for the other gui platforms in the not too distant future.
69 Index: runtime/doc/gui_x11.txt
70 ===================================================================
71 RCS file: /cvsroot/vim/vim/runtime/doc/gui_x11.txt,v
72 retrieving revision 1.57
73 diff -u -3 -p -r1.57 gui_x11.txt
74 --- runtime/doc/gui_x11.txt     25 Mar 2002 17:00:32 -0000      1.57
75 +++ runtime/doc/gui_x11.txt     6 Feb 2003 17:52:17 -0000
76 @@ -315,14 +315,15 @@ internally.  Look in the GTK documentati
77         --sync
78         --gdk-debug
79         --gdk-no-debug
80 -       --no-xshm
81 -       --xim-preedit
82 -       --xim-status
83 +       --no-xshm       (not in GTK+ 2)
84 +       --xim-preedit   (not in GTK+ 2)
85 +       --xim-status    (not in GTK+ 2)
86         --gtk-debug
87         --gtk-no-debug
88         --g-fatal-warnings
89         --gtk-module
90         --display       (GTK+ counterpart of -display; works the same way.)
91 +       --screen        (The screen number; for GTK+ 2.2 multihead support.)
92  
93  As for colors, vim's color settings (for syntax highlighting) is still
94  done the traditional vim way.  See |:highlight| for more help.
95 @@ -365,7 +366,8 @@ application to spawn the Vim correctly. 
96  http://www.gtk.org/api/
97  
98  Note that this feature requires the latest GTK version.  GTK 1.2.10 still has
99 -a small problem.
100 +a small problem.  The socket feature has not yet been tested with GTK+ 2 --
101 +feel free to volunteer.
102  
103  ==============================================================================
104  6. GNOME version                               *gui-gnome* *Gnome* *GNOME*
105 @@ -373,17 +375,31 @@ a small problem.
106  The Gnome GUI works just like the GTK version.  It only looks a bit different.
107  See |GTK| above for how it works.
108  
109 +On the other hand, the GNOME 2 GUI looks barely different from the GTK+ 2
110 +version but implements an important feature that is not available in plain
111 +GTK+ 2:  Interaction with the session manager.
112 +
113 +On logout, Vim will show the usual exit confirmation dialog if any buffers are
114 +still modified.  Clicking [Cancel] will stop the logout process.  Otherwise
115 +the current session is stored to disk by using the |:mksession| command, and
116 +restored the next time you log in.
117 +
118 +Note that the Session.vim file is written to a separate sub-directory of
119 +$HOME/.gnome2 (the exact filename is based on a per-save unique key).  Your
120 +own session files will not be touched at all.
121 +
122  These are the different looks:
123 -- Uses GNOME dialogs.
124 +- Uses GNOME dialogs (GNOME 1 only).  The GNOME 2 GUI uses the same nice
125 +  dialogs as the GTK+ 2 version.
126  - Uses the GNOME dock, so that the toolbar and menubar can be moved to
127    different locations other than the top (e.g., the toolbar can be placed on
128 -  the left, right, top, or bottom).  The positioning of the menubar and
129 -  toolbar isn't saved right now; I think that's for GNOME session management
130 -  which isn't supported (yet).
131 +  the left, right, top, or bottom).  The placement of the menubar and
132 +  toolbar is only saved in the GNOME 2 version.
133  - That means the menubar and toolbar handles are back!  Yeah!  And the
134    resizing grid still works too.
135  
136  Gnome is automatically compiled with if it was found by configure.
137 +(FIXME: Is this still true?  Use --enable-gnome-check to force it to.)
138  
139  ==============================================================================
140  7. Compiling                                           *gui-x11-compiling*
141 @@ -399,6 +415,12 @@ you can already successful compile, buil
142  reason for this is because the compiler flags (CFLAGS) and link flags
143  (LDFLAGS) are obtained through the 'gtk-config' shell script.
144  
145 +If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument
146 +to ./configure.  Optionally, support for GNOME 2 will be compiled if the
147 +--enable-gnome-check option is also given.  Note that the support for GTK+ 2
148 +is still experimental.  However, many people have reported that it works just
149 +fine for them.
150 +
151  Otherwise, if you are using Motif or Athena, when you have the Motif or Athena
152  files in a directory where configure doesn't look, edit the Makefile to enter
153  the names of the directories.  Search for "GUI_INC_LOC" for an example to set
154 @@ -411,8 +433,15 @@ if using v1.0.6.  For instance, there ar
155  Using a version from GTK+'s CVS tree may or may not work, and is therefore not
156  supported and not recommended.
157  
158 +For the experimental GTK+ 2 GUI, using the latest release in the GTK+ 2.0 or
159 +GTK+ 2.2 series is recommended.  CVS HEAD seems to work fine most of time as
160 +well.
161 +
162  Lastly, although GTK+ has supposedly been ported to the Win32 platform, this
163 -has not been tested with Vim and is also unsupported.
164 +has not been tested with Vim and is also unsupported.  Also, it's unlikely to
165 +even compile since GTK+ GUI uses parts of the generic X11 code.  This might
166 +change in distant future; particularly because getting rid of the X11 centric
167 +code parts is also required for GTK+ framebuffer support.
168  
169                                                         *gui-x11-motif*
170  For Motif, you need at least Motif version 1.2 and/or X11R5.  Motif 2.0 and
171 Index: runtime/doc/mbyte.txt
172 ===================================================================
173 RCS file: /cvsroot/vim/vim/runtime/doc/mbyte.txt,v
174 retrieving revision 1.7
175 diff -u -3 -p -r1.7 mbyte.txt
176 --- runtime/doc/mbyte.txt       25 Mar 2002 17:00:33 -0000      1.7
177 +++ runtime/doc/mbyte.txt       6 Feb 2003 17:52:18 -0000
178 @@ -105,6 +105,12 @@ is the difficult part.  It depends on th
179  a few other things.  See the chapters on fonts: |mbyte-fonts-X11| for
180  X-Windows and |mbyte-fonts-MSwin| for MS-Windows.
181  
182 +For GTK+ 2, you can skip the rest of this section.  The options 'guifontset'
183 +and 'guifontwide' do no longer exist.  You only need to set 'guifont' and
184 +everything should "just work".  If your system comes with Xft2 and fontconfig
185 +and the current font does not contain a certain glyph, a different font will
186 +be used automatically if available.
187 +
188  For X11 you can set the 'guifontset' option to a list of fonts that together
189  cover the characters that are used.  Example for Korean: >
190  
191 @@ -493,6 +499,11 @@ For Vim you may need to set 'encoding' t
192  Unfortunately, using fonts in X11 is complicated.  The name of a single-byte
193  font is a long string.  For multi-byte fonts we need several of these...
194  
195 +Note: Most of this is no longer relevant for GTK+ 2.  Selecting a font via
196 +its XLFD is not supported anymore; see |'guifont'| for an example of how to
197 +set the font.  Do yourself a favour and ignore the |XLFD| and |fontset|
198 +sections below.
199 +
200  First of all, Vim only accepts fixed-width fonts for displaying text.  You
201  cannot use proportionally spaced fonts.  This excludes many of the available
202  (and nicer looking) fonts.  However, for menus and tooltips any font can be
203 @@ -991,7 +1002,7 @@ The length of the two items together mus
204  
205  It's possible to have more than one character in the first column.  This works
206  like a dead key.  Example: >
207 -       'a      Ã¡
208 +       'a      Ã¡
209  Since Vim doesn't know if the next character after a quote is really an "a",
210  it will wait for the next character.  To be able to insert a single quote,
211  also add this line: >
212 @@ -1175,7 +1186,8 @@ Vim has comprehensive UTF-8 support.  It
213  
214  Double-width characters are supported.  This works best with 'guifontwide' or
215  'guifontset'.  When using only 'guifont' the wide characters are drawn in the
216 -normal width and a space to fill the gap.
217 +normal width and a space to fill the gap.  Note that the 'guifontwide' and
218 +'guifontset' options are no longer relevant for the GTK+ 2 GUI.
219  
220  Up to two combining characters can be used.  The combining character is drawn
221  on top of the preceding character.  When editing text a composing character is
222 @@ -1222,6 +1234,8 @@ doesn't always work.  See the system spe
223  
224  
225  USING UTF-8 IN X-Windows                               *utf-8-in-xwindows*
226 +
227 +Note: This section does not apply to the GTK+ 2 GUI.
228  
229  You need to specify a font to be used.  For double-wide characters another
230  font is required, which is exactly twice as wide.  There are three ways to do
231 Index: runtime/doc/options.txt
232 ===================================================================
233 RCS file: /cvsroot/vim/vim/runtime/doc/options.txt,v
234 retrieving revision 1.67
235 diff -u -3 -p -r1.67 options.txt
236 --- runtime/doc/options.txt     9 Jan 2003 21:14:38 -0000       1.67
237 +++ runtime/doc/options.txt     6 Feb 2003 17:52:23 -0000
238 @@ -1842,6 +1842,14 @@ A jump table for the options with a shor
239         It should normally be kept at its default value, or set when Vim
240         starts up.  See |multibyte|.
241  
242 +       NOTE: For GTK+ 2 it is highly recommended to set 'encoding' to
243 +       "utf-8".  Although care has been taken to allow different values of
244 +       'encoding', "utf-8" is the natural choice for the environment and
245 +       avoids unnecessary conversion overhead.  "utf-8" has not been made
246 +       the default to prevent different behaviour of the GUI and terminal
247 +       versions, and to avoid changing the encoding of newly created files
248 +       without your knowledge (in case 'fileencodings' is empty).
249 +
250         The character encoding of files can be different from 'encoding'.
251         This is specified with 'fileencoding'.  The conversion is done with
252         iconv() or as specified with 'charconvert'.
253 @@ -2554,6 +2562,9 @@ A jump table for the options with a shor
254             :set guifont=Screen15,\ 7x13,font\\,with\\,commas
255  <      will make vim try to use the font "Screen15" first, and if it fails it
256         will try to use "7x13" and then "font,with,commas" instead.
257 +       For the GTK+ 2 GUI the font name looks like this: >
258 +           :set guifont=Andale\ Mono\ 11
259 +<      That's all.  XLFDs are no longer accepted.
260                                                                 *E236*
261         Note that the fonts must be mono-spaced (all characters have the same
262         width).
263 @@ -2596,6 +2607,7 @@ A jump table for the options with a shor
264                         {not in Vi}
265                         {only available when compiled with GUI enabled and
266                         with the |+xfontset| feature}
267 +                       {not available in the GTK+ 2 GUI}
268         When not empty, specifies two (or more) fonts to be used.  The first
269         one for normal English, the second one for your special language.  See
270         |xfontset|.
271 @@ -2612,12 +2624,16 @@ A jump table for the options with a shor
272         fontset names.
273         This example works on many X11 systems: >
274                 :set guifontset=-*-*-medium-r-normal--16-*-*-*-c-*-*-*
275 -<
276 +<      Note that in the GTK+ 2 version, there is no longer a difference
277 +       between 'guifont' and 'guifontset'.  Setting 'guifont' is sufficient
278 +       and internationalized text will "just work".
279 +
280                                                 *'guifontwide'* *'gfw'* *E231*
281  'guifontwide' 'gfw'    string  (default "")
282                         global
283                         {not in Vi}
284                         {only available when compiled with GUI enabled}
285 +                       {not available in the GTK+ 2 GUI}
286         When not empty, specifies a comma-separated list of fonts to be used
287         for double-width characters.  The first font that can be loaded is
288         used.
289 @@ -5436,6 +5452,10 @@ A jump table for the options with a shor
290         encoding the keyboard produces and the display will understand.  For
291         the GUI it only applies to the keyboard ('encoding' is used for the
292         display).
293 +       Note: This does not apply to the GTK+ 2 GUI.  After the GUI has been
294 +       successfully initialized, 'termencoding' is forcibly set to "utf-8".
295 +       Any attempts to set a different value will be rejected, and an error
296 +       message is shown.
297         When empty, the same encoding is used as for the 'encoding' option.
298         This is the normal value.
299         Not all combinations for 'termencoding' and 'encoding' are valid.  See
300 @@ -5674,6 +5694,17 @@ A jump table for the options with a shor
301                 tooltips        Tooltips are active for toolbar buttons.
302         Tooltips refer to the popup help text which appears after the mouse
303         cursor is placed over a toolbar button for a brief moment.
304 +
305 +       In the GTK+ 2 GUI, a few additional option values are available:
306 +               horiz           The button text is placed on the right of
307 +                               the icon rather than below.
308 +               large           Use large toolbar icons.
309 +               medium          Use medium-sized toolbar icons.
310 +               small           Use small toolbar icons (default).
311 +               tiny            Use tiny toolbar icons.
312 +       The exact dimensions in pixels of the various icon sizes depend on
313 +       the current theme.  Common dimensions are large=32x32, medium=24x24,
314 +       small=20x20 and tiny=16x16.
315  
316         If you want the toolbar to be shown with icons as well as text, do the
317         following: >
318 Index: src/config.h.in
319 ===================================================================
320 RCS file: /cvsroot/vim/vim/src/config.h.in,v
321 retrieving revision 1.27
322 diff -u -3 -p -r1.27 config.h.in
323 --- src/config.h.in     6 Jan 2003 21:11:14 -0000       1.27
324 +++ src/config.h.in     6 Feb 2003 17:52:23 -0000
325 @@ -317,6 +317,9 @@
326  /* Define if you use GTK and want GNOME support. */
327  #undef FEAT_GUI_GNOME
328  
329 +/* Define if GTK+ 2 is available. */
330 +#undef HAVE_GTK2
331 +
332  /* Define if your X has own locale library */
333  #undef X_LOCALE
334  
335 Index: src/configure
336 ===================================================================
337 RCS file: /cvsroot/vim/vim/src/configure,v
338 retrieving revision 1.10
339 diff -u -3 -p -r1.10 configure
340 --- src/configure       30 Jul 2000 23:10:57 -0000      1.10
341 +++ src/configure       6 Feb 2003 17:52:23 -0000
342 @@ -1,4 +1,4 @@
343  #! /bin/sh
344  # run the automatically generated configure script
345  CONFIG_STATUS=auto/config.status \
346 -       auto/configure "$@" --srcdir="${srcdir-.}" --cache-file=auto/config.cache
347 +       auto/configure "$@" --srcdir="${srcdir-.}" --cache-file=/dev/null
348 Index: src/configure.in
349 ===================================================================
350 RCS file: /cvsroot/vim/vim/src/configure.in,v
351 retrieving revision 1.65
352 diff -u -3 -p -r1.65 configure.in
353 --- src/configure.in    6 Jan 2003 21:11:16 -0000       1.65
354 +++ src/configure.in    6 Feb 2003 17:52:24 -0000
355 @@ -740,6 +740,7 @@ AC_ARG_ENABLE(gui,
356  if test "x$BEOS" = "xyes"; then
357  
358    SKIP_GTK=YES
359 +  SKIP_GTK2=YES
360    SKIP_GNOME=YES
361    SKIP_MOTIF=YES
362    SKIP_ATHENA=YES
363 @@ -758,6 +759,7 @@ if test "x$BEOS" = "xyes"; then
364  
365  elif test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
366    SKIP_GTK=YES
367 +  SKIP_GTK2=YES
368    SKIP_GNOME=YES
369    SKIP_MOTIF=YES
370    SKIP_ATHENA=YES
371 @@ -777,6 +779,7 @@ elif test "x$QNX" = "xyes" -a "x$with_x"
372  else
373  
374    SKIP_GTK=
375 +  SKIP_GTK2=
376    SKIP_GNOME=
377    SKIP_MOTIF=
378    SKIP_ATHENA=
379 @@ -825,6 +828,17 @@ if test "x$SKIP_GNOME" != "xYES" -a "$en
380    fi
381  fi
382  
383 +if test "x$SKIP_GTK2" != "xYES"; then
384 +  AC_MSG_CHECKING(whether or not to look for GTK2)
385 +  AC_ARG_ENABLE(gtk2-check,
386 +       [  --enable-gtk2-check     If GTK GUI, check for GTK2 (experimental) [default=no]],
387 +       , enable_gtk2_check="no")
388 +  AC_MSG_RESULT($enable_gtk2_check);
389 +  if test "x$enable_gtk2_check" = "xno"; then
390 +    SKIP_GTK2=YES
391 +  fi
392 +fi
393 +
394  if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui" != "motif"; then
395    AC_MSG_CHECKING(whether or not to look for Motif)
396    AC_ARG_ENABLE(motif-check,
397 @@ -860,72 +874,96 @@ dnl Test for GTK, and define GTK_CFLAGS 
398  dnl
399  AC_DEFUN(AM_PATH_GTK,
400  [
401 -  if test "X$GTK_CONFIG" != "X"; then
402 -
403 +  if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
404 +  {
405      min_gtk_version=ifelse([$1], ,0.99.7,$1)
406      AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
407      no_gtk=""
408 -    if test "$GTK_CONFIG" = "no" ; then
409 -      no_gtk=yes
410 -    else
411 +    if test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno"; then
412 +    {
413 +      dnl We should be using PKG_CHECK_MODULES() instead of this hack.
414 +      dnl But I guess the dependency on pkgconfig.m4 is not wanted or
415 +      dnl something like that.
416 +      if $PKG_CONFIG --exists gtk+-2.0; then
417 +        GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
418 +        GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
419 +        gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
420 +               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
421 +        gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
422 +               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
423 +        gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
424 +               sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
425 +      else
426 +        no_gtk=yes
427 +      fi
428 +    }
429 +    elif test "X$GTK_CONFIG" != "Xno"; then
430 +    {
431        GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
432        GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
433 -      gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
434 -            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
435 -      gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
436 -            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
437 -      gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
438 -            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
439 -      if test "x$enable_gtktest" = "xyes" ; then
440 -       ac_save_CFLAGS="$CFLAGS"
441 -       ac_save_LIBS="$LIBS"
442 -       CFLAGS="$CFLAGS $GTK_CFLAGS"
443 -       LIBS="$LIBS $GTK_LIBS"
444 -
445 -       dnl
446 -       dnl Now check if the installed GTK is sufficiently new. (Also sanity
447 -       dnl checks the results of gtk-config to some extent
448 -       dnl
449 -       rm -f conf.gtktest
450 -       AC_TRY_RUN([
451 +      gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
452 +            sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
453 +      gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
454 +            sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
455 +      gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
456 +            sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
457 +    }
458 +    else
459 +      no_gtk=yes
460 +    fi
461 +
462 +    if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
463 +    {
464 +      ac_save_CFLAGS="$CFLAGS"
465 +      ac_save_LIBS="$LIBS"
466 +      CFLAGS="$CFLAGS $GTK_CFLAGS"
467 +      LIBS="$LIBS $GTK_LIBS"
468 +
469 +      dnl
470 +      dnl Now check if the installed GTK is sufficiently new. (Also sanity
471 +      dnl checks the results of gtk-config to some extent
472 +      dnl
473 +      rm -f conf.gtktest
474 +      AC_TRY_RUN([
475  #include <gtk/gtk.h>
476  #include <stdio.h>
477  
478  int
479  main ()
480  {
481 -  int major, minor, micro;
482 -  char *tmp_version;
483 +int major, minor, micro;
484 +char *tmp_version;
485  
486 -  system ("touch conf.gtktest");
487 +system ("touch conf.gtktest");
488  
489 -  /* HP/UX 9 (%@#!) writes to sscanf strings */
490 -  tmp_version = g_strdup("$min_gtk_version");
491 -  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
492 -     printf("%s, bad version string\n", "$min_gtk_version");
493 -     exit(1);
494 -   }
495 -
496 -  if ((gtk_major_version > major) ||
497 -      ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
498 -      ((gtk_major_version == major) && (gtk_minor_version == minor) &&
499 -                                      (gtk_micro_version >= micro)))
500 -  {
501 -      return 0;
502 -  }
503 -  return 1;
504 +/* HP/UX 9 (%@#!) writes to sscanf strings */
505 +tmp_version = g_strdup("$min_gtk_version");
506 +if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
507 +   printf("%s, bad version string\n", "$min_gtk_version");
508 +   exit(1);
509 + }
510 +
511 +if ((gtk_major_version > major) ||
512 +    ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
513 +    ((gtk_major_version == major) && (gtk_minor_version == minor) &&
514 +                                     (gtk_micro_version >= micro)))
515 +{
516 +    return 0;
517 +}
518 +return 1;
519  }
520  ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
521 -       CFLAGS="$ac_save_CFLAGS"
522 -       LIBS="$ac_save_LIBS"
523 -      fi
524 +      CFLAGS="$ac_save_CFLAGS"
525 +      LIBS="$ac_save_LIBS"
526 +    }
527      fi
528      if test "x$no_gtk" = x ; then
529 -      AC_MSG_RESULT(yes)
530 +      AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
531        ifelse([$2], , :, [$2])
532      else
533 +    {
534        AC_MSG_RESULT(no)
535 -      if test "$GTK_CONFIG" = "no" ; then
536 +      if test "X$GTK_CONFIG" = "Xno" ; then
537         :
538        else
539         if test -f conf.gtktest ; then
540 @@ -936,7 +974,9 @@ main ()
541        GTK_CFLAGS=""
542        GTK_LIBS=""
543        ifelse([$3], , :, [$3])
544 +    }
545      fi
546 +  }
547    else
548      GTK_CFLAGS=""
549      GTK_LIBS=""
550 @@ -983,7 +1023,24 @@ AC_DEFUN([GNOME_INIT_HOOK],
551      fi,
552      want_gnome=yes)
553  
554 -  if test "x$want_gnome" = xyes; then
555 +  if test "x$want_gnome" = xyes -a $gtk_major_version -ge 2; then
556 +  {
557 +    AC_MSG_CHECKING(for libgnomeui-2.0)
558 +    if $PKG_CONFIG --exists libgnomeui-2.0; then
559 +      AC_MSG_RESULT(yes)
560 +      GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
561 +      GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
562 +      GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
563 +      $1
564 +    else
565 +      AC_MSG_RESULT(not found)
566 +      if test "x$2" = xfail; then
567 +       AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
568 +      fi
569 +    fi
570 +  }
571 +  elif test "x$want_gnome" = xyes; then
572 +  {
573      AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
574      if test "$GNOME_CONFIG" = "no"; then
575        no_gnome_config="yes"
576 @@ -1026,6 +1083,7 @@ AC_DEFUN([GNOME_INIT_HOOK],
577         fi
578        fi
579      fi
580 +  }
581    fi
582  ])
583  
584 @@ -1078,10 +1136,13 @@ if test -z "$SKIP_GTK"; then
585    else
586      AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
587    fi
588 +  if test "X$PKG_CONFIG" = "X"; then
589 +    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
590 +  fi
591  
592    dnl We require at least GTK 1.1.16.  1.0.6 doesn't work.  1.1.1 to 1.1.15
593    dnl were test versions.
594 -  if test "X$GTK_CONFIG" != "X"; then
595 +  if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
596      AM_PATH_GTK(1.1.16,
597                 [GTK_LIBNAME="$GTK_LIBS"
598                 GUI_INC_LOC="$GTK_CFLAGS"], )
599 @@ -1094,20 +1155,27 @@ if test -z "$SKIP_GTK"; then
600    fi
601    dnl Give a warning if GTK is older than 1.2.3
602    if test "x$GUITYPE" = "xGTK"; then
603 -    if test $gtk_config_major_version = 1 -a $gtk_config_minor_version -lt 2 -o $gtk_config_major_version = 1 -a $gtk_config_minor_version = 2 -a $gtk_config_micro_version -lt 3; then
604 +    if test $gtk_major_version = 1 -a $gtk_minor_version -lt 2 -o $gtk_major_version = 1 -a $gtk_minor_version = 2 -a $gtk_micro_version -lt 3; then
605        AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
606      else
607 +    {
608 +      if test $gtk_major_version -ge 2; then
609 +       AC_DEFINE(HAVE_GTK2)
610 +      fi
611        dnl
612        dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
613        dnl
614        if test -z "$SKIP_GNOME"; then
615 +      {
616         GNOME_INIT_HOOK([have_gnome=yes])
617         if test x$have_gnome = xyes ; then
618           AC_DEFINE(FEAT_GUI_GNOME)
619           GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
620           GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
621         fi
622 +      }
623        fi
624 +    }
625      fi
626    fi
627  fi
628 @@ -1279,6 +1347,14 @@ if test -z "$SKIP_ATHENA" -o -z "$SKIP_M
629                   AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
630    fi
631    CPPFLAGS=$cppflags_save
632 +
633 +  dnl This was in to disable XIM when gtk2 was the gui, since XIM wasn't 
634 +  dnl building with gtk2.  It's better now, though, so this is commented out.
635 +  dnl if test "x$enable_xim" = "xauto" -a "x$GUITYPE" = "xGTK" -a $gtk_major_version = "2"; then
636 +  dnl AC_MSG_RESULT(GTK2 GUI selected; xim has been disabled (it's broken for gtk2))
637 +  dnl enable_xim="no"
638 +  dnl fi
639 +    
640  
641    dnl automatically enable XIM when hangul input isn't enabled
642    if test "$enable_xim" = "auto" -a ! "$enable_hangulinput" = "yes" \
643 Index: src/feature.h
644 ===================================================================
645 RCS file: /cvsroot/vim/vim/src/feature.h,v
646 retrieving revision 1.48
647 diff -u -3 -p -r1.48 feature.h
648 --- src/feature.h       27 Sep 2002 23:58:01 -0000      1.48
649 +++ src/feature.h       6 Feb 2003 17:52:24 -0000
650 @@ -541,6 +541,10 @@
651  # define FEAT_SESSION
652  #endif
653  
654 +#if defined(FEAT_SESSION) && defined(FEAT_GUI_GNOME) && defined(HAVE_GTK2)
655 +# define USE_GNOME_SESSION /* use GNOME session support if available */
656 +#endif
657 +
658  /*
659   * +multi_lang         Multi language support. ":menutrans", ":language", etc.
660   * +gettext            Message translations (requires +multi_lang)
661 @@ -561,7 +565,8 @@
662   * Disabled for EBCDIC:
663   * Multibyte support doesn't work on OS390 Unix currently.
664   */
665 -#if defined(FEAT_BIG) && !defined(FEAT_MBYTE) && !defined(WIN16) \
666 +#if (defined(FEAT_BIG) || defined(HAVE_GTK2)) \
667 +       && !defined(FEAT_MBYTE) && !defined(WIN16) \
668         && SIZEOF_INT >= 4 && !defined(EBCDIC)
669  # define FEAT_MBYTE
670  #endif
671 @@ -626,7 +631,7 @@
672   * +xfontset           X fontset support.  For outputting wide characters.
673   */
674  #ifndef FEAT_XFONTSET
675 -# if defined(FEAT_MBYTE) && defined(HAVE_X11)
676 +# if defined(FEAT_MBYTE) && defined(HAVE_X11) && !defined(HAVE_GTK2)
677  #  define FEAT_XFONTSET
678  # else
679  /* #  define FEAT_XFONTSET */
680 Index: src/fileio.c
681 ===================================================================
682 RCS file: /cvsroot/vim/vim/src/fileio.c,v
683 retrieving revision 1.97
684 diff -u -3 -p -r1.97 fileio.c
685 --- src/fileio.c        3 Feb 2003 18:45:11 -0000       1.97
686 +++ src/fileio.c        6 Feb 2003 17:52:27 -0000
687 @@ -708,7 +708,11 @@ readfile(fname, sfname, from, lines_to_s
688      }
689      else if (curbuf->b_help)
690      {
691 -       fenc = (char_u *)"latin1";      /* help files are latin1 */
692 +       /* Help files are latin1 or utf-8 (e.g. mbyte.txt).
693 +        * Try utf-8 first since reading as latin1 always succeeds.
694 +        */
695 +       fenc_next = (char_u *)"latin1";
696 +       fenc = (char_u *)"utf-8";
697         fenc_alloced = FALSE;
698      }
699      else if (*p_fencs == NUL)
700 Index: src/globals.h
701 ===================================================================
702 RCS file: /cvsroot/vim/vim/src/globals.h,v
703 retrieving revision 1.69
704 diff -u -3 -p -r1.69 globals.h
705 --- src/globals.h       19 Nov 2002 23:51:47 -0000      1.69
706 +++ src/globals.h       6 Feb 2003 17:52:27 -0000
707 @@ -617,10 +617,14 @@ EXTERN int* (*iconv_errno) (void);
708  
709  #ifdef FEAT_XIM
710  # ifdef FEAT_GUI_GTK
711 +#  ifdef HAVE_GTK2
712 +EXTERN GtkIMContext    *xic INIT(= NULL);
713 +#  else
714  EXTERN GdkICAttr       *xic_attr INIT(= NULL);
715  EXTERN GdkIC           *xic INIT(= NULL);
716  EXTERN colnr_T         preedit_start_col INIT(= MAXCOL);
717  EXTERN char            *draw_feedback INIT(= NULL);
718 +#  endif
719  # else
720  EXTERN XIC             xic INIT(= NULL);
721  # endif
722 Index: src/gui.c
723 ===================================================================
724 RCS file: /cvsroot/vim/vim/src/gui.c,v
725 retrieving revision 1.68
726 diff -u -3 -p -r1.68 gui.c
727 --- src/gui.c   5 Jan 2003 16:56:53 -0000       1.68
728 +++ src/gui.c   6 Feb 2003 17:52:29 -0000
729 @@ -13,7 +13,7 @@
730  /* Structure containing all the GUI information */
731  gui_T gui;
732  
733 -#ifdef FEAT_MBYTE
734 +#if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
735  static void set_guifontwide __ARGS((char_u *font_name));
736  #endif
737  static void gui_check_pos __ARGS((void));
738 @@ -166,6 +166,11 @@ gui_start()
739  # endif
740  #endif
741  
742 +#if defined(MAY_FORK) && defined(USE_GNOME_SESSION)
743 +    if (gui.in_use && dofork)
744 +        gui_mch_forked(); /* tell the session manager our new PID */
745 +#endif
746 +
747  #ifdef FEAT_AUTOCMD
748      /* If the GUI started successfully, trigger the GUIEnter event */
749      if (gui.in_use)
750 @@ -228,18 +233,22 @@ gui_init_check()
751      gui.border_width = 0;
752  
753      gui.norm_font = NOFONT;
754 +#ifndef HAVE_GTK2
755      gui.bold_font = NOFONT;
756      gui.ital_font = NOFONT;
757      gui.boldital_font = NOFONT;
758 -#ifdef FEAT_XFONTSET
759 +# ifdef FEAT_XFONTSET
760      gui.fontset = NOFONTSET;
761 +# endif
762  #endif
763  
764  #ifdef FEAT_MENU
765 -# ifdef FONTSET_ALWAYS
766 +# ifndef HAVE_GTK2
767 +#  ifdef FONTSET_ALWAYS
768      gui.menu_fontset = NOFONTSET;
769 -# else
770 +#  else
771      gui.menu_font = NOFONT;
772 +#  endif
773  # endif
774      gui.menu_is_active = TRUE;     /* default: include menu */
775  # ifndef FEAT_GUI_GTK
776 @@ -449,7 +458,7 @@ gui_init()
777             gui_init_font(*p_guifont == NUL ? hl_get_font_name()
778                                                   : p_guifont, FALSE) == FAIL)
779         goto error2;
780 -#ifdef FEAT_MBYTE
781 +#if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
782      if (gui_get_wide_font() == FAIL)
783         EMSG(_("E231: 'guifontwide' invalid"));
784  #endif
785 @@ -618,7 +627,7 @@ gui_init_font(font_list, fontset)
786                  * longer be used! */
787                 if (gui_mch_init_font(font_name, FALSE) == OK)
788                 {
789 -#ifdef FEAT_MBYTE
790 +#if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
791                     /* If it's a Unicode font, try setting 'guifontwide' to a
792                      * similar double-width font. */
793                     if ((p_guifontwide == NULL || *p_guifontwide == NUL)
794 @@ -645,13 +654,15 @@ gui_init_font(font_list, fontset)
795  
796      if (ret == OK)
797      {
798 +#ifndef HAVE_GTK2
799         /* Set normal font as current font */
800 -#ifdef FEAT_XFONTSET
801 +# ifdef FEAT_XFONTSET
802         if (gui.fontset != NOFONTSET)
803             gui_mch_set_fontset(gui.fontset);
804         else
805 -#endif
806 +# endif
807             gui_mch_set_font(gui.norm_font);
808 +#endif
809         gui_set_shellsize(FALSE,
810  #ifdef MSWIN
811                 TRUE
812 @@ -664,7 +675,7 @@ gui_init_font(font_list, fontset)
813      return ret;
814  }
815  
816 -#if defined(FEAT_MBYTE) || defined(PROTO)
817 +#if (defined(FEAT_MBYTE) && !defined(HAVE_GTK2)) || defined(PROTO)
818  /*
819   * Try setting 'guifontwide' to a font twice as wide as "name".
820   */
821 @@ -1741,7 +1752,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
822      long_u     hl_mask_todo;
823      guicolor_T fg_color;
824      guicolor_T bg_color;
825 -#ifndef MSWIN16_FASTTEXT
826 +#if !defined(MSWIN16_FASTTEXT) && !defined(HAVE_GTK2)
827      GuiFont    font = NOFONT;
828  # ifdef FEAT_XFONTSET
829      GuiFontset fontset = NOFONTSET;
830 @@ -1784,7 +1795,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
831         highlight_mask = gui.highlight_mask;
832      hl_mask_todo = highlight_mask;
833  
834 -#ifndef MSWIN16_FASTTEXT
835 +#if !defined(MSWIN16_FASTTEXT) && !defined(HAVE_GTK2)
836      /* Set the font */
837      if (aep != NULL && aep->ae_u.gui.font != NOFONT)
838         font = aep->ae_u.gui.font;
839 @@ -1890,8 +1901,9 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
840      if (back != 0 && ((draw_flags & DRAW_BOLD) || (highlight_mask & HL_ITALIC)))
841         return FAIL;
842  
843 -#ifdef RISCOS
844 -    /* If there's no italic font, then fake it */
845 +#if defined(RISCOS) || defined(HAVE_GTK2)
846 +    /* If there's no italic font, then fake it.
847 +     * For GTK2, we don't need a different font for italic style. */
848      if (hl_mask_todo & HL_ITALIC)
849         draw_flags |= DRAW_ITALIC;
850  
851 @@ -1927,7 +1939,9 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
852         int     cl;             /* byte length of current char */
853         int     comping;        /* current char is composing */
854         int     scol = col;     /* screen column */
855 +# ifndef HAVE_GTK2
856         int     dowide;         /* use 'guifontwide' */
857 +# endif
858  
859         /* Break the string at a composing character, it has to be drawn on
860          * top of the previous character. */
861 @@ -1937,14 +1951,16 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
862         {
863             c = utf_ptr2char(s + i);
864             cn = utf_char2cells(c);
865 +# ifndef HAVE_GTK2
866             if (cn > 1
867 -# ifdef FEAT_XFONTSET
868 +#  ifdef FEAT_XFONTSET
869                     && fontset == NOFONTSET
870 -# endif
871 +#  endif
872                     && gui.wide_font != NOFONT)
873                 dowide = TRUE;
874             else
875                 dowide = FALSE;
876 +# endif
877             comping = utf_iscomposing(c);
878             if (!comping)       /* count cells from non-composing chars */
879                 cells += cn;
880 @@ -1954,19 +1970,26 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
881  
882             /* print the string so far if it's the last character or there is
883              * a composing character. */
884 -           if (i + cl >= len || (comping && i > start) || dowide
885 -#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK)
886 +           if (i + cl >= len || (comping && i > start)
887 +# ifndef HAVE_GTK2
888 +                    || dowide
889 +#  if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK)
890                     || (cn > 1
891 -# ifdef FEAT_XFONTSET
892 +#   ifdef FEAT_XFONTSET
893                         /* No fontset: At least draw char after wide char at
894                          * right position. */
895                         && fontset == NOFONTSET
896 -# endif
897 +#   endif
898                        )
899 -#endif
900 +#  endif
901 +# endif
902                )
903             {
904 -               if (comping || dowide)
905 +               if (comping
906 +# ifndef HAVE_GTK2
907 +                        || dowide
908 +# endif
909 +                    )
910                     thislen = i - start;
911                 else
912                     thislen = i - start + cl;
913 @@ -1978,6 +2001,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
914                 }
915                 scol += cells;
916                 cells = 0;
917 +# ifndef HAVE_GTK2
918                 if (dowide)
919                 {
920                     gui_mch_set_font(gui.wide_font);
921 @@ -1987,16 +2011,17 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
922                     start += cl;
923                 }
924  
925 -#if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK)
926 +#  if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK)
927                 /* No fontset: draw a space to fill the gap after a wide char */
928                 if (cn > 1 && (draw_flags & DRAW_TRANSP) == 0
929 -# ifdef FEAT_XFONTSET
930 +#   ifdef FEAT_XFONTSET
931                         && fontset == NOFONTSET
932 -# endif
933 +#   endif
934                         && !dowide)
935                     gui_mch_draw_string(gui.row, scol - 1, (char_u *)" ",
936                                                                1, draw_flags);
937 -#endif
938 +#  endif
939 +# endif /* !HAVE_GTK2 */
940             }
941             /* Draw a composing char on top of the previous char. */
942             if (comping)
943 @@ -2757,9 +2782,9 @@ button_set:
944  
945      /*
946       * We need to make sure this is cleared since Athena doesn't tell us when
947 -     * he is done dragging.
948 +     * he is done dragging.  Neither does GTK+ 2 -- at least for now.
949       */
950 -#ifdef FEAT_GUI_ATHENA
951 +#if defined(FEAT_GUI_ATHENA) || defined(HAVE_GTK2)
952      gui.dragged_sb = SBAR_NONE;
953  #endif
954  }
955 @@ -3026,7 +3051,7 @@ gui_find_scrollbar(ident)
956  /*
957   * For most systems: Put a code in the input buffer for a dragged scrollbar.
958   *
959 - * For Win32 and Macintosh:
960 + * For Win32, Macintosh and GTK+ 2:
961   * Scrollbars seem to grab focus and vim doesn't read the input queue until
962   * you stop dragging the scrollbar.  We get here each time the scrollbar is
963   * dragged another pixel, but as far as the rest of vim goes, it thinks
964 Index: src/gui.h
965 ===================================================================
966 RCS file: /cvsroot/vim/vim/src/gui.h,v
967 retrieving revision 1.26
968 diff -u -3 -p -r1.26 gui.h
969 --- src/gui.h   5 May 2002 03:40:02 -0000       1.26
970 +++ src/gui.h   6 Feb 2003 17:52:29 -0000
971 @@ -33,6 +33,9 @@
972  #ifdef FEAT_GUI_GTK
973  # include <X11/Intrinsic.h>
974  # include <gtk/gtk.h>
975 +# if GTK_CHECK_VERSION(2,1,1)
976 +#  define GTK2_MULTIHEAD
977 +# endif
978  #endif
979  
980  #ifdef FEAT_GUI_BEOS
981 @@ -77,7 +80,7 @@
982  # define ALWAYS_USE_GUI
983  #endif
984  
985 -#if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MAC)
986 +#if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_MAC) || defined(HAVE_GTK2)
987  # define USE_ON_FLY_SCROLL
988  #endif
989  
990 @@ -152,7 +155,7 @@
991  #define DRAW_TRANSP            0x01    /* draw with transparant bg */
992  #define DRAW_BOLD              0x02    /* draw bold text */
993  #define DRAW_UNDERL            0x04    /* draw underline text */
994 -#ifdef RISCOS
995 +#if defined(RISCOS) || defined(HAVE_GTK2)
996  # define DRAW_ITALIC           0x08    /* draw italic text */
997  #endif
998  #define DRAW_CURSOR            0x10    /* drawing block cursor (win32) */
999 @@ -229,8 +232,13 @@ typedef long           guicolor_T; /* handle f
1000                                    actual color */
1001  
1002  #ifdef FEAT_GUI_GTK
1003 +# ifdef HAVE_GTK2
1004 +  typedef PangoFontDescription *GuiFont;       /* handle for a GUI font */
1005 +  typedef PangoFontDescription  *GuiFontset;    /* handle for a GUI fontset */
1006 +# else
1007    typedef GdkFont      *GuiFont;       /* handle for a GUI font */
1008    typedef GdkFont      *GuiFontset;    /* handle for a GUI fontset */
1009 +# endif
1010  # define NOFONT                (GuiFont)NULL
1011  # define NOFONTSET     (GuiFontset)NULL
1012  #else
1013 @@ -301,19 +309,28 @@ typedef struct Gui
1014      int                char_ascent;        /* Ascent of char in pixels */
1015      int                border_width;       /* Width of our border around text area */
1016      int                border_offset;      /* Total pixel offset for all borders */
1017 +
1018      GuiFont    norm_font;          /* Normal font */
1019 +#ifndef HAVE_GTK2
1020      GuiFont    bold_font;          /* Bold font */
1021      GuiFont    ital_font;          /* Italic font */
1022      GuiFont    boldital_font;      /* Bold-Italic font */
1023 -#ifdef FEAT_MENU
1024 -# ifdef FONTSET_ALWAYS
1025 +#else
1026 +    int         font_can_bold;      /* Whether norm_font supports bold weight.
1027 +                                     * The styled font variants are not used. */
1028 +#endif
1029 +
1030 +#ifndef HAVE_GTK2
1031 +# ifdef FEAT_MENU
1032 +#  ifdef FONTSET_ALWAYS
1033      GuiFontset menu_fontset;       /* set of fonts for multi-byte chars */
1034 -# else
1035 +#  else
1036      GuiFont    menu_font;          /* menu item font */
1037 +#  endif
1038  # endif
1039 -#endif
1040 -#ifdef FEAT_MBYTE
1041 +# ifdef FEAT_MBYTE
1042      GuiFont    wide_font;          /* 'guifontwide' font */
1043 +# endif
1044  #endif
1045  #ifdef FEAT_XFONTSET
1046      GuiFontset fontset;            /* set of fonts for multi-byte chars */
1047 @@ -383,14 +400,21 @@ typedef struct Gui
1048  # endif
1049      GdkColor   *fgcolor;           /* GDK-styled foreground color */
1050      GdkColor   *bgcolor;           /* GDK-styled background color */
1051 -
1052 -    GdkFont    *current_font;
1053 +# ifndef HAVE_GTK2
1054 +    GuiFont    current_font;
1055 +# endif
1056      GdkGC      *text_gc;           /* cached GC for normal text */
1057 +# ifdef HAVE_GTK2
1058 +    PangoContext     *text_context; /* the context used for all text */
1059 +    PangoFont        *ascii_font;   /* cached font for ASCII strings */
1060 +    PangoGlyphString *ascii_glyphs; /* cached code point -> glyph map */
1061 +# endif
1062  
1063      GtkAccelGroup *accel_group;
1064 +# ifndef HAVE_GTK2
1065      GtkWidget  *fontdlg;           /* font selection dialog window */
1066      char_u     *fontname;          /* font name from font selection dialog */
1067 -
1068 +# endif
1069      GtkWidget  *filedlg;           /* file selection dialog */
1070      char_u     *browse_fname;      /* file name from filedlg */
1071  #endif /* FEAT_GUI_GTK */
1072 @@ -483,7 +507,8 @@ typedef enum
1073      VW_POS_MOUSE,
1074      VW_POS_CENTER,
1075      VW_POS_TOP_CENTER
1076 -} gui_win_pos_T;
1077 +}
1078 +gui_win_pos_T;
1079  
1080  #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) \
1081         || defined(MSWIN_FIND_REPLACE)
1082 Index: src/gui_gtk.c
1083 ===================================================================
1084 RCS file: /cvsroot/vim/vim/src/gui_gtk.c,v
1085 retrieving revision 1.39
1086 diff -u -3 -p -r1.39 gui_gtk.c
1087 --- src/gui_gtk.c       28 Oct 2002 23:14:46 -0000      1.39
1088 +++ src/gui_gtk.c       6 Feb 2003 17:52:30 -0000
1089 @@ -14,6 +14,14 @@
1090   *
1091   * With GREAT support and continuous encouragements by Andy Kahn and of
1092   * course Bram Moolenaar!
1093 + *
1094 + * Support for GTK+ 2 was added by:
1095 + *
1096 + * Â© 2002,2003  Jason Hildebrand  <jason@peaceworks.ca>
1097 + *              Daniel Elstner  <daniel.elstner@gmx.net>
1098 + *
1099 + * Best supporting actor (He helped somewhat, aesthetically speaking):
1100 + * Maxime Romano <verbophobe@hotmail.com>
1101   */
1102  
1103  #ifdef FEAT_GUI_GTK
1104 @@ -49,7 +57,7 @@
1105  # include <gnome.h>
1106  #endif
1107  
1108 -#if defined(FEAT_GUI_DIALOG)
1109 +#if defined(FEAT_GUI_DIALOG) && !defined(HAVE_GTK2)
1110  # include "../pixmaps/alert.xpm"
1111  # include "../pixmaps/error.xpm"
1112  # include "../pixmaps/generic.xpm"
1113 @@ -57,7 +65,7 @@
1114  # include "../pixmaps/quest.xpm"
1115  #endif
1116  
1117 -#ifdef FEAT_TOOLBAR
1118 +#if defined(FEAT_TOOLBAR) && !defined(HAVE_GTK2)
1119  /*
1120   * Icons used by the toolbar code.
1121   */
1122 @@ -94,7 +102,7 @@
1123  #include "../pixmaps/tb_vsplit.xpm"
1124  #include "../pixmaps/tb_maxwidth.xpm"
1125  #include "../pixmaps/tb_minwidth.xpm"
1126 -#endif
1127 +#endif /* FEAT_TOOLBAR && !HAVE_GTK2 */
1128  
1129  #ifdef FEAT_GUI_GTK
1130  # include <gdk/gdkkeysyms.h>
1131 @@ -106,8 +114,10 @@
1132  /* define these items to be able to generate prototypes without GTK */
1133  typedef int GtkWidget;
1134  # define gpointer int
1135 +# define guint8 int
1136  # define GdkPixmap int
1137  # define GdkBitmap int
1138 +# define GtkIconFactory int
1139  # define GtkToolbar int
1140  # define GtkAdjustment int
1141  # define gboolean int
1142 @@ -115,14 +125,209 @@ typedef int GtkWidget;
1143  # define CancelData int
1144  #endif
1145  
1146 +#ifdef HAVE_GTK2
1147 +/*
1148 + * Convenience macros to convert from 'encoding' to 'termencoding' if
1149 + * necessary.  If no conversion is necessary the passed-in pointer is
1150 + * returned as is, without allocating any memory.
1151 + *
1152 + * Defining these macros as pure expressions looks a bit tricky but
1153 + * avoids depending on the context of the macro expansion.  One of the
1154 + * rare occasions where the comma operator comes in handy :)
1155 + *
1156 + * Note that the _FREE() macros also set the pointer to NULL.  That's to
1157 + * avoid illegal memory access only happening if 'encoding' != utf-8...
1158 + */
1159 +# define CONVERT_TO_UTF8(String) \
1160 +    ((output_conv.vc_type == CONV_NONE || (String) == NULL) \
1161 +        ? (String) : string_convert(&output_conv, (String), NULL))
1162 +
1163 +# define CONVERT_TO_UTF8_FREE(String) \
1164 +    ((String) = (output_conv.vc_type == CONV_NONE) \
1165 +                    ? NULL : (vim_free(String), NULL))
1166 +
1167 +# define CONVERT_FROM_UTF8(String) \
1168 +    ((input_conv.vc_type == CONV_NONE || (String) == NULL) \
1169 +        ? (String) : string_convert(&input_conv, (String), NULL))
1170 +
1171 +# define CONVERT_FROM_UTF8_FREE(String) \
1172 +    ((String) = (input_conv.vc_type == CONV_NONE) \
1173 +                    ? NULL : (vim_free(String), NULL))
1174 +
1175 +#endif /* HAVE_GTK2 */
1176 +
1177  static void entry_activate_cb(GtkWidget *widget, GtkWidget *with);
1178  static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
1179  static void find_direction_cb(GtkWidget *widget, gpointer data);
1180 -static void find_replace_cb(GtkWidget *widget, unsigned int flags);
1181 +static void find_replace_cb(GtkWidget *widget, gpointer data);
1182  static void wword_match_cb(GtkWidget *widget, gpointer data);
1183  static void mcase_match_cb(GtkWidget *widget, gpointer data);
1184  static void repl_dir_cb(GtkWidget * widget, gpointer data);
1185  
1186 +#if defined(FEAT_TOOLBAR) && defined(HAVE_GTK2)
1187 +/*
1188 + * Table from BuiltIn## icon indices to GTK+ stock IDs.  Order must exactly
1189 + * match toolbar_names[] in menu.c!  All stock icons including the "vim-*"
1190 + * ones can be overridden in your gtkrc file.
1191 + */
1192 +static const char * const menu_stock_ids[] =
1193 +{
1194 +    /* 00 */ GTK_STOCK_NEW,
1195 +    /* 01 */ GTK_STOCK_OPEN,
1196 +    /* 02 */ GTK_STOCK_SAVE,
1197 +    /* 03 */ GTK_STOCK_UNDO,
1198 +    /* 04 */ GTK_STOCK_REDO,
1199 +    /* 05 */ GTK_STOCK_CUT,
1200 +    /* 06 */ GTK_STOCK_COPY,
1201 +    /* 07 */ GTK_STOCK_PASTE,
1202 +    /* 08 */ GTK_STOCK_PRINT,
1203 +    /* 09 */ GTK_STOCK_HELP,
1204 +    /* 10 */ GTK_STOCK_FIND,
1205 +    /* 11 */ "vim-save-all",
1206 +    /* 12 */ "vim-session-save",
1207 +    /* 13 */ "vim-session-new",
1208 +    /* 14 */ "vim-session-load",
1209 +    /* 15 */ GTK_STOCK_EXECUTE,
1210 +    /* 16 */ GTK_STOCK_FIND_AND_REPLACE,
1211 +    /* 17 */ GTK_STOCK_CLOSE,               /* FIXME: fuzzy */
1212 +    /* 18 */ "vim-window-maximize",
1213 +    /* 19 */ "vim-window-minimize",
1214 +    /* 20 */ "vim-window-split",
1215 +    /* 21 */ "vim-shell",
1216 +    /* 22 */ GTK_STOCK_GO_BACK,
1217 +    /* 23 */ GTK_STOCK_GO_FORWARD,
1218 +    /* 24 */ "vim-find-help",
1219 +    /* 25 */ GTK_STOCK_CONVERT,
1220 +    /* 26 */ GTK_STOCK_JUMP_TO,
1221 +    /* 27 */ "vim-build-tags",
1222 +    /* 28 */ "vim-window-split-vertical",
1223 +    /* 29 */ "vim-window-maximize-width",
1224 +    /* 30 */ "vim-window-minimize-width",
1225 +    /* 31 */ GTK_STOCK_QUIT
1226 +};
1227 +
1228 +    static void
1229 +add_stock_icon(GtkIconFactory   *factory,
1230 +               const char       *stock_id,
1231 +               const guint8     *inline_data,
1232 +               int              data_length)
1233 +{
1234 +    GdkPixbuf   *pixbuf;
1235 +    GtkIconSet  *icon_set;
1236 +
1237 +    pixbuf = gdk_pixbuf_new_from_inline(data_length, inline_data, FALSE, NULL);
1238 +    icon_set = gtk_icon_set_new_from_pixbuf(pixbuf);
1239 +
1240 +    gtk_icon_factory_add(factory, stock_id, icon_set);
1241 +
1242 +    gtk_icon_set_unref(icon_set);
1243 +    g_object_unref(pixbuf);
1244 +}
1245 +
1246 +    static int
1247 +lookup_menu_iconfile(char_u *iconfile, char_u *buffer, int bufsize)
1248 +{
1249 +    expand_env(iconfile, buffer, bufsize - 1);
1250 +    buffer[bufsize - 1] = NUL;
1251 +
1252 +    if (mch_isFullName(buffer))
1253 +    {
1254 +        return vim_fexists(buffer);
1255 +    }
1256 +    else
1257 +    {
1258 +        char_u tempbuf[MAXPATHL + 1];
1259 +
1260 +        if (gui_find_bitmap(buffer, tempbuf, "png") == OK ||
1261 +            gui_find_bitmap(buffer, tempbuf, "xpm") == OK ||
1262 +            gui_find_bitmap(buffer, tempbuf, "bmp") == OK)
1263 +        {
1264 +            STRNCPY(buffer, tempbuf, bufsize);
1265 +            buffer[bufsize - 1] = NUL;
1266 +            return TRUE;
1267 +        }
1268 +
1269 +        return FALSE;
1270 +    }
1271 +}
1272 +
1273 +    static GtkWidget *
1274 +create_menu_icon(vimmenu_T *menu, GtkIconSize icon_size)
1275 +{
1276 +    GtkWidget *image = NULL;
1277 +
1278 +    if (menu->iconfile != NULL)
1279 +    {
1280 +        char_u buf[MAXPATHL + 1];
1281 +
1282 +        if (lookup_menu_iconfile(menu->iconfile, buf, sizeof(buf)))
1283 +        {
1284 +            GtkIconSet      *icon_set;
1285 +            GtkIconSource   *icon_source;
1286 +
1287 +            icon_set = gtk_icon_set_new();
1288 +            icon_source = gtk_icon_source_new();
1289 +
1290 +            gtk_icon_source_set_filename(icon_source, (const char *)buf);
1291 +            gtk_icon_set_add_source(icon_set, icon_source);
1292 +
1293 +            image = gtk_image_new_from_icon_set(icon_set, icon_size);
1294 +
1295 +            gtk_icon_source_free(icon_source);
1296 +            gtk_icon_set_unref(icon_set);
1297 +        }
1298 +    }
1299 +
1300 +    if (image == NULL)
1301 +    {
1302 +        const char *stock_id;
1303 +
1304 +        if (menu->iconidx >= 0 && menu->iconidx < G_N_ELEMENTS(menu_stock_ids))
1305 +            stock_id = menu_stock_ids[menu->iconidx];
1306 +        else
1307 +            stock_id = GTK_STOCK_MISSING_IMAGE;
1308 +
1309 +        image = gtk_image_new_from_stock(stock_id, icon_size);
1310 +    }
1311 +
1312 +    return image;
1313 +}
1314 +
1315 +#endif /* FEAT_TOOLBAR && HAVE_GTK2 */
1316 +
1317 +#if (defined(FEAT_TOOLBAR) && defined(HAVE_GTK2)) || defined(PROTO)
1318 +
1319 +    void
1320 +gui_gtk_register_stock_icons(void)
1321 +{
1322 +#   include "../pixmaps/stock_icons.h"
1323 +    GtkIconFactory *factory;
1324 +
1325 +    factory = gtk_icon_factory_new();
1326 +#   define ADD_ICON(Name, Data) add_stock_icon(factory, Name, Data, sizeof(Data))
1327 +
1328 +    ADD_ICON("vim-build-tags",            stock_vim_build_tags);
1329 +    ADD_ICON("vim-find-help",             stock_vim_find_help);
1330 +    ADD_ICON("vim-save-all",              stock_vim_save_all);
1331 +    ADD_ICON("vim-session-load",          stock_vim_session_load);
1332 +    ADD_ICON("vim-session-new",           stock_vim_session_new);
1333 +    ADD_ICON("vim-session-save",          stock_vim_session_save);
1334 +    ADD_ICON("vim-shell",                 stock_vim_shell);
1335 +    ADD_ICON("vim-window-maximize",       stock_vim_window_maximize);
1336 +    ADD_ICON("vim-window-maximize-width", stock_vim_window_maximize_width);
1337 +    ADD_ICON("vim-window-minimize",       stock_vim_window_minimize);
1338 +    ADD_ICON("vim-window-minimize-width", stock_vim_window_minimize_width);
1339 +    ADD_ICON("vim-window-split",          stock_vim_window_split);
1340 +    ADD_ICON("vim-window-split-vertical", stock_vim_window_split_vertical);
1341 +
1342 +#   undef ADD_ICON
1343 +    gtk_icon_factory_add_default(factory);
1344 +    g_object_unref(factory);
1345 +}
1346 +
1347 +#endif /* FEAT_TOOLBAR && HAVE_GTK2 */
1348 +
1349 +
1350  /*
1351   * Only use accelerators when gtk_menu_ensure_uline_accel_group() is
1352   * available, which is in version 1.2.1.  That was the first version where
1353 @@ -136,6 +341,99 @@ static void repl_dir_cb(GtkWidget * widg
1354  
1355  #if defined(FEAT_MENU) || defined(PROTO)
1356  
1357 +# ifdef HAVE_GTK2
1358 +/*
1359 + * Translate VIM mnemonic tagging into GTK+'s and convert to UTF-8
1360 + * if necessary.  The caller must vim_free() the translated string.
1361 + */
1362 +    static char_u *
1363 +translate_mnemonic_tag(char_u *name, int use_mnemonic)
1364 +{
1365 +    char_u  *buf;
1366 +    char_u  *psrc;
1367 +    char_u  *pdest;
1368 +    int     n_underscores = 0;
1369 +
1370 +    name = CONVERT_TO_UTF8(name);
1371 +
1372 +    for (psrc = name; *psrc != NUL && *psrc != TAB; ++psrc)
1373 +        if (*psrc == '_')
1374 +            ++n_underscores;
1375 +
1376 +    buf = alloc((psrc - name) + n_underscores + 1);
1377 +    pdest = buf;
1378 +
1379 +    for (psrc = name; *psrc != NUL && *psrc != TAB; ++psrc)
1380 +    {
1381 +        if (*psrc == '_')
1382 +        {
1383 +            *pdest++ = '_';
1384 +            *pdest++ = '_';
1385 +        }
1386 +        else if (*psrc != '&')
1387 +        {
1388 +            *pdest++ = *psrc;
1389 +        }
1390 +        else if (*(psrc + 1) == '&')
1391 +        {
1392 +            *pdest++ = *psrc++;
1393 +        }
1394 +        else if (use_mnemonic)
1395 +        {
1396 +            *pdest++ = '_';
1397 +        }
1398 +    }
1399 +
1400 +    *pdest = NUL;
1401 +
1402 +    CONVERT_TO_UTF8_FREE(name);
1403 +
1404 +    return buf;
1405 +}
1406 +
1407 +/*ARGSUSED*/
1408 +    static void
1409 +menu_item_new(vimmenu_T *menu, GtkWidget *parent_widget, int sub_menu)
1410 +{
1411 +    GtkWidget   *box;
1412 +    char_u      *name;
1413 +    char_u      *actext;
1414 +    int         use_mnemonic;
1415 +
1416 +    /* It would be neat to have image menu items, but that requires major
1417 +     * changes to Vim's menu system.  Not to mention that all the translations
1418 +     * had to be updated.
1419 +     */
1420 +    menu->id = gtk_menu_item_new();
1421 +    box = gtk_hbox_new(FALSE, 20);
1422 +
1423 +    use_mnemonic = (p_wak[0] != 'n' || !GTK_IS_MENU_BAR(parent_widget));
1424 +    name = translate_mnemonic_tag(menu->name, use_mnemonic);
1425 +
1426 +    menu->label = gtk_label_new_with_mnemonic((const char *)name);
1427 +    vim_free(name);
1428 +
1429 +    gtk_box_pack_start(GTK_BOX(box), menu->label, FALSE, FALSE, 0);
1430 +
1431 +    actext = menu->actext;
1432 +
1433 +    if (actext != NULL && actext[0] != NUL)
1434 +    {
1435 +        actext = CONVERT_TO_UTF8(actext);
1436 +
1437 +        gtk_box_pack_end(GTK_BOX(box),
1438 +                         gtk_label_new((const char *)actext),
1439 +                         FALSE, FALSE, 0);
1440 +
1441 +        CONVERT_TO_UTF8_FREE(actext);
1442 +    }
1443 +
1444 +    gtk_container_add(GTK_CONTAINER(menu->id), box);
1445 +    gtk_widget_show_all(menu->id);
1446 +}
1447 +
1448 +# else /* !HAVE_GTK2 */
1449 +
1450  /*
1451   * Create a highly customized menu item by hand instead of by using:
1452   *
1453 @@ -186,6 +484,7 @@ menu_item_new(vimmenu_T *menu, GtkWidget
1454       * score for each understore that appears in the menu name.
1455       */
1456  
1457 +
1458      /* First count how many underscore's are in the menu name. */
1459      for (num = 0, tmp = (char *)menu->name; *tmp; tmp++)
1460         if (*tmp == '_')
1461 @@ -203,13 +502,13 @@ menu_item_new(vimmenu_T *menu, GtkWidget
1462             break;
1463         if (*tmp == '&')
1464         {
1465 -# ifdef GTK_USE_ACCEL
1466 +#  ifdef GTK_USE_ACCEL
1467             if (*p_wak != 'n' || !GTK_IS_MENU_BAR(parent_widget))
1468             {
1469                 name[num] = '_';
1470                 num++;
1471             }
1472 -# endif
1473 +#  endif
1474         }
1475         else
1476         {
1477 @@ -224,11 +523,12 @@ menu_item_new(vimmenu_T *menu, GtkWidget
1478      }
1479      name[num] = '\0';
1480  
1481 +
1482      /* let GTK do its thing */
1483      accel_key = gtk_label_parse_uline(GTK_LABEL(label), name);
1484      g_free(name);
1485  
1486 -# ifdef GTK_USE_ACCEL
1487 +#  ifdef GTK_USE_ACCEL
1488      /* Don't add accelator if 'winaltkeys' is "no". */
1489      if (accel_key != GDK_VoidSymbol)
1490      {
1491 @@ -250,11 +550,12 @@ menu_item_new(vimmenu_T *menu, GtkWidget
1492                     GTK_ACCEL_LOCKED);
1493         }
1494      }
1495 -# endif
1496 +#  endif /* GTK_USE_ACCEL */
1497  
1498      menu->id = widget;
1499  }
1500  
1501 +# endif /* !HAVE_GTK2 */
1502  
1503  /*ARGSUSED*/
1504      void
1505 @@ -281,20 +582,25 @@ gui_mch_add_menu(vimmenu_T *menu, int id
1506         return;                 /* failed */
1507  
1508      if (parent == NULL)
1509 -       gtk_menu_bar_insert(GTK_MENU_BAR(gui.menubar), menu->id, idx);
1510 +       gtk_menu_shell_insert(GTK_MENU_SHELL(gui.menubar), menu->id, idx);
1511      else
1512      {
1513         /* since the tearoff should always appear first, increment idx */
1514         ++idx;
1515 -       gtk_menu_insert(GTK_MENU(parent->submenu_id), menu->id, idx);
1516 +       gtk_menu_shell_insert(GTK_MENU_SHELL(parent->submenu_id), menu->id, idx);
1517      }
1518  
1519      /*
1520       * The "Help" menu is a special case, and should be placed at the far
1521       * right hand side of the menu-bar.  It's detected by its high priority.
1522 +     *
1523 +     * Right-aligning "Help" is considered bad UI design nowadays.
1524 +     * Thus lets disable this for GTK+ 2 to match the environment.
1525       */
1526 +#ifndef HAVE_GTK2
1527      if (parent == NULL && menu->priority >= 9999)
1528         gtk_menu_item_right_justify(GTK_MENU_ITEM(menu->id));
1529 +#endif
1530  
1531      if ((menu->submenu_id = gtk_menu_new()) == NULL)   /* failed */
1532         return;
1533 @@ -319,7 +625,7 @@ menu_item_activate(GtkWidget * widget, g
1534         gtk_main_quit();
1535  }
1536  
1537 -#ifdef FEAT_TOOLBAR
1538 +# if defined(FEAT_TOOLBAR) && !defined(HAVE_GTK2)
1539  /*
1540   * These are the pixmaps used for the default buttons.
1541   * Order must exactly match toolbar_names[] in menu.c!
1542 @@ -415,23 +721,54 @@ pixmap_create_from_file(char_u *fname, G
1543                 &gui.mainwin->style->bg[GTK_STATE_NORMAL],
1544                 (const char *)fname);
1545  }
1546 -#endif
1547 +
1548 +# endif /* FEAT_TOOLBAR && !HAVE_GTK2 */
1549  
1550  /*ARGSUSED*/
1551      void
1552  gui_mch_add_menu_item(vimmenu_T *menu, int idx)
1553  {
1554 -    vimmenu_T  *parent = menu->parent;
1555 +    vimmenu_T *parent;
1556 +
1557 +    parent = menu->parent;
1558  
1559  # ifdef FEAT_TOOLBAR
1560      if (menu_is_toolbar(parent->name))
1561      {
1562 -       if (menu_is_separator(menu->name))
1563 -       {
1564 -           gtk_toolbar_insert_space(GTK_TOOLBAR(gui.toolbar), idx);
1565 -       }
1566 -       else
1567 -       {
1568 +        GtkToolbar *toolbar;
1569 +
1570 +        toolbar = GTK_TOOLBAR(gui.toolbar);
1571 +        menu->submenu_id = NULL;
1572 +
1573 +        if (menu_is_separator(menu->name))
1574 +        {
1575 +            gtk_toolbar_insert_space(toolbar, idx);
1576 +            menu->id = NULL;
1577 +        }
1578 +        else
1579 +        {
1580 +#  ifdef HAVE_GTK2
1581 +            char_u *text;
1582 +            char_u *tooltip;
1583 +
1584 +            text    = CONVERT_TO_UTF8(menu->dname);
1585 +            tooltip = CONVERT_TO_UTF8(menu->strings[MENU_INDEX_TIP]);
1586 +
1587 +            menu->id = gtk_toolbar_insert_item(
1588 +                           toolbar,
1589 +                           (const char *)text,
1590 +                           (const char *)tooltip,
1591 +                           NULL,
1592 +                           create_menu_icon(menu, gtk_toolbar_get_icon_size(toolbar)),
1593 +                           G_CALLBACK(menu_item_activate),
1594 +                           menu,
1595 +                           idx);
1596 +
1597 +            CONVERT_TO_UTF8_FREE(text);
1598 +            CONVERT_TO_UTF8_FREE(tooltip);
1599 +
1600 +#  else /* !HAVE_GTK2 */
1601 +
1602             GdkPixmap *pixmap = NULL;
1603             GdkBitmap *mask = NULL;
1604  
1605 @@ -453,7 +790,7 @@ gui_mch_add_menu_item(vimmenu_T *menu, i
1606                 return; /* should at least have blank pixmap, but if not... */
1607  
1608             menu->id = gtk_toolbar_insert_item(
1609 -                                   GTK_TOOLBAR(gui.toolbar),
1610 +                                   toolbar,
1611                                     (char *)(menu->dname),
1612                                     (char *)(menu->strings[MENU_INDEX_TIP]),
1613                                     (char *)(menu->dname),
1614 @@ -461,40 +798,40 @@ gui_mch_add_menu_item(vimmenu_T *menu, i
1615                                     GTK_SIGNAL_FUNC(menu_item_activate),
1616                                     (gpointer)menu,
1617                                     idx);
1618 +#  endif /* !HAVE_GTK2 */
1619         }
1620 -       menu->parent = parent;
1621 -       menu->submenu_id = NULL;
1622 -       return;
1623 -    } /* toolbar menu item */
1624 -# endif
1625 -
1626 -    /* No parent, must be a non-menubar menu */
1627 -    if (parent->submenu_id == 0)
1628 -       return;
1629 -
1630 -    /* make place for the possible tearoff handle item */
1631 -    ++idx;
1632 -    if (menu_is_separator(menu->name))
1633 -    {
1634 -       /* Separator: Just add it */
1635 -       menu->id = gtk_menu_item_new();
1636 -       gtk_widget_set_sensitive(menu->id, FALSE);
1637 -       gtk_widget_show(menu->id);
1638 -       gtk_menu_insert(GTK_MENU(parent->submenu_id), menu->id, idx);
1639 -
1640 -       return;
1641      }
1642 -
1643 -    /* Add textual menu item. */
1644 -    menu_item_new(menu, parent->submenu_id, FALSE);
1645 -    gtk_widget_show(menu->id);
1646 -    gtk_menu_insert(GTK_MENU(parent->submenu_id), menu->id, idx);
1647 -
1648 -    if (menu->id != 0)
1649 -       gtk_signal_connect(GTK_OBJECT(menu->id), "activate",
1650 -               GTK_SIGNAL_FUNC(menu_item_activate), (gpointer) menu);
1651 +    else
1652 +# endif /* FEAT_TOOLBAR */
1653 +    {
1654 +        /* No parent, must be a non-menubar menu */
1655 +        if (parent->submenu_id == NULL)
1656 +            return;
1657 +
1658 +        /* make place for the possible tearoff handle item */
1659 +        ++idx;
1660 +        if (menu_is_separator(menu->name))
1661 +        {
1662 +            /* Separator: Just add it */
1663 +            menu->id = gtk_menu_item_new();
1664 +            gtk_widget_set_sensitive(menu->id, FALSE);
1665 +            gtk_widget_show(menu->id);
1666 +            gtk_menu_insert(GTK_MENU(parent->submenu_id), menu->id, idx);
1667 +
1668 +            return;
1669 +        }
1670 +
1671 +        /* Add textual menu item. */
1672 +        menu_item_new(menu, parent->submenu_id, FALSE);
1673 +        gtk_widget_show(menu->id);
1674 +        gtk_menu_insert(GTK_MENU(parent->submenu_id), menu->id, idx);
1675 +
1676 +        if (menu->id != NULL)
1677 +            gtk_signal_connect(GTK_OBJECT(menu->id), "activate",
1678 +                               GTK_SIGNAL_FUNC(menu_item_activate), menu);
1679 +    }
1680  }
1681 -#endif
1682 +#endif /* FEAT_MENU */
1683  
1684  
1685      void
1686 @@ -508,6 +845,27 @@ gui_mch_set_text_area_pos(int x, int y, 
1687  /*
1688   * Enable or disable accelators for the toplevel menus.
1689   */
1690 +
1691 +# ifdef HAVE_GTK2
1692 +    void
1693 +gui_gtk_set_mnemonics(int enable)
1694 +{
1695 +    vimmenu_T   *menu;
1696 +    char_u      *name;
1697 +
1698 +    for (menu = root_menu; menu != NULL; menu = menu->next)
1699 +    {
1700 +        if (menu->id == NULL)
1701 +            continue;
1702 +
1703 +        name = translate_mnemonic_tag(menu->name, enable);
1704 +        gtk_label_set_text_with_mnemonic(GTK_LABEL(menu->label), (const char *)name);
1705 +        vim_free(name);
1706 +    }
1707 +}
1708 +
1709 +# else /* !HAVE_GTK2 */
1710 +
1711  /*ARGSUSED*/
1712      void
1713  gui_gtk_set_mnemonics(int enable)
1714 @@ -585,7 +943,7 @@ gui_gtk_set_mnemonics(int enable)
1715                     accel_key, GDK_MOD1_MASK);
1716      }
1717  }
1718 -
1719 +#endif /* !HAVE_GTK2 */
1720  
1721      static void
1722  recurse_tearoffs(vimmenu_T *menu, int val)
1723 @@ -607,21 +965,25 @@ recurse_tearoffs(vimmenu_T *menu, int va
1724      }
1725  }
1726  
1727 -
1728      void
1729  gui_mch_toggle_tearoffs(int enable)
1730  {
1731      recurse_tearoffs(root_menu, enable);
1732  }
1733 -#endif
1734 -
1735 +#endif /* FEAT_MENU */
1736  
1737 -#ifdef FEAT_TOOLBAR
1738  
1739 +#if defined(FEAT_TOOLBAR) && !defined(HAVE_GTK2)
1740  /*
1741   * Seems like there's a hole in the GTK Toolbar API: there's no provision for
1742   * removing an item from the toolbar.  Therefore I need to resort to going
1743   * really deeply into the internal widget structures.
1744 + *
1745 + * <danielk> I'm not sure the statement above is true -- at least with
1746 + * GTK+ 2 one can just call gtk_widget_destroy() and be done with it.
1747 + * It is true though that you couldn't remove space items before GTK+ 2
1748 + * (without digging into the internals that is).  But the code below
1749 + * doesn't seem to handle those either.  Well, it's obsolete anyway.
1750   */
1751      static void
1752  toolbar_remove_item_by_text(GtkToolbar *tb, const char *text)
1753 @@ -658,7 +1020,40 @@ toolbar_remove_item_by_text(GtkToolbar *
1754         }
1755      }
1756  }
1757 -#endif
1758 +#endif /* FEAT_TOOLBAR && !HAVE_GTK2 */
1759 +
1760 +
1761 +#if defined(FEAT_TOOLBAR) && defined(HAVE_GTK2)
1762 +    void
1763 +gui_mch_menu_set_tip(vimmenu_T *menu)
1764 +{
1765 +    if (menu->id != NULL && menu->parent != NULL &&
1766 +        gui.toolbar != NULL && menu_is_toolbar(menu->parent->name))
1767 +    {
1768 +        char_u *tooltip;
1769 +
1770 +        tooltip = CONVERT_TO_UTF8(menu->strings[MENU_INDEX_TIP]);
1771 +
1772 +        gtk_tooltips_set_tip(GTK_TOOLBAR(gui.toolbar)->tooltips,
1773 +                             menu->id, (const char *)tooltip, NULL);
1774 +
1775 +        CONVERT_TO_UTF8_FREE(tooltip);
1776 +    }
1777 +}
1778 +
1779 +    static int
1780 +get_tool_position(vimmenu_T *menu)
1781 +{
1782 +    vimmenu_T   *node;
1783 +    int         index = 0;
1784 +
1785 +    for (node = menu->parent->children; node != menu; node = node->next)
1786 +        ++index;
1787 +
1788 +    return index;
1789 +}
1790 +#endif /* FEAT_TOOLBAR && HAVE_GTK2 */
1791 +
1792  
1793  #if defined(FEAT_MENU) || defined(PROTO)
1794  /*
1795 @@ -667,26 +1062,32 @@ toolbar_remove_item_by_text(GtkToolbar *
1796      void
1797  gui_mch_destroy_menu(vimmenu_T *menu)
1798  {
1799 -#ifdef FEAT_TOOLBAR
1800 +# ifdef FEAT_TOOLBAR
1801      if (menu->parent && menu_is_toolbar(menu->parent->name))
1802      {
1803 -       toolbar_remove_item_by_text(GTK_TOOLBAR(gui.toolbar),
1804 -                                           (const char *)menu->dname);
1805 -       return;
1806 +#  ifdef HAVE_GTK2
1807 +        if (menu_is_separator(menu->name))
1808 +            gtk_toolbar_remove_space(GTK_TOOLBAR(gui.toolbar),
1809 +                                     get_tool_position(menu));
1810 +        else
1811 +            gtk_widget_destroy(menu->id);
1812 +#  else
1813 +        toolbar_remove_item_by_text(GTK_TOOLBAR(gui.toolbar),
1814 +                                    (const char *)menu->dname);
1815 +#  endif
1816      }
1817 -#endif
1818 -
1819 -    if (menu->submenu_id != 0)
1820 -    {
1821 -       gtk_widget_destroy(menu->submenu_id);
1822 -       menu->submenu_id = 0;
1823 -    }
1824 -    if (menu->id != 0)
1825 +    else
1826 +# endif /* FEAT_TOOLBAR */
1827      {
1828 -       /* parent = gtk_widget_get_parent(menu->id); */
1829 -       gtk_widget_destroy(menu->id);
1830 -       menu->id = 0;
1831 +        if (menu->submenu_id != NULL)
1832 +            gtk_widget_destroy(menu->submenu_id);
1833 +
1834 +        if (menu->id != NULL)
1835 +            gtk_widget_destroy(menu->id);
1836      }
1837 +
1838 +    menu->submenu_id = NULL;
1839 +    menu->id = NULL;
1840  }
1841  #endif /* FEAT_MENU */
1842  
1843 @@ -738,15 +1139,27 @@ adjustment_value_changed(GtkAdjustment *
1844      if (did_ask_for_change)
1845         return;
1846  
1847 -    sb = gui_find_scrollbar((long) data);
1848 +    sb = gui_find_scrollbar(GPOINTER_TO_INT(data));
1849      value = adjustment->value;
1850  
1851      /* The dragging argument must be right for the scrollbar to work with
1852       * closed folds.  This isn't documented, hopefully this will keep on
1853 -     * working in later GTK versions. */
1854 +     * working in later GTK versions.
1855 +     *
1856 +     * GTK2_FIXME: Well, it doesn't work in GTK2. :)
1857 +     * OK, I experimented with GTK_WIDGET_HAS_GRAB() and it seemed to work
1858 +     * to some extent.  But simply setting dragging = TRUE all the time
1859 +     * seems to work better :/
1860 +     */
1861      if (sb != NULL)
1862 -       dragging = GTK_RANGE((GtkScrollbar *)sb->id)->scroll_type
1863 -                                                          == GTK_SCROLL_NONE;
1864 +    {
1865 +#ifdef HAVE_GTK2
1866 +        dragging = TRUE;
1867 +#else
1868 +        dragging = (GTK_RANGE(sb->id)->scroll_type == GTK_SCROLL_NONE);
1869 +#endif
1870 +    }
1871 +
1872      gui_drag_scrollbar(sb, value, dragging);
1873  
1874      if (gtk_main_level() > 0)
1875 @@ -771,13 +1184,13 @@ gui_mch_create_scrollbar(scrollbar_T * s
1876      }
1877      if (sb->id != NULL)
1878      {
1879 -       GtkAdjustment *adjustment;
1880 +        GtkAdjustment *adjustment;
1881  
1882 -       adjustment = gtk_range_get_adjustment(
1883 -               GTK_RANGE((GtkScrollbar *)sb->id));
1884 -       gtk_signal_connect(GTK_OBJECT(adjustment), "value_changed",
1885 -               (GtkSignalFunc)adjustment_value_changed,
1886 -                          (gpointer)sb->ident);
1887 +        adjustment = gtk_range_get_adjustment(GTK_RANGE(sb->id));
1888 +
1889 +        gtk_signal_connect(GTK_OBJECT(adjustment), "value_changed",
1890 +                           GTK_SIGNAL_FUNC(adjustment_value_changed),
1891 +                           GINT_TO_POINTER(sb->ident));
1892      }
1893      gui_mch_update();
1894  }
1895 @@ -786,10 +1199,10 @@ gui_mch_create_scrollbar(scrollbar_T * s
1896      void
1897  gui_mch_destroy_scrollbar(scrollbar_T * sb)
1898  {
1899 -    if (sb->id != 0)
1900 +    if (sb->id != NULL)
1901      {
1902 -       gtk_widget_destroy(sb->id);
1903 -       sb->id = 0;
1904 +        gtk_widget_destroy(sb->id);
1905 +        sb->id = NULL;
1906      }
1907      gui_mch_update();
1908  }
1909 @@ -872,6 +1285,10 @@ gui_mch_browse(int saving,
1910      char_u dirbuf[MAXPATHL];
1911      char_u *p;
1912  
1913 +# ifdef HAVE_GTK2
1914 +    title = CONVERT_TO_UTF8(title);
1915 +# endif
1916 +
1917      if (!gui.filedlg)
1918      {
1919         gui.filedlg = gtk_file_selection_new((const gchar *)title);
1920 @@ -894,6 +1311,10 @@ gui_mch_browse(int saving,
1921      else
1922         gtk_window_set_title(GTK_WINDOW(gui.filedlg), (const gchar *)title);
1923  
1924 +# ifdef HAVE_GTK2
1925 +    CONVERT_TO_UTF8_FREE(title);
1926 +# endif
1927 +
1928      /* if our pointer is currently hidden, then we should show it. */
1929      gui_mch_mousehide(FALSE);
1930  
1931 @@ -912,9 +1333,10 @@ gui_mch_browse(int saving,
1932  
1933      gtk_file_selection_set_filename(GTK_FILE_SELECTION(gui.filedlg),
1934                                                       (const gchar *)dirbuf);
1935 -
1936 +# ifndef HAVE_GTK2
1937      gui_gtk_position_in_parent(GTK_WIDGET(gui.mainwin),
1938                                        GTK_WIDGET(gui.filedlg), VW_POS_MOUSE);
1939 +# endif
1940  
1941      gtk_widget_show(gui.filedlg);
1942      while (gui.filedlg && GTK_WIDGET_DRAWABLE(gui.filedlg))
1943 @@ -933,7 +1355,7 @@ gui_mch_browse(int saving,
1944  
1945  #endif /* FEAT_BROWSE */
1946  
1947 -#if defined(FEAT_GUI_DIALOG) || defined(PROTO)
1948 +#if (defined(FEAT_GUI_DIALOG) && !defined(HAVE_GTK2)) || defined(PROTO)
1949  
1950  static char_u *dialog_textfield = NULL;
1951  static GtkWidget *dialog_textentry;
1952 @@ -941,16 +1363,15 @@ static GtkWidget *dialog_textentry;
1953      static void
1954  dlg_destroy(GtkWidget *dlg)
1955  {
1956 -    gchar *p;
1957 -
1958      if (dialog_textfield != NULL)
1959      {
1960 -       /* Get the text from the textentry widget. */
1961 -       p = gtk_editable_get_chars(GTK_EDITABLE(dialog_textentry),
1962 -                                                              0, IOSIZE - 1);
1963 -       STRCPY(dialog_textfield, p);
1964 -       g_free(p);
1965 +        char *text;
1966 +
1967 +        text = gtk_entry_get_text(GTK_ENTRY(dialog_textentry));
1968 +        STRNCPY(dialog_textfield, text, IOSIZE);
1969 +        dialog_textfield[IOSIZE - 1] = NUL;
1970      }
1971 +
1972      /* Destroy the dialog, will break the waiting loop. */
1973      gtk_widget_destroy(dlg);
1974  }
1975 @@ -1164,13 +1585,12 @@ gui_mch_dialog( int     type,           /* type of di
1976      GtkWidget          *frame;
1977      GtkWidget          *vbox;
1978      GtkWidget          *table;
1979 -    GtkWidget          *pixmap;
1980      GtkWidget          *dialogmessage;
1981      GtkWidget          *action_area;
1982      GtkWidget          *sub_area;
1983      GtkWidget          *separator;
1984      GtkAccelGroup      *accel_group;
1985 -
1986 +    GtkWidget          *pixmap;
1987      GdkPixmap          *icon = NULL;
1988      GdkBitmap          *mask = NULL;
1989      char               **icon_data = NULL;
1990 @@ -1194,10 +1614,10 @@ gui_mch_dialog( int     type,           /* type of di
1991  
1992      if ((type < 0) || (type > VIM_LAST_TYPE))
1993         type = VIM_GENERIC;
1994 -
1995 +    
1996      /* Check 'v' flag in 'guioptions': vertical button placement. */
1997      vertical = (vim_strchr(p_go, GO_VERTICAL) != NULL);
1998 -
1999 +    
2000      dialog = gtk_window_new(GTK_WINDOW_DIALOG);
2001      gtk_window_set_title(GTK_WINDOW(dialog), (const gchar *)title);
2002      gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(gui.mainwin));
2003 @@ -1457,8 +1877,250 @@ gui_mch_dialog( int     type,           /* type of di
2004      return dialog_status;
2005  }
2006  
2007 +#endif /* FEAT_GUI_DIALOG && !HAVE_GTK2 */
2008 +
2009 +
2010 +#if defined(FEAT_GUI_DIALOG) && defined(HAVE_GTK2)
2011 +
2012 +    static GtkWidget *
2013 +create_message_dialog(int type, char_u *title, char_u *message)
2014 +{
2015 +    GtkWidget       *dialog;
2016 +    GtkMessageType  message_type;
2017 +
2018 +    switch (type)
2019 +    {
2020 +        case VIM_ERROR:     message_type = GTK_MESSAGE_ERROR;    break;
2021 +        case VIM_WARNING:   message_type = GTK_MESSAGE_WARNING;  break;
2022 +        case VIM_QUESTION:  message_type = GTK_MESSAGE_QUESTION; break;
2023 +        default:            message_type = GTK_MESSAGE_INFO;     break;
2024 +    }
2025 +
2026 +    message = CONVERT_TO_UTF8(message);
2027 +
2028 +    dialog = gtk_message_dialog_new(GTK_WINDOW(gui.mainwin),
2029 +                                    GTK_DIALOG_DESTROY_WITH_PARENT,
2030 +                                    message_type,
2031 +                                    GTK_BUTTONS_NONE,
2032 +                                    "%s", (const char *)message);
2033 +
2034 +    CONVERT_TO_UTF8_FREE(message);
2035 +
2036 +    if (title != NULL)
2037 +    {
2038 +        title = CONVERT_TO_UTF8(title);
2039 +        gtk_window_set_title(GTK_WINDOW(dialog), (const char *)title);
2040 +        CONVERT_TO_UTF8_FREE(title);
2041 +    }
2042 +    else if (type == VIM_GENERIC)
2043 +    {
2044 +        gtk_window_set_title(GTK_WINDOW(dialog), "VIM");
2045 +    }
2046 +
2047 +    return dialog;
2048 +}
2049 +
2050 +    static char **
2051 +split_button_string(char_u *button_string, int *n_buttons)
2052 +{
2053 +    const char  separator[] = { DLG_BUTTON_SEP, '\0' };
2054 +    char        **buttons;
2055 +    char        **pbutton;
2056 +
2057 +    button_string = CONVERT_TO_UTF8(button_string);
2058 +    buttons = g_strsplit((const char *)button_string, separator, -1);
2059 +    CONVERT_TO_UTF8_FREE(button_string);
2060 +
2061 +    for (pbutton = buttons; *pbutton != NULL; ++pbutton)
2062 +    {
2063 +        char *p;
2064 +
2065 +        for (p = *pbutton; *p != '\0'; ++p)
2066 +            if (*p == '&')
2067 +                *p = '_';
2068 +    }
2069 +
2070 +    *n_buttons = pbutton - buttons;
2071 +
2072 +    return buttons;
2073 +}
2074 +
2075 +    static char **
2076 +split_button_translation(const char *message)
2077 +{
2078 +    const char  *p;
2079 +    char        **buttons;
2080 +    int         n_buttons;
2081 +    int         n_expected = 1;
2082 +
2083 +    for (p = message; *p != '\0'; ++p)
2084 +        if (*p == DLG_BUTTON_SEP)
2085 +            ++n_expected;
2086 +
2087 +    buttons = split_button_string((char_u *)_(message), &n_buttons);
2088 +
2089 +    /* Uh-oh... this should never happen.  But well, we don't wanna
2090 +     * crash if the translation is broken.
2091 +     */
2092 +    if (n_buttons != n_expected)
2093 +    {
2094 +        g_strfreev(buttons);
2095 +        buttons = split_button_string((char_u *)message, &n_buttons);
2096 +    }
2097 +
2098 +    return buttons;
2099 +}
2100 +
2101 +    static int
2102 +button_equal(const char *a, const char *b)
2103 +{
2104 +    while (*a != '\0' && *b != '\0')
2105 +    {
2106 +        if (*a == '_' && *++a == '\0')
2107 +            break;
2108 +        if (*b == '_' && *++b == '\0')
2109 +            break;
2110 +
2111 +        if (g_unichar_tolower(g_utf8_get_char(a)) !=
2112 +            g_unichar_tolower(g_utf8_get_char(b)))
2113 +            return FALSE;
2114 +
2115 +        a = g_utf8_next_char(a);
2116 +        b = g_utf8_next_char(b);
2117 +    }
2118 +
2119 +    return (*a == '\0' && *b == '\0');
2120 +}
2121 +
2122 +    static void
2123 +dialog_add_buttons(GtkDialog *dialog, char_u *button_string)
2124 +{
2125 +    char    **ok;
2126 +    char    **yesnocancel;
2127 +    char    **buttons;
2128 +    int     n_buttons;
2129 +    int     index;
2130 +
2131 +    ok          = split_button_translation(N_("&Ok"));
2132 +    yesnocancel = split_button_translation(N_("&Yes\n&No\n&Cancel"));
2133 +    buttons     = split_button_string(button_string, &n_buttons);
2134 +
2135 +    /* Yes, the buttons are in reversed order to match the GNOME 2 desktop
2136 +     * environment.  Don't hit me -- it's all about consistency.
2137 +     */
2138 +    for (index = n_buttons; index > 0; --index)
2139 +    {
2140 +        const char *label;
2141 +
2142 +        label = buttons[index - 1];
2143 +
2144 +        /* Perform some guesswork to find appropriate stock items for the
2145 +         * buttons.  We have to compare with a sample of the translated
2146 +         * button string to get things right.  Yes, this is hackish :/
2147 +         *
2148 +         * But even the common button labels aren't necessarily translated,
2149 +         * since anyone can create their own dialogs using Vim functions.
2150 +         * Thus we have to check for those too.
2151 +         */
2152 +        if      (button_equal(label, ok[0]))          label = GTK_STOCK_OK;
2153 +        else if (button_equal(label, yesnocancel[0])) label = GTK_STOCK_YES;
2154 +        else if (button_equal(label, yesnocancel[1])) label = GTK_STOCK_NO;
2155 +        else if (button_equal(label, yesnocancel[2])) label = GTK_STOCK_CANCEL;
2156 +        else if (button_equal(label, "Ok"))           label = GTK_STOCK_OK;
2157 +        else if (button_equal(label, "Yes"))          label = GTK_STOCK_YES;
2158 +        else if (button_equal(label, "No"))           label = GTK_STOCK_NO;
2159 +        else if (button_equal(label, "Cancel"))       label = GTK_STOCK_CANCEL;
2160 +
2161 +        gtk_dialog_add_button(dialog, label, index);
2162 +    }
2163 +
2164 +    g_strfreev(buttons);
2165 +    g_strfreev(yesnocancel);
2166 +    g_strfreev(ok);
2167 +}
2168 +
2169 +    static void
2170 +copy_dialog_input(char_u *textfield, const char *input)
2171 +{
2172 +    char_u *text;
2173 +
2174 +    text = CONVERT_FROM_UTF8((char_u *)input);
2175 +    STRNCPY(textfield, text, IOSIZE);
2176 +
2177 +    if (input_conv.vc_type == CONV_NONE)
2178 +    {
2179 +        /* strip trailing partial character; just in case */
2180 +        *g_utf8_find_prev_char((char *)textfield, (char *)textfield + IOSIZE) = NUL;
2181 +    }
2182 +    else
2183 +    {
2184 +        textfield[IOSIZE - 1] = NUL;
2185 +        vim_free(text);
2186 +    }
2187 +}
2188 +
2189 +#endif /* FEAT_GUI_DIALOG && HAVE_GTK2 */
2190 +
2191 +
2192 +#if (defined(FEAT_GUI_DIALOG) && defined(HAVE_GTK2)) || defined(PROTO)
2193 +
2194 +    int
2195 +gui_mch_dialog(int      type,       /* type of dialog */
2196 +               char_u   *title,     /* title of dialog */
2197 +               char_u   *message,   /* message text */
2198 +               char_u   *buttons,   /* names of buttons */
2199 +               int      def_but,    /* default button */
2200 +               char_u   *textfield) /* text for textfield or NULL */
2201 +{
2202 +    GtkWidget   *dialog;
2203 +    GtkWidget   *entry = NULL;
2204 +    int         response;
2205 +
2206 +    dialog = create_message_dialog(type, title, message);
2207 +
2208 +    dialog_add_buttons(GTK_DIALOG(dialog), buttons);
2209 +
2210 +    if (textfield != NULL)
2211 +    {
2212 +        GtkWidget   *alignment;
2213 +        char_u      *text;
2214 +
2215 +        entry = gtk_entry_new();
2216 +        gtk_widget_show(entry);
2217 +
2218 +        text = CONVERT_TO_UTF8(textfield);
2219 +        gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
2220 +        CONVERT_TO_UTF8_FREE(text);
2221 +
2222 +        alignment = gtk_alignment_new(0.5, 0.5, 1.0, 1.0);
2223 +        gtk_container_add(GTK_CONTAINER(alignment), entry);
2224 +        gtk_container_set_border_width(GTK_CONTAINER(alignment), 5);
2225 +        gtk_widget_show(alignment);
2226 +
2227 +        gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),
2228 +                           alignment, TRUE, FALSE, 0);
2229 +    }
2230 +
2231 +    if (def_but > 0)
2232 +        gtk_dialog_set_default_response(GTK_DIALOG(dialog), def_but);
2233 +
2234 +    response = gtk_dialog_run(GTK_DIALOG(dialog));
2235 +
2236 +    /* GTK_RESPONSE_NONE means the dialog has been programmatically destroyed.
2237 +     */
2238 +    if (response != GTK_RESPONSE_NONE)
2239 +    {
2240 +        if (textfield != NULL)
2241 +            copy_dialog_input(textfield, gtk_entry_get_text(GTK_ENTRY(entry)));
2242 +
2243 +        gtk_widget_destroy(dialog);
2244 +    }
2245 +
2246 +    return MAX(0, response);
2247 +}
2248 +
2249 +#endif /* FEAT_GUI_DIALOG && HAVE_GTK2 */
2250  
2251 -#endif /* FEAT_GUI_DIALOG */
2252  
2253  #if defined(FEAT_MENU) || defined(PROTO)
2254      void
2255 @@ -1525,10 +2187,61 @@ find_key_press_event(
2256      return FALSE;
2257  }
2258  
2259 +#ifdef HAVE_GTK2
2260 +    static GtkWidget *
2261 +create_image_button(const char *stock_id, const char *label)
2262 +{
2263 +    char_u      *text;
2264 +    GtkWidget   *box;
2265 +    GtkWidget   *alignment;
2266 +    GtkWidget   *button;
2267 +
2268 +    text = CONVERT_TO_UTF8((char_u *)label);
2269 +
2270 +    box = gtk_hbox_new(FALSE, 3);
2271 +    gtk_box_pack_start(GTK_BOX(box),
2272 +                       gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_BUTTON),
2273 +                       FALSE, FALSE, 0);
2274 +    gtk_box_pack_start(GTK_BOX(box),
2275 +                       gtk_label_new((const char *)text),
2276 +                       FALSE, FALSE, 0);
2277 +
2278 +    CONVERT_TO_UTF8_FREE(text);
2279 +
2280 +    alignment = gtk_alignment_new(0.5, 0.5, 0.0, 0.0);
2281 +    gtk_container_add(GTK_CONTAINER(alignment), box);
2282 +    gtk_widget_show_all(alignment);
2283 +
2284 +    button = gtk_button_new();
2285 +    gtk_container_add(GTK_CONTAINER(button), alignment);
2286 +
2287 +    return button;
2288 +}
2289 +
2290 +/*
2291 + * This is currently only used by find_replace_dialog_create(), and
2292 + * I'd really like to keep it at that.  In other words: don't spread
2293 + * this nasty hack all over the code.  Think twice.
2294 + */
2295 +    static const char *
2296 +convert_localized_message(char_u **buffer, const char *message)
2297 +{
2298 +    if (output_conv.vc_type == CONV_NONE)
2299 +        return message;
2300 +
2301 +    vim_free(*buffer);
2302 +    *buffer = string_convert(&output_conv, (char_u *)message, NULL);
2303 +
2304 +    return (const char *)*buffer;
2305 +}
2306 +#endif /* HAVE_GTK2 */
2307 +
2308      static void
2309  find_replace_dialog_create(char_u *arg, int do_replace)
2310  {
2311 +#ifndef HAVE_GTK2
2312      GtkWidget  *frame;
2313 +#endif
2314      GtkWidget  *hbox;          /* main top down box */
2315      GtkWidget  *actionarea;
2316      GtkWidget  *table;
2317 @@ -1539,23 +2252,39 @@ find_replace_dialog_create(char_u *arg, 
2318      char_u     *entry_text;
2319      int                wword = FALSE;
2320      int                mcase = !p_ic;
2321 +#ifdef HAVE_GTK2
2322 +    char_u      *conv_buffer = NULL;
2323 +#   define CONV(message) convert_localized_message(&conv_buffer, (message))
2324 +#else
2325 +#   define CONV(message) (message)
2326 +#endif
2327  
2328      frdp = (do_replace) ? (&repl_widgets) : (&find_widgets);
2329  
2330      /* Get the search string to use. */
2331      entry_text = get_find_dialog_text(arg, &wword, &mcase);
2332  
2333 +#ifdef HAVE_GTK2
2334 +    if (entry_text != NULL && output_conv.vc_type != CONV_NONE)
2335 +    {
2336 +        char_u *old_text = entry_text;
2337 +        entry_text = string_convert(&output_conv, entry_text, NULL);
2338 +        vim_free(old_text);
2339 +    }
2340 +#endif
2341 +
2342      /*
2343       * If the dialog already exists, just raise it.
2344       */
2345      if (frdp->dialog)
2346      {
2347 +#ifndef HAVE_GTK2
2348         /* always make the dialog appear where you want it even if the mainwin
2349          * has moved -- dbv */
2350         gui_gtk_position_in_parent(GTK_WIDGET(gui.mainwin),
2351                                       GTK_WIDGET(frdp->dialog), VW_POS_MOUSE);
2352 -
2353         gui_gtk_synch_fonts();
2354 +#endif
2355         if (!GTK_WIDGET_VISIBLE(frdp->dialog))
2356         {
2357             gtk_widget_grab_focus(frdp->what);
2358 @@ -1570,36 +2299,62 @@ find_replace_dialog_create(char_u *arg, 
2359             gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->mcase),
2360                                                              (gboolean)mcase);
2361         }
2362 +#ifdef HAVE_GTK2
2363 +        gtk_window_present(GTK_WINDOW(frdp->dialog));
2364 +#else
2365         gdk_window_raise(frdp->dialog->window);
2366 -
2367 +#endif
2368         vim_free(entry_text);
2369         return;
2370      }
2371  
2372 +#ifdef HAVE_GTK2
2373 +    frdp->dialog = gtk_dialog_new();
2374 +    gtk_dialog_set_has_separator(GTK_DIALOG(frdp->dialog), FALSE);
2375 +    gtk_window_set_transient_for(GTK_WINDOW(frdp->dialog), GTK_WINDOW(gui.mainwin));
2376 +    gtk_window_set_destroy_with_parent(GTK_WINDOW(frdp->dialog), TRUE);
2377 +#else
2378      frdp->dialog = gtk_window_new(GTK_WINDOW_DIALOG);
2379 +#endif
2380 +
2381      if (do_replace)
2382      {
2383 +#ifndef HAVE_GTK2
2384         gtk_window_set_wmclass(GTK_WINDOW(frdp->dialog), "searchrepl", "gvim");
2385 -       gtk_window_set_title(GTK_WINDOW(frdp->dialog), _("VIM - Search and Replace..."));
2386 +#endif
2387 +       gtk_window_set_title(GTK_WINDOW(frdp->dialog),
2388 +                             CONV(_("VIM - Search and Replace...")));
2389      }
2390      else
2391      {
2392 +#ifndef HAVE_GTK2
2393         gtk_window_set_wmclass(GTK_WINDOW(frdp->dialog), "search", "gvim");
2394 -       gtk_window_set_title(GTK_WINDOW(frdp->dialog), _("VIM - Search..."));
2395 +#endif
2396 +       gtk_window_set_title(GTK_WINDOW(frdp->dialog),
2397 +                             CONV(_("VIM - Search...")));
2398      }
2399  
2400 +#ifndef HAVE_GTK2 /* Utter crack.  Shudder. */
2401      gtk_widget_realize(frdp->dialog);
2402      gdk_window_set_decorations(frdp->dialog->window,
2403             GDK_DECOR_TITLE | GDK_DECOR_BORDER | GDK_DECOR_RESIZEH);
2404      gdk_window_set_functions(frdp->dialog->window,
2405             GDK_FUNC_RESIZE | GDK_FUNC_MOVE);
2406 +#endif
2407  
2408 -    /* this makes it look beter on Motif style window managers */
2409 +#ifndef HAVE_GTK2
2410 +    /* this makes it look better on Motif style window managers */
2411      frame = gtk_frame_new(NULL);
2412      gtk_container_add(GTK_CONTAINER(frdp->dialog), frame);
2413 +#endif
2414  
2415      hbox = gtk_hbox_new(FALSE, 0);
2416 +#ifdef HAVE_GTK2
2417 +    gtk_container_set_border_width(GTK_CONTAINER(hbox), 10);
2418 +    gtk_container_add(GTK_CONTAINER(GTK_DIALOG(frdp->dialog)->vbox), hbox);
2419 +#else
2420      gtk_container_add(GTK_CONTAINER(frame), hbox);
2421 +#endif
2422  
2423      if (do_replace)
2424         table = gtk_table_new(1024, 4, FALSE);
2425 @@ -1608,8 +2363,8 @@ find_replace_dialog_create(char_u *arg, 
2426      gtk_box_pack_start(GTK_BOX(hbox), table, TRUE, TRUE, 0);
2427      gtk_container_border_width(GTK_CONTAINER(table), 4);
2428  
2429 -    tmp = gtk_label_new(_("Find what:"));
2430 -    gtk_misc_set_alignment(GTK_MISC(tmp), (float)1.0, (float)0.5);
2431 +    tmp = gtk_label_new(CONV(_("Find what:")));
2432 +    gtk_misc_set_alignment(GTK_MISC(tmp), 0.0, 0.5);
2433      gtk_table_attach(GTK_TABLE(table), tmp, 0, 1, 0, 1,
2434                      GTK_FILL, GTK_EXPAND, 2, 2);
2435      frdp->what = gtk_entry_new();
2436 @@ -1626,14 +2381,14 @@ find_replace_dialog_create(char_u *arg, 
2437  
2438      if (do_replace)
2439      {
2440 -       tmp = gtk_label_new(_("Replace with:"));
2441 -       gtk_misc_set_alignment(GTK_MISC(tmp), (float)1.0, (float)0.5);
2442 +       tmp = gtk_label_new(CONV(_("Replace with:")));
2443 +       gtk_misc_set_alignment(GTK_MISC(tmp), 0.0, 0.5);
2444         gtk_table_attach(GTK_TABLE(table), tmp, 0, 1, 1, 2,
2445                          GTK_FILL, GTK_EXPAND, 2, 2);
2446         frdp->with = gtk_entry_new();
2447         gtk_signal_connect(GTK_OBJECT(frdp->with), "activate",
2448                            GTK_SIGNAL_FUNC(find_replace_cb),
2449 -                          (gpointer) FRD_R_FINDNEXT);
2450 +                          GINT_TO_POINTER(FRD_R_FINDNEXT));
2451         gtk_signal_connect_after(GTK_OBJECT(frdp->with), "key_press_event",
2452                                  GTK_SIGNAL_FUNC(find_key_press_event),
2453                                  (gpointer) frdp);
2454 @@ -1654,11 +2409,11 @@ find_replace_dialog_create(char_u *arg, 
2455          */
2456         gtk_signal_connect(GTK_OBJECT(frdp->what), "activate",
2457                            GTK_SIGNAL_FUNC(find_replace_cb),
2458 -                          (gpointer) FRD_FINDNEXT);
2459 +                          GINT_TO_POINTER(FRD_FINDNEXT));
2460      }
2461  
2462      /* whole word only button */
2463 -    frdp->wword = gtk_check_button_new_with_label(_("Match whole word only"));
2464 +    frdp->wword = gtk_check_button_new_with_label(CONV(_("Match whole word only")));
2465      gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->wword),
2466                                                         (gboolean)wword);
2467      gtk_signal_connect(GTK_OBJECT(frdp->wword), "clicked",
2468 @@ -1671,7 +2426,7 @@ find_replace_dialog_create(char_u *arg, 
2469                          GTK_FILL, GTK_EXPAND, 2, 2);
2470  
2471      /* match case button */
2472 -    frdp->mcase = gtk_check_button_new_with_label(_("Match case"));
2473 +    frdp->mcase = gtk_check_button_new_with_label(CONV(_("Match case")));
2474      gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->mcase),
2475                                                              (gboolean)mcase);
2476      gtk_signal_connect(GTK_OBJECT(frdp->mcase), "clicked",
2477 @@ -1683,7 +2438,7 @@ find_replace_dialog_create(char_u *arg, 
2478         gtk_table_attach(GTK_TABLE(table), frdp->mcase, 0, 1023, 2, 3,
2479                          GTK_FILL, GTK_EXPAND, 2, 2);
2480  
2481 -    tmp = gtk_frame_new(_("Direction"));
2482 +    tmp = gtk_frame_new(CONV(_("Direction")));
2483      if (do_replace)
2484         gtk_table_attach(GTK_TABLE(table), tmp, 1023, 1024, 2, 4,
2485                          GTK_FILL, GTK_FILL, 2, 2);
2486 @@ -1695,42 +2450,46 @@ find_replace_dialog_create(char_u *arg, 
2487      gtk_container_add(GTK_CONTAINER(tmp), vbox);
2488  
2489      /* 'Up' and 'Down' buttons */
2490 -    frdp->up = gtk_radio_button_new_with_label(NULL, _("Up"));
2491 +    frdp->up = gtk_radio_button_new_with_label(NULL, CONV(_("Up")));
2492      gtk_box_pack_start(GTK_BOX(vbox), frdp->up, TRUE, TRUE, 0);
2493      frdp->down = gtk_radio_button_new_with_label(
2494                         gtk_radio_button_group(GTK_RADIO_BUTTON(frdp->up)),
2495 -                       _("Down"));
2496 +                       CONV(_("Down")));
2497      gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->down), TRUE);
2498 -    if (do_replace)
2499 -       gtk_signal_connect(GTK_OBJECT(frdp->down), "clicked",
2500 -                          GTK_SIGNAL_FUNC(repl_dir_cb), NULL);
2501 -    else
2502 -       gtk_signal_connect(GTK_OBJECT(frdp->down), "clicked",
2503 -                          GTK_SIGNAL_FUNC(find_direction_cb), NULL);
2504 +    gtk_signal_connect(GTK_OBJECT(frdp->down), "clicked",
2505 +                       (do_replace) ? GTK_SIGNAL_FUNC(repl_dir_cb)
2506 +                                    : GTK_SIGNAL_FUNC(find_direction_cb),
2507 +                       NULL);
2508 +#ifdef HAVE_GTK2
2509 +    gtk_container_set_border_width(GTK_CONTAINER(vbox), 2);
2510 +#endif
2511      gtk_box_pack_start(GTK_BOX(vbox), frdp->down, TRUE, TRUE, 0);
2512  
2513      /* vbox to hold the action buttons */
2514      actionarea = gtk_vbutton_box_new();
2515      gtk_container_border_width(GTK_CONTAINER(actionarea), 2);
2516 +#ifndef HAVE_GTK2
2517      if (do_replace)
2518      {
2519         gtk_button_box_set_layout(GTK_BUTTON_BOX(actionarea),
2520                                   GTK_BUTTONBOX_END);
2521         gtk_button_box_set_spacing(GTK_BUTTON_BOX(actionarea), 0);
2522      }
2523 +#endif
2524      gtk_box_pack_end(GTK_BOX(hbox), actionarea, FALSE, FALSE, 0);
2525  
2526      /* 'Find Next' button */
2527 +#ifdef HAVE_GTK2
2528 +    frdp->find = create_image_button(GTK_STOCK_FIND, _("Find Next"));
2529 +#else
2530      frdp->find = gtk_button_new_with_label(_("Find Next"));
2531 +#endif
2532      gtk_widget_set_sensitive(frdp->find, sensitive);
2533 -    if (do_replace)
2534 -       gtk_signal_connect(GTK_OBJECT(frdp->find), "clicked",
2535 -                          GTK_SIGNAL_FUNC(find_replace_cb),
2536 -                          (gpointer) FRD_R_FINDNEXT);
2537 -    else
2538 -       gtk_signal_connect(GTK_OBJECT(frdp->find), "clicked",
2539 -                          GTK_SIGNAL_FUNC(find_replace_cb),
2540 -                          (gpointer) FRD_FINDNEXT);
2541 +
2542 +    gtk_signal_connect(GTK_OBJECT(frdp->find), "clicked",
2543 +                       GTK_SIGNAL_FUNC(find_replace_cb),
2544 +                       GINT_TO_POINTER((do_replace) ? FRD_R_FINDNEXT : FRD_FINDNEXT));
2545 +
2546      GTK_WIDGET_SET_FLAGS(frdp->find, GTK_CAN_DEFAULT);
2547      gtk_box_pack_start(GTK_BOX(actionarea), frdp->find, FALSE, FALSE, 0);
2548      gtk_widget_grab_default(frdp->find);
2549 @@ -1738,37 +2497,55 @@ find_replace_dialog_create(char_u *arg, 
2550      if (do_replace)
2551      {
2552         /* 'Replace' button */
2553 +#ifdef HAVE_GTK2
2554 +        frdp->replace = create_image_button(GTK_STOCK_CONVERT, _("Replace"));
2555 +#else
2556         frdp->replace = gtk_button_new_with_label(_("Replace"));
2557 +#endif
2558         gtk_widget_set_sensitive(frdp->replace, sensitive);
2559         GTK_WIDGET_SET_FLAGS(frdp->replace, GTK_CAN_DEFAULT);
2560         gtk_box_pack_start(GTK_BOX(actionarea), frdp->replace, FALSE, FALSE, 0);
2561         gtk_signal_connect(GTK_OBJECT(frdp->replace), "clicked",
2562                            GTK_SIGNAL_FUNC(find_replace_cb),
2563 -                          (gpointer) FRD_REPLACE);
2564 +                          GINT_TO_POINTER(FRD_REPLACE));
2565  
2566         /* 'Replace All' button */
2567 +#ifdef HAVE_GTK2
2568 +        frdp->all = create_image_button(GTK_STOCK_CONVERT, _("Replace All"));
2569 +#else
2570         frdp->all = gtk_button_new_with_label(_("Replace All"));
2571 +#endif
2572         gtk_widget_set_sensitive(frdp->all, sensitive);
2573         GTK_WIDGET_SET_FLAGS(frdp->all, GTK_CAN_DEFAULT);
2574         gtk_box_pack_start(GTK_BOX(actionarea), frdp->all, FALSE, FALSE, 0);
2575         gtk_signal_connect(GTK_OBJECT(frdp->all), "clicked",
2576                            GTK_SIGNAL_FUNC(find_replace_cb),
2577 -                          (gpointer) FRD_REPLACEALL);
2578 +                          GINT_TO_POINTER(FRD_REPLACEALL));
2579      }
2580  
2581      /* 'Cancel' button */
2582 +#ifdef HAVE_GTK2
2583 +    tmp = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
2584 +#else
2585      tmp = gtk_button_new_with_label(_("Cancel"));
2586 +#endif
2587      GTK_WIDGET_SET_FLAGS(tmp, GTK_CAN_DEFAULT);
2588      gtk_box_pack_end(GTK_BOX(actionarea), tmp, FALSE, FALSE, 0);
2589      gtk_signal_connect_object(GTK_OBJECT(tmp),
2590                               "clicked", GTK_SIGNAL_FUNC(gtk_widget_hide),
2591                               GTK_OBJECT(frdp->dialog));
2592      gtk_signal_connect_object(GTK_OBJECT(frdp->dialog),
2593 -                             "delete_event", GTK_SIGNAL_FUNC(gtk_widget_hide),
2594 +                             "delete_event", GTK_SIGNAL_FUNC(gtk_widget_hide_on_delete),
2595                               GTK_OBJECT(frdp->dialog));
2596  
2597      tmp = gtk_vseparator_new();
2598 +#ifdef HAVE_GTK2
2599 +    gtk_box_pack_end(GTK_BOX(hbox), tmp, FALSE, FALSE, 10);
2600 +#else
2601      gtk_box_pack_end(GTK_BOX(hbox), tmp, FALSE, TRUE, 0);
2602 +#endif
2603 +
2604 +#ifndef HAVE_GTK2
2605      gtk_widget_grab_focus(frdp->what);
2606  
2607      /* show the frame and realize the frdp->dialog this gives us a window size
2608 @@ -1777,12 +2554,19 @@ find_replace_dialog_create(char_u *arg, 
2609      gtk_widget_show_all(frame);
2610      gui_gtk_position_in_parent(GTK_WIDGET(gui.mainwin),
2611                                       GTK_WIDGET(frdp->dialog), VW_POS_MOUSE);
2612 -
2613      gui_gtk_synch_fonts();
2614 +#endif
2615  
2616      gtk_widget_show_all(frdp->dialog);
2617 +#ifdef HAVE_GTK2
2618 +    gtk_widget_hide(GTK_DIALOG(frdp->dialog)->action_area);
2619 +#endif
2620  
2621      vim_free(entry_text);
2622 +#ifdef HAVE_GTK2
2623 +    vim_free(conv_buffer);
2624 +#endif
2625 +#undef CONV
2626  }
2627  
2628      void
2629 @@ -1792,7 +2576,6 @@ gui_mch_find_dialog(exarg_T *eap)
2630         find_replace_dialog_create(eap->arg, FALSE);
2631  }
2632  
2633 -
2634      void
2635  gui_mch_replace_dialog(exarg_T *eap)
2636  {
2637 @@ -1801,11 +2584,14 @@ gui_mch_replace_dialog(exarg_T *eap)
2638  }
2639  
2640  
2641 +#ifndef HAVE_GTK2
2642  /*
2643   * Synchronize all gui elements, which are dependant upon the
2644   * main text font used. Those are in esp. the find/replace dialogs.
2645   * If you don't understand why this should be needed, please try to
2646 - * search for "piê¶æ" in iso8859-2.
2647 + * search for "pięść" in iso8859-2.
2648 + *
2649 + * Obsolete with GTK2.
2650   */
2651      void
2652  gui_gtk_synch_fonts(void)
2653 @@ -1824,11 +2610,11 @@ gui_gtk_synch_fonts(void)
2654             /* synch the font with whats used by the text itself */
2655             style = gtk_style_copy(gtk_widget_get_style(frdp->what));
2656             gdk_font_unref(style->font);
2657 -#ifdef FEAT_XFONTSET
2658 +# ifdef FEAT_XFONTSET
2659             if (gui.fontset != NOFONTSET)
2660                 style->font = gui.fontset;
2661             else
2662 -#endif
2663 +# endif
2664                 style->font = gui.norm_font;
2665             gdk_font_ref(style->font);
2666             gtk_widget_set_style(frdp->what, style);
2667 @@ -1837,11 +2623,11 @@ gui_gtk_synch_fonts(void)
2668             {
2669                 style = gtk_style_copy(gtk_widget_get_style(frdp->with));
2670                 gdk_font_unref(style->font);
2671 -#ifdef FEAT_XFONTSET
2672 +# ifdef FEAT_XFONTSET
2673                 if (gui.fontset != NOFONTSET)
2674                     style->font = gui.fontset;
2675                 else
2676 -#endif
2677 +# endif
2678                     style->font = gui.norm_font;
2679                 gdk_font_ref(style->font);
2680                 gtk_widget_set_style(frdp->with, style);
2681 @@ -1850,6 +2636,7 @@ gui_gtk_synch_fonts(void)
2682         }
2683      }
2684  }
2685 +#endif /* !HAVE_GTK2 */
2686  
2687  
2688  /*
2689 @@ -1857,11 +2644,16 @@ gui_gtk_synch_fonts(void)
2690   */
2691  /*ARGSUSED*/
2692      static void
2693 -find_replace_cb(GtkWidget *widget, unsigned int flags)
2694 +find_replace_cb(GtkWidget *widget, gpointer data)
2695  {
2696 -    char       *find_text, *repl_text;
2697 -    gboolean   direction_down = TRUE;
2698 -    SharedFindReplace *sfr;
2699 +    int                 flags;
2700 +    char_u              *find_text;
2701 +    char_u              *repl_text;
2702 +    gboolean           direction_down = TRUE;
2703 +    SharedFindReplace   *sfr;
2704 +    int                 rc;
2705 +
2706 +    flags = GPOINTER_TO_INT(data);
2707  
2708      /* Get the search/replace strings from the dialog */
2709      if (flags == FRD_FINDNEXT)
2710 @@ -1871,20 +2663,30 @@ find_replace_cb(GtkWidget *widget, unsig
2711      }
2712      else
2713      {
2714 -       repl_text = gtk_entry_get_text(GTK_ENTRY(repl_widgets.with));
2715 +       repl_text = (char_u *)gtk_entry_get_text(GTK_ENTRY(repl_widgets.with));
2716         sfr = &repl_widgets;
2717      }
2718 -    find_text = gtk_entry_get_text(GTK_ENTRY(sfr->what));
2719 +
2720 +    find_text = (char_u *)gtk_entry_get_text(GTK_ENTRY(sfr->what));
2721      direction_down = GTK_TOGGLE_BUTTON(sfr->down)->active;
2722 +
2723      if (GTK_TOGGLE_BUTTON(sfr->wword)->active)
2724         flags |= FRD_WHOLE_WORD;
2725      if (GTK_TOGGLE_BUTTON(sfr->mcase)->active)
2726         flags |= FRD_MATCH_CASE;
2727  
2728 -    if (gui_do_findrepl((int)flags, (char_u *)find_text, (char_u *)repl_text,
2729 -                                                        (int)direction_down))
2730 -       if (gtk_main_level() > 0)
2731 -           gtk_main_quit();    /* make sure cmd will be handled immediately */
2732 +#ifdef HAVE_GTK2
2733 +    repl_text = CONVERT_FROM_UTF8(repl_text);
2734 +    find_text = CONVERT_FROM_UTF8(find_text);
2735 +#endif
2736 +    rc = gui_do_findrepl(flags, find_text, repl_text, direction_down);
2737 +#ifdef HAVE_GTK2
2738 +    CONVERT_FROM_UTF8_FREE(repl_text);
2739 +    CONVERT_FROM_UTF8_FREE(find_text);
2740 +#endif
2741 +
2742 +    if (rc && gtk_main_level() > 0)
2743 +        gtk_main_quit(); /* make sure cmd will be handled immediately */
2744  }
2745  
2746  /* our usual callback function */
2747 @@ -1963,7 +2765,7 @@ mcase_match_cb(GtkWidget * widget, gpoin
2748      static void
2749  entry_changed_cb(GtkWidget * entry, GtkWidget * dialog)
2750  {
2751 -    gchar      *entry_text;
2752 +    const gchar        *entry_text;
2753      gboolean   nonempty;
2754  
2755      entry_text = gtk_entry_get_text(GTK_ENTRY(entry));
2756 @@ -1971,7 +2773,7 @@ entry_changed_cb(GtkWidget * entry, GtkW
2757      if (!entry_text)
2758         return;                 /* shouldn't happen */
2759  
2760 -    nonempty = (strlen(entry_text) != 0);
2761 +    nonempty = (entry_text[0] != '\0');
2762  
2763      if (dialog == find_widgets.dialog)
2764      {
2765 @@ -2014,6 +2816,8 @@ ex_helpfind(eap)
2766      do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
2767  }
2768  
2769 +#ifndef HAVE_GTK2 /* Crack crack crack.  Brrrr. */
2770 +
2771  /*  gui_gtk_position_in_parent
2772   *
2773   *  this function causes a child window to be placed within the boundary of
2774 @@ -2090,3 +2894,6 @@ gui_gtk_position_in_parent(
2775  
2776      gtk_widget_set_uposition(child, pos_x, pos_y);
2777  }
2778 +
2779 +#endif /* !HAVE_GTK2 */
2780 +
2781 Index: src/gui_gtk_f.c
2782 ===================================================================
2783 RCS file: /cvsroot/vim/vim/src/gui_gtk_f.c,v
2784 retrieving revision 1.7
2785 diff -u -3 -p -r1.7 gui_gtk_f.c
2786 --- src/gui_gtk_f.c     25 Feb 2002 16:44:39 -0000      1.7
2787 +++ src/gui_gtk_f.c     6 Feb 2003 17:52:30 -0000
2788 @@ -14,9 +14,14 @@
2789   *     embedded systems related, which seems to cause some serious trouble for
2790   *     your's in-house developers, maybe we need to talk badly with each other
2791   *     :-) <dalecki@cs.net.pl> (My native language is polish and I speak
2792 - *     native grade german too. I'm living in Göttingen.de.)
2793 + *     native grade german too. I'm living in Göttingen.de.)
2794   *     --mdcki"
2795   *
2796 + * Support for GTK+ 2 was added by:
2797 + *
2798 + * Â© 2002,2003  Jason Hildebrand  <jason@peaceworks.ca>
2799 + *              Daniel Elstner  <daniel.elstner@gmx.net>
2800 + *
2801   * This is a special purspose container widget, which manages arbitrary childs
2802   * at arbitrary positions width arbitrary sizes.  This finally puts an end on
2803   * our resizement problems with which we where struggling for such a long time.
2804 @@ -37,7 +42,7 @@ struct _GtkFormChild
2805      GdkWindow *window;
2806      gint x;            /* relative subwidget x position */
2807      gint y;            /* relative subwidget y position */
2808 -    gint mapped : 1;
2809 +    gint mapped;
2810  };
2811  
2812  
2813 @@ -51,8 +56,10 @@ static void gtk_form_size_request(GtkWid
2814                                   GtkRequisition * requisition);
2815  static void gtk_form_size_allocate(GtkWidget * widget,
2816                                    GtkAllocation * allocation);
2817 +#ifndef HAVE_GTK2  /* this isn't needed in gtk2 */
2818  static void gtk_form_draw(GtkWidget * widget,
2819                           GdkRectangle * area);
2820 +#endif
2821  static gint gtk_form_expose(GtkWidget * widget,
2822                             GdkEventExpose * event);
2823  
2824 @@ -63,6 +70,8 @@ static void gtk_form_forall(GtkContainer
2825                             GtkCallback callback,
2826                             gpointer callback_data);
2827  
2828 +static void gtk_form_attach_child_window(GtkForm * form,
2829 +                                         GtkFormChild * child);
2830  static void gtk_form_realize_child(GtkForm * form,
2831                                    GtkFormChild * child);
2832  static void gtk_form_position_child(GtkForm * form,
2833 @@ -82,6 +91,9 @@ static void gtk_form_set_static_gravity(
2834  
2835  static void gtk_form_send_configure(GtkForm *form);
2836  
2837 +static void gtk_form_child_map(GtkWidget *widget, gpointer user_data);
2838 +static void gtk_form_child_unmap(GtkWidget *widget, gpointer user_data);
2839 +
2840  static GtkWidgetClass *parent_class = NULL;
2841  
2842  /* Public interface
2843 @@ -119,9 +131,15 @@ gtk_form_put(GtkForm * form,
2844  
2845      form->children = g_list_append(form->children, child);
2846  
2847 -    gtk_widget_set_parent(child_widget, GTK_WIDGET(form));
2848 +    /* child->window must be created and attached to the widget _before_
2849 +     * it has been realized, or else things will break with GTK2.  Note
2850 +     * that gtk_widget_set_parent() realizes the widget if it's visible
2851 +     * and its parent is mapped.
2852 +     */
2853      if (GTK_WIDGET_REALIZED(form))
2854 -       gtk_widget_set_parent_window (child->widget, form->bin_window);
2855 +       gtk_form_attach_child_window(form, child);
2856 +
2857 +    gtk_widget_set_parent(child_widget, GTK_WIDGET(form));
2858      gtk_widget_size_request(child->widget, NULL);
2859  
2860      if (GTK_WIDGET_REALIZED(form) && !GTK_WIDGET_REALIZED(child_widget))
2861 @@ -168,7 +186,11 @@ gtk_form_set_size(GtkForm * form, guint 
2862      form->height = height;
2863  
2864      /* signal the change */
2865 +#ifdef HAVE_GTK2
2866 +    gtk_widget_queue_resize(gtk_widget_get_parent(GTK_WIDGET(form)));
2867 +#else
2868      gtk_container_queue_resize(GTK_CONTAINER(GTK_WIDGET(form)->parent));
2869 +#endif
2870  }
2871  
2872      void
2873 @@ -191,14 +213,18 @@ gtk_form_thaw(GtkForm * form)
2874         if (!(--form->freeze_count))
2875         {
2876             gtk_form_position_children(form);
2877 +#ifdef HAVE_GTK2
2878 +           gtk_widget_queue_draw(GTK_WIDGET(form));
2879 +#else
2880             gtk_widget_draw(GTK_WIDGET(form), NULL);
2881 +#endif
2882         }
2883      }
2884  }
2885  
2886  /* Basic Object handling procedures
2887   */
2888 -    guint
2889 +    GtkType
2890  gtk_form_get_type(void)
2891  {
2892      static guint form_type = 0;
2893 @@ -235,7 +261,9 @@ gtk_form_class_init(GtkFormClass * class
2894      widget_class->map = gtk_form_map;
2895      widget_class->size_request = gtk_form_size_request;
2896      widget_class->size_allocate = gtk_form_size_allocate;
2897 +#ifndef HAVE_GTK2 /* not needed for GTK2 */
2898      widget_class->draw = gtk_form_draw;
2899 +#endif
2900      widget_class->expose_event = gtk_form_expose;
2901  
2902      container_class->remove = gtk_form_remove;
2903 @@ -312,12 +340,22 @@ gtk_form_realize(GtkWidget * widget)
2904      {
2905         GtkFormChild *child = tmp_list->data;
2906  
2907 -       gtk_widget_set_parent_window (child->widget, form->bin_window);
2908 +       gtk_form_attach_child_window(form, child);
2909 +
2910         if (GTK_WIDGET_VISIBLE(child->widget))
2911             gtk_form_realize_child(form, child);
2912      }
2913  }
2914  
2915 +
2916 +/* After reading the documentation at 
2917 + * http://developer.gnome.org/doc/API/2.0/gtk/gtk-changes-2-0.html 
2918 + * I think it should be possible to remove this function when compiling
2919 + * against gtk-2.0.  It doesn't seem to cause problems, though.
2920 + *
2921 + * Well, I reckon at least the gdk_window_show(form->bin_window)
2922 + * is necessary.  GtkForm is anything but a usual container widget.
2923 + */
2924      static void
2925  gtk_form_map(GtkWidget * widget)
2926  {
2927 @@ -341,11 +379,7 @@ gtk_form_map(GtkWidget * widget)
2928         if (GTK_WIDGET_VISIBLE(child->widget) &&
2929             !GTK_WIDGET_MAPPED(child->widget))
2930             gtk_widget_map(child->widget);
2931 -
2932 -       if (child->window)
2933 -           gdk_window_show(child->window);
2934      }
2935 -
2936  }
2937  
2938      static void
2939 @@ -371,9 +405,17 @@ gtk_form_unrealize(GtkWidget * widget)
2940  
2941         if (child->window)
2942         {
2943 +            gtk_signal_disconnect_by_func(GTK_OBJECT(child->widget),
2944 +                                          GTK_SIGNAL_FUNC(&gtk_form_child_map), child);
2945 +            gtk_signal_disconnect_by_func(GTK_OBJECT(child->widget),
2946 +                                          GTK_SIGNAL_FUNC(&gtk_form_child_unmap), child);
2947 +
2948             gdk_window_set_user_data(child->window, NULL);
2949             gdk_window_destroy(child->window);
2950 +
2951 +            child->window = NULL;
2952         }
2953 +
2954         tmp_list = tmp_list->next;
2955      }
2956  
2957 @@ -381,6 +423,7 @@ gtk_form_unrealize(GtkWidget * widget)
2958          (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
2959  }
2960  
2961 +#ifndef HAVE_GTK2
2962  /*ARGSUSED*/
2963      static void
2964  gtk_form_draw(GtkWidget * widget, GdkRectangle * area)
2965 @@ -411,6 +454,7 @@ gtk_form_draw(GtkWidget * widget, GdkRec
2966         }
2967      }
2968  }
2969 +#endif /* !HAVE_GTK2 */
2970  
2971      static void
2972  gtk_form_size_request(GtkWidget * widget,
2973 @@ -499,15 +543,36 @@ gtk_form_expose(GtkWidget * widget, GdkE
2974      if (event->window == form->bin_window)
2975         return FALSE;
2976  
2977 -    tmp_list = form->children;
2978 -    while (tmp_list)
2979 +    for (tmp_list = form->children; tmp_list; tmp_list = tmp_list->next)
2980      {
2981 -       GtkFormChild *child = tmp_list->data;
2982 -
2983 -       if (event->window == child->window)
2984 -           return gtk_widget_event(child->widget, (GdkEvent *) event);
2985 -
2986 -       tmp_list = tmp_list->next;
2987 +#ifdef HAVE_GTK2
2988 +       GtkFormChild *formchild = tmp_list->data;
2989 +        GtkWidget *child = formchild->widget;
2990 +
2991 +        /* The following chunk of code is taken from gtkcontainer.c.  The
2992 +         * gtk1.x code synthesized expose events directly on the child widgets, 
2993 +         * which can't be done in gtk2
2994 +         */
2995 +        if (GTK_WIDGET_DRAWABLE(child) &&
2996 +            GTK_WIDGET_NO_WINDOW(child) &&
2997 +            child->window == event->window)
2998 +        {
2999 +            GdkEventExpose child_event;
3000 +            child_event = *event;
3001
3002 +            child_event.region = gtk_widget_region_intersect(child, event->region);
3003 +            if (!gdk_region_empty(child_event.region))
3004 +            {
3005 +                gdk_region_get_clipbox(child_event.region, &child_event.area);
3006 +                gtk_widget_send_expose(child, (GdkEvent *)&child_event);
3007 +            }
3008 +        }
3009 +#else /* !HAVE_GTK2 */
3010 +        GtkFormChild *child = tmp_list->data;
3011 +
3012 +        if (event->window == child->window)
3013 +            return gtk_widget_event(child->widget, (GdkEvent *) event);
3014 +#endif /* !HAVE_GTK2 */
3015      }
3016  
3017      return FALSE;
3018 @@ -540,6 +605,11 @@ gtk_form_remove(GtkContainer * container
3019      {
3020         if (child->window)
3021         {
3022 +            gtk_signal_disconnect_by_func(GTK_OBJECT(child->widget),
3023 +                                          GTK_SIGNAL_FUNC(&gtk_form_child_map), child);
3024 +            gtk_signal_disconnect_by_func(GTK_OBJECT(child->widget),
3025 +                                          GTK_SIGNAL_FUNC(&gtk_form_child_unmap), child);
3026 +
3027             /* FIXME: This will cause problems for reparenting NO_WINDOW
3028              * widgets out of a GtkForm
3029              */
3030 @@ -585,24 +655,23 @@ gtk_form_forall(GtkContainer * container
3031   */
3032  
3033      static void
3034 -gtk_form_realize_child(GtkForm * form,
3035 -                      GtkFormChild * child)
3036 +gtk_form_attach_child_window(GtkForm * form,
3037 +                             GtkFormChild * child)
3038  {
3039 -    GtkWidget *widget;
3040 -    gint attributes_mask;
3041 -
3042 -    widget = GTK_WIDGET(form);
3043 +    if (child->window)
3044 +        return; /* been there, done that */
3045  
3046      if (GTK_WIDGET_NO_WINDOW(child->widget))
3047      {
3048 -       GdkWindowAttr attributes;
3049 +        GtkWidget       *widget;
3050 +        GdkWindowAttr   attributes;
3051 +        gint            attributes_mask;
3052  
3053 -       gint x = child->x;
3054 -       gint y = child->y;
3055 +        widget = GTK_WIDGET(form);
3056  
3057         attributes.window_type = GDK_WINDOW_CHILD;
3058 -       attributes.x = x;
3059 -       attributes.y = y;
3060 +       attributes.x = child->x;
3061 +       attributes.y = child->y;
3062         attributes.width = child->widget->requisition.width;
3063         attributes.height = child->widget->requisition.height;
3064         attributes.wclass = GDK_INPUT_OUTPUT;
3065 @@ -615,17 +684,36 @@ gtk_form_realize_child(GtkForm * form,
3066                                        &attributes, attributes_mask);
3067         gdk_window_set_user_data(child->window, widget);
3068  
3069 -       if (child->window)
3070 -           gtk_style_set_background(widget->style,
3071 -                                    child->window,
3072 -                                    GTK_STATE_NORMAL);
3073 +        gtk_style_set_background(widget->style,
3074 +                                 child->window,
3075 +                                 GTK_STATE_NORMAL);
3076 +
3077 +        gtk_widget_set_parent_window(child->widget, child->window);
3078 +        gtk_form_set_static_gravity(child->window, TRUE);
3079 +
3080 +        /* Install signal handlers to map/unmap child->window
3081 +         * alongside with the actual widget.
3082 +         */
3083 +        gtk_signal_connect(GTK_OBJECT(child->widget), "map",
3084 +                           GTK_SIGNAL_FUNC(&gtk_form_child_map), child);
3085 +        gtk_signal_connect(GTK_OBJECT(child->widget), "unmap",
3086 +                           GTK_SIGNAL_FUNC(&gtk_form_child_unmap), child);
3087      }
3088 -    gtk_widget_set_parent_window(child->widget,
3089 -                      child->window ? child->window : form->bin_window);
3090 +    else if (!GTK_WIDGET_REALIZED(child->widget))
3091 +    {
3092 +        gtk_widget_set_parent_window(child->widget, form->bin_window);
3093 +    }
3094 +}
3095  
3096 +    static void
3097 +gtk_form_realize_child(GtkForm * form,
3098 +                      GtkFormChild * child)
3099 +{
3100 +    gtk_form_attach_child_window(form, child);
3101      gtk_widget_realize(child->widget);
3102  
3103 -    gtk_form_set_static_gravity(child->window ? child->window : child->widget->window, TRUE);
3104 +    if (!child->window) /* already set, see above */
3105 +        gtk_form_set_static_gravity(child->widget->window, TRUE);
3106  }
3107  
3108      static void
3109 @@ -638,17 +726,14 @@ gtk_form_position_child(GtkForm * form,
3110  
3111      x = child->x;
3112      y = child->y;
3113 +
3114      if ((x >= G_MINSHORT) && (x <= G_MAXSHORT) &&
3115 -           (y >= G_MINSHORT) && (y <= G_MAXSHORT))
3116 +       (y >= G_MINSHORT) && (y <= G_MAXSHORT))
3117      {
3118         if (!child->mapped)
3119         {
3120 -           child->mapped = TRUE;
3121 -
3122             if (GTK_WIDGET_MAPPED(form) && GTK_WIDGET_VISIBLE(child->widget))
3123             {
3124 -               if (child->window)
3125 -                   gdk_window_show(child->window);
3126                 if (!GTK_WIDGET_MAPPED(child->widget))
3127                     gtk_widget_map(child->widget);
3128  
3129 @@ -691,9 +776,8 @@ gtk_form_position_child(GtkForm * form,
3130         if (child->mapped)
3131         {
3132             child->mapped = FALSE;
3133 -           if (child->window)
3134 -               gdk_window_hide(child->window);
3135 -           else if (GTK_WIDGET_MAPPED (child->widget))
3136 +
3137 +            if (GTK_WIDGET_MAPPED(child->widget))
3138                 gtk_widget_unmap(child->widget);
3139         }
3140      }
3141 @@ -797,6 +881,13 @@ gtk_form_main_filter(GdkXEvent * gdk_xev
3142      static void
3143  gtk_form_set_static_gravity(GdkWindow * win, gboolean on)
3144  {
3145 +#ifdef HAVE_GTK2
3146 +    gboolean static_gravity_supported;
3147 +
3148 +    static_gravity_supported = gdk_window_set_static_gravities(win, on);
3149 +
3150 +    g_return_if_fail(static_gravity_supported);
3151 +#else
3152      XSetWindowAttributes xattributes;
3153  
3154      xattributes.win_gravity = on ? StaticGravity : NorthWestGravity;
3155 @@ -806,6 +897,7 @@ gtk_form_set_static_gravity(GdkWindow * 
3156                             GDK_WINDOW_XWINDOW(win),
3157                             CWBitGravity | CWWinGravity,
3158                             &xattributes);
3159 +#endif
3160  }
3161  
3162      void
3163 @@ -813,8 +905,9 @@ gtk_form_move_resize(GtkForm * form, Gtk
3164                      gint x, gint y,
3165                      gint w, gint h)
3166  {
3167 -    widget->requisition.width = w;
3168 +    widget->requisition.width  = w;
3169      widget->requisition.height = h;
3170 +
3171      gtk_form_move(form, widget, x, y);
3172  }
3173  
3174 @@ -833,5 +926,32 @@ gtk_form_send_configure(GtkForm *form)
3175      event.width = widget->allocation.width;
3176      event.height = widget->allocation.height;
3177  
3178 -    gtk_widget_event (widget, (GdkEvent*) &event);
3179 +#ifdef HAVE_GTK2
3180 +    gtk_main_do_event((GdkEvent*)&event);
3181 +#else
3182 +    gtk_widget_event(widget, (GdkEvent*) &event);
3183 +#endif
3184 +}
3185 +
3186 +    static void
3187 +gtk_form_child_map(GtkWidget *widget, gpointer user_data)
3188 +{
3189 +    GtkFormChild *child;
3190 +
3191 +    child = (GtkFormChild *)user_data;
3192 +
3193 +    child->mapped = TRUE;
3194 +    gdk_window_show(child->window);
3195  }
3196 +
3197 +    static void
3198 +gtk_form_child_unmap(GtkWidget *widget, gpointer user_data)
3199 +{
3200 +    GtkFormChild *child;
3201 +
3202 +    child = (GtkFormChild *)user_data;
3203 +
3204 +    child->mapped = FALSE;
3205 +    gdk_window_hide(child->window);
3206 +}
3207 +
3208 Index: src/gui_gtk_x11.c
3209 ===================================================================
3210 RCS file: /cvsroot/vim/vim/src/gui_gtk_x11.c,v
3211 retrieving revision 1.63
3212 diff -u -3 -p -r1.63 gui_gtk_x11.c
3213 --- src/gui_gtk_x11.c   3 Aug 2002 17:15:15 -0000       1.63
3214 +++ src/gui_gtk_x11.c   6 Feb 2003 17:52:32 -0000
3215 @@ -14,6 +14,11 @@
3216   *
3217   * With GREAT support and continuous encouragements by Andy Kahn and of
3218   * course Bram Moolenaar!
3219 + *
3220 + * Support for GTK+ 2 was added by:
3221 + *
3222 + * Â© 2002,2003  Jason Hildebrand  <jason@peaceworks.ca>
3223 + *              Daniel Elstner  <daniel.elstner@gmx.net>
3224   */
3225  
3226  #include "vim.h"
3227 @@ -73,8 +78,22 @@
3228  # include <X11/Sunkeysym.h>
3229  #endif
3230  
3231 -#define VIM_NAME       "vim"
3232 -#define VIM_CLASS      "Vim"
3233 +/* Easy-to-use macros for multihead support.
3234 + */
3235 +#ifdef GTK2_MULTIHEAD
3236 +
3237 +# define GET_X_DISPLAY()        GDK_WINDOW_XDISPLAY(gui.mainwin->window)
3238 +# define GET_X_ATOM(atom)       gdk_x11_atom_to_xatom_for_display( \
3239 +                                    gtk_widget_get_display(gui.mainwin), (atom))
3240 +# define GET_GDK_ATOM(xatom)    gdk_x11_xatom_to_atom_for_display( \
3241 +                                    gtk_widget_get_display(gui.mainwin), (xatom))
3242 +#else
3243 +
3244 +# define GET_X_DISPLAY()        GDK_DISPLAY()
3245 +# define GET_X_ATOM(atom)       ((Atom) (atom))
3246 +# define GET_GDK_ATOM(xatom)    ((GdkAtom) (xatom))
3247 +
3248 +#endif
3249  
3250  /* slection distinguishers */
3251  enum
3252 @@ -100,32 +119,50 @@ enum
3253    TARGET_STRING
3254  };
3255  
3256 -static GtkTargetEntry target_table[] =
3257 +/* GTK2_FIXME: Handle target "UTF8_STRING"?
3258 + * (Actually this could be done for the old GTK+ too, I think.)
3259 + */
3260 +static const GtkTargetEntry target_table[] =
3261  {
3262      {"text/uri-list",  0, TARGET_STRING},
3263      {"STRING",         0, TARGET_STRING},
3264      {"text/plain",     0, TARGET_STRING}
3265  };
3266 -static guint n_targets = sizeof(target_table) / sizeof(target_table[0]);
3267 +enum { DND_N_TARGETS = sizeof(target_table) / sizeof(target_table[0]) };
3268  #endif
3269  
3270 +#ifdef HAVE_GTK2
3271 +
3272 +/* "Monospace" is a standard font alias that should be present
3273 + * on all proper Pango/fontconfig installations.
3274 + */
3275 +# define DEFAULT_FONT  "Monospace 10"
3276 +
3277 +#else /* !HAVE_GTK2 */
3278 +
3279  /* This is the single only fixed width font in X11, which seems to be present
3280   * on all servers and available in all the variants we need.
3281   */
3282 -#define DFLT_FONT      "-adobe-courier-medium-r-normal-*-14-*-*-*-m-*-*-*"
3283 +# define DEFAULT_FONT  "-adobe-courier-medium-r-normal-*-14-*-*-*-m-*-*-*"
3284 +
3285 +#endif /* !HAVE_GTK2 */
3286  
3287 +#ifndef USE_GNOME_SESSION
3288  /*
3289   * Atoms used to communicate save-yourself from the X11 session manager. There
3290   * is no need to move them into the GUI struct, since they should be constant.
3291   */
3292  static GdkAtom wm_protocols_atom = GDK_NONE;
3293  static GdkAtom save_yourself_atom = GDK_NONE;
3294 +#endif
3295  
3296 +#ifndef HAVE_GTK2
3297  /*
3298   * Atom used to recognize requests for on the fly GTK+ style configuration
3299   * changes.
3300   */
3301  static GdkAtom reread_rcfiles_atom = GDK_NONE;
3302 +#endif
3303  
3304  /*
3305   * Atoms used to control/reference X11 selections.
3306 @@ -142,7 +179,7 @@ static struct special_key
3307      guint key_sym;
3308      char_u code0;
3309      char_u code1;
3310 -} special_keys[] =
3311 +} const special_keys[] =
3312  {
3313      {GDK_Up,           'k', 'u'},
3314      {GDK_Down,         'k', 'd'},
3315 @@ -238,74 +275,94 @@ static struct special_key
3316   *
3317   * When changing this, also update doc/gui_x11.txt and the usage message!!!
3318   */
3319 -static struct cmdline_option
3320 +enum option_flags
3321  {
3322 -    char    *name;
3323 -    int            has_value;
3324 -} cmdline_options[] =
3325 +    HAS_VALUE       = 1 << 0,   /* a value is expected after the argument */
3326 +    NEEDS_GUI       = 1 << 1,   /* need to initialize the GUI for this    */
3327 +    IS_GTK_ARG      = 1 << 2,   /* argument is handled by GTK+ or GNOME   */
3328 +    COMPAT_LONGOPT  = 1 << 3    /* accept -foo but substitute with --foo  */
3329 +};
3330 +
3331 +struct cmdline_option
3332  {
3333 -    /* We handle these options ourselfs */
3334 -    {"-fn",            TRUE},
3335 -    {"-font",          TRUE},
3336 -    {"-geom",          TRUE},
3337 -    {"-geometry",      TRUE},
3338 -    {"-reverse",       FALSE},
3339 -    {"-rv",            FALSE},
3340 -#if 0  /* TBD */
3341 -    {"-bg",            TRUE},
3342 -    {"-background",    TRUE},
3343 -    {"-fg",            TRUE},
3344 -    {"-foreground",    TRUE},
3345 -    {"-boldfont",      TRUE},
3346 -    {"-italicfont",    TRUE},
3347 -    {"+reverse",       FALSE},
3348 -    {"+rv",            FALSE},
3349 -    {"-iconic",                FALSE},
3350 -    {"-name",          TRUE},
3351 -    {"-bw",            TRUE},
3352 -    {"-borderwidth",   TRUE},
3353 -    {"-sw",            TRUE},
3354 -    {"-scrollbarwidth", TRUE},
3355 -    {"-xrm",           TRUE},
3356 -#endif
3357 +    const char          *name;
3358 +    enum option_flags   flags;
3359  };
3360  
3361 -/*
3362 - * Arguments handled by GTK (and GNOME) internally.
3363 - */
3364 -static char *gtk_cmdline_options[] =
3365 +static struct cmdline_option const cmdline_options[] =
3366  {
3367 -    "--sync",
3368 -    "--gdk-debug=",
3369 -    "--gdk-no-debug=",
3370 -    "--no-xshm",
3371 -    "--xim-preedit",
3372 -    "--xim-status",
3373 -    "--gtk-debug=",
3374 -    "--gtk-no-debug=",
3375 -    "--g-fatal-warnings",
3376 -    "--gtk-module=",
3377 -    "-display",
3378 -    "--display",
3379 +    /* We handle these options ourselfs */
3380 +    { "-fn",               HAS_VALUE },
3381 +    { "-font",             HAS_VALUE },
3382 +    { "-geom",             HAS_VALUE },
3383 +    { "-geometry",         HAS_VALUE },
3384 +    { "-reverse",          0 },
3385 +    { "-rv",               0 },
3386 +#if 0  /* TBD */
3387 +    { "-bg",               HAS_VALUE },
3388 +    { "-background",       HAS_VALUE },
3389 +    { "-fg",               HAS_VALUE },
3390 +    { "-foreground",       HAS_VALUE },
3391 +    { "-boldfont",         HAS_VALUE },
3392 +    { "-italicfont",       HAS_VALUE },
3393 +    { "+reverse",          0 },
3394 +    { "+rv",               0 },
3395 +    { "-iconic",           0 },
3396 +    { "-bw",               HAS_VALUE },
3397 +    { "-borderwidth",      HAS_VALUE },
3398 +    { "-sw",               HAS_VALUE },
3399 +    { "-scrollbarwidth",    HAS_VALUE },
3400 +    { "-xrm",              HAS_VALUE },
3401 +#endif
3402 +    /* Arguments handled by GTK (and GNOME) internally. */
3403 +    { "--g-fatal-warnings",     IS_GTK_ARG              },
3404 +    { "--gdk-debug",            IS_GTK_ARG | HAS_VALUE  },
3405 +    { "--gdk-no-debug",         IS_GTK_ARG | HAS_VALUE  },
3406 +    { "--gtk-debug",            IS_GTK_ARG | HAS_VALUE  },
3407 +    { "--gtk-no-debug",         IS_GTK_ARG | HAS_VALUE  },
3408 +    { "--gtk-module",           IS_GTK_ARG | HAS_VALUE  },
3409 +    { "--sync",                 IS_GTK_ARG              },
3410 +    { "--display",              IS_GTK_ARG | HAS_VALUE | COMPAT_LONGOPT },
3411 +    { "--name",                 IS_GTK_ARG | HAS_VALUE | COMPAT_LONGOPT },
3412 +    { "--class",                IS_GTK_ARG | HAS_VALUE | COMPAT_LONGOPT },
3413 +#ifdef HAVE_GTK2
3414 +    { "--screen",               IS_GTK_ARG | HAS_VALUE  },
3415 +    { "--gxid-host",            IS_GTK_ARG | HAS_VALUE  },
3416 +    { "--gxid-port",            IS_GTK_ARG | HAS_VALUE  },
3417 +#else /* these don't seem to exist anymore */
3418 +    { "--no-xshm",              IS_GTK_ARG              },
3419 +    { "--xim-preedit",          IS_GTK_ARG | HAS_VALUE  },
3420 +    { "--xim-status",           IS_GTK_ARG | HAS_VALUE  },
3421 +    { "--gxid_host",            IS_GTK_ARG | HAS_VALUE  },
3422 +    { "--gxid_port",            IS_GTK_ARG | HAS_VALUE  },
3423 +#endif
3424  #ifdef FEAT_GUI_GNOME
3425 -    "--disable-sound",
3426 -    "--enable-sound",
3427 -    "--espeaker=",
3428 -    "--version",
3429 -    "-?",
3430 -    "--help",
3431 -    "--usage",
3432 -    "--disable-crash-dialog",
3433 -    "--sm-client-id=",
3434 -    "--sm-config-prefix=",
3435 -    "--sm-disable",
3436 +    { "--load-modules",         IS_GTK_ARG | HAS_VALUE  },
3437 +    { "--sm-client-id",         IS_GTK_ARG | HAS_VALUE  },
3438 +    { "--sm-config-prefix",     IS_GTK_ARG | HAS_VALUE  },
3439 +    { "--sm-disable",           IS_GTK_ARG              },
3440 +    { "--oaf-ior-fd",           IS_GTK_ARG | HAS_VALUE  },
3441 +    { "--oaf-activate-iid",     IS_GTK_ARG | HAS_VALUE  },
3442 +    { "--oaf-private",          IS_GTK_ARG              },
3443 +    { "--enable-sound",         IS_GTK_ARG              },
3444 +    { "--disable-sound",        IS_GTK_ARG              },
3445 +    { "--espeaker",             IS_GTK_ARG | HAS_VALUE  },
3446 +    { "-?",                     IS_GTK_ARG | NEEDS_GUI  },
3447 +    { "--help",                 IS_GTK_ARG | NEEDS_GUI  },
3448 +    { "--usage",                IS_GTK_ARG | NEEDS_GUI  },
3449 +    { "--version",              IS_GTK_ARG | NEEDS_GUI  },
3450 +    { "--disable-crash-dialog", IS_GTK_ARG              },
3451  #endif
3452 -    NULL
3453 +    { NULL, 0 }
3454  };
3455  
3456  static int gui_argc = 0;
3457  static char **gui_argv = NULL;
3458  
3459 +#ifdef USE_GNOME_SESSION
3460 +static char *restart_command = NULL;
3461 +#endif
3462 +
3463  #ifdef FEAT_GUI_GNOME
3464  /*
3465   * Can't use Gnome if --socketid given
3466 @@ -323,117 +380,136 @@ static int using_gnome = 0;
3467      void
3468  gui_mch_prepare(int *argc, char **argv)
3469  {
3470 -    int arg;
3471 -    int i;
3472 -    char **gtk_option;
3473 +    struct cmdline_option const *option;
3474 +    int     i   = 0;
3475 +    int     len = 0;
3476  
3477 +#ifdef USE_GNOME_SESSION
3478      /*
3479 -     * Move all the entries in argv which are relevant to X into gui_argv.
3480 +     * Determine the command used to invoke vim, to be passed as restart
3481 +     * command to GnomeClient when saving the session.  If argv[0] contains
3482 +     * any directory components try to build an absolute path.  Otherwise,
3483 +     * just leave it as is.
3484       */
3485 -    gui_argc = 0;
3486 -    gui_argv = (char **)lalloc((long_u)(*argc * sizeof(char *)), FALSE);
3487 -    if (gui_argv == NULL)
3488 -       return;
3489 -
3490 -    gui_argv[gui_argc++] = argv[0];
3491 -    arg = 1;
3492 -    while (arg < *argc)
3493 -    {
3494 -       /* Look for argv[arg] in cmdline_options[] table */
3495 -       for (i = 0; i < XtNumber(cmdline_options); i++)
3496 -           if (strcmp(argv[arg], cmdline_options[i].name) == 0)
3497 -               break;
3498 -
3499 -       if (i < XtNumber(cmdline_options))
3500 -       {
3501 -           /* Remember finding "-rv" or "-reverse" */
3502 -           if (strcmp("-rv", argv[arg]) == 0
3503 -                   || strcmp("-reverse", argv[arg]) == 0)
3504 -           {
3505 -               found_reverse_arg = TRUE;
3506 -           }
3507 -           else if ((strcmp("-fn", argv[arg]) == 0
3508 -                       || strcmp("-font", argv[arg]) == 0) && arg + 1 < *argc)
3509 -           {
3510 -               font_argument = argv[arg + 1];
3511 -           }
3512 -           else if ((strcmp("-geometry", argv[arg]) == 0
3513 -                       || strcmp("-geom", argv[arg]) == 0) && arg + 1 < *argc)
3514 -           {
3515 -               gui.geom = (char_u *)g_strdup((const char *)argv[arg + 1]);
3516 -           }
3517 +    if (g_path_is_absolute(argv[0]) || strchr(argv[0], G_DIR_SEPARATOR) == NULL)
3518 +    {
3519 +        restart_command = argv[0];
3520 +    }
3521 +    else
3522 +    {
3523 +        char *current_dir;
3524  
3525 -#ifndef FEAT_GUI_GNOME
3526 -           /* Found match in table, so move it into gui_argv */
3527 -           gui_argv[gui_argc++] = argv[arg];
3528 -#endif
3529 -           if (--*argc > arg)
3530 -           {
3531 -               mch_memmove(&argv[arg], &argv[arg + 1],
3532 -                           (*argc - arg) * sizeof(char *));
3533 -               if (cmdline_options[i].has_value)
3534 -               {
3535 -#ifndef FEAT_GUI_GNOME
3536 -                   /* Move the option argument as well. */
3537 -                   gui_argv[gui_argc++] = argv[arg];
3538 -#endif
3539 -                   if (--*argc > arg)
3540 -                       mch_memmove(&argv[arg], &argv[arg + 1],
3541 -                                   (*argc - arg) * sizeof(char *));
3542 -               }
3543 -           }
3544 -       }
3545 -       else
3546 -           ++arg;
3547 +        current_dir = g_get_current_dir();
3548 +        restart_command = g_build_filename(current_dir, argv[0], NULL); /* tiny leak */
3549 +        g_free(current_dir);
3550      }
3551 +#endif
3552  
3553 -    /* extract the gtk internal options */
3554 -    gtk_option = gtk_cmdline_options;
3555 -    while (*gtk_option)
3556 -    {
3557 -       arg = 1;
3558 -       while (arg < *argc)
3559 -       {
3560 -           if (strncmp(argv[arg], *gtk_option, strlen(*gtk_option)) == 0)
3561 -           {
3562 -               /* Replace the standard X argument "-display" with the GTK
3563 -                * argument "--display". */
3564 -               if (strncmp(*gtk_option, "-display", 8) == 0)
3565 -                   gui_argv[gui_argc++] =
3566 -                                  (char *)vim_strsave((char_u *)"--display");
3567 -               else
3568 -                   gui_argv[gui_argc++] = argv[arg];
3569 +    /*
3570 +     * Move all the entries in argv which are relevant to GTK+ and GNOME
3571 +     * into gui_argv.
3572 +     */
3573 +    gui_argc = 0;
3574 +    gui_argv = (char **)alloc(*argc * sizeof(char *));
3575  
3576 -               /* These arguments make gnome_init() print a message and exit.
3577 -                * Must start the GUI for this, otherwise ":gui" will exit
3578 -                * later! */
3579 -               if (strcmp("-?", argv[arg]) == 0
3580 -                       || strcmp("--help", argv[arg]) == 0
3581 -                       || strcmp("--version", argv[arg]) == 0
3582 -                       || strcmp("--usage", argv[arg]) == 0)
3583 -                   gui.starting = TRUE;
3584 +    g_return_if_fail(gui_argv != NULL);
3585  
3586 -               if (--*argc > arg)
3587 -               {
3588 -                   mch_memmove(&argv[arg], &argv[arg + 1],
3589 -                                             (*argc - arg) * sizeof(char *));
3590 -                   /* Move the option argument as well, if there is one. */
3591 -                   if (strncmp(*gtk_option, "--xim", 5) == 0
3592 -                           || strncmp(*gtk_option, "-display", 8) == 0
3593 -                           || strncmp(*gtk_option, "--display", 9) == 0)
3594 -                   {
3595 -                       gui_argv[gui_argc++] = argv[arg];
3596 -                       if (--*argc > arg)
3597 -                           mch_memmove(&argv[arg], &argv[arg + 1],
3598 -                                   (*argc - arg) * sizeof(char *));
3599 -                   }
3600 -               }
3601 -               break;
3602 -           }
3603 -           else
3604 -               arg++;
3605 -       }
3606 -       gtk_option++;
3607 +    gui_argv[gui_argc++] = argv[i++];
3608 +
3609 +    while (i < *argc)
3610 +    {
3611 +        /* Don't waste CPU cycles on non-option arguments. */
3612 +        if (argv[i][0] != '-')
3613 +        {
3614 +            ++i;
3615 +            continue;
3616 +        }
3617 +
3618 +        /* Look for argv[i] in cmdline_options[] table. */
3619 +        for (option = &cmdline_options[0]; option->name != NULL; ++option)
3620 +        {
3621 +            len = strlen(option->name);
3622 +
3623 +            if (strncmp(argv[i], option->name, len) == 0)
3624 +            {
3625 +                if (argv[i][len] == '\0')
3626 +                    break;
3627 +
3628 +                /* allow --foo=bar style for GTK+ options */
3629 +                if (argv[i][len] == '=' && (option->flags & (HAS_VALUE | IS_GTK_ARG))
3630 +                                                         == (HAS_VALUE | IS_GTK_ARG))
3631 +                    break;
3632 +            }
3633 +            else if ((option->flags & COMPAT_LONGOPT)
3634 +                     && strcmp(argv[i], option->name + 1) == 0)
3635 +            {
3636 +                /* Replace the standard X arguments "-name" and "-display"
3637 +                 * with their GNU-style counterparts.
3638 +                 */
3639 +                argv[i] = (char *)option->name;
3640 +                break;
3641 +            }
3642 +        }
3643 +
3644 +        if (option->name == NULL)
3645 +        {
3646 +            ++i;
3647 +            continue;
3648 +        }
3649 +
3650 +        if (option->flags & IS_GTK_ARG)
3651 +        {
3652 +            /* Found match in table, so move it into gui_argv */
3653 +            gui_argv[gui_argc++] = argv[i];
3654 +        }
3655 +        else
3656 +        {
3657 +            /* Remember finding "-rv" or "-reverse" */
3658 +            if ((len == 3 && strcmp(argv[i], "-rv")      == 0) ||
3659 +                (len == 8 && strcmp(argv[i], "-reverse") == 0))
3660 +            {
3661 +                found_reverse_arg = TRUE;
3662 +            }
3663 +            else if ((len == 3 && strcmp(argv[i], "-fn")   == 0) ||
3664 +                     (len == 5 && strcmp(argv[i], "-font") == 0))
3665 +            {
3666 +                if (i + 1 < *argc)
3667 +                    font_argument = argv[i + 1];
3668 +            }
3669 +            else if ((len == 5 && strcmp(argv[i], "-geom")     == 0) ||
3670 +                     (len == 9 && strcmp(argv[i], "-geometry") == 0))
3671 +            {
3672 +                if (i + 1 < *argc)
3673 +                    gui.geom = vim_strsave((char_u *)argv[i + 1]);
3674 +            }
3675 +        }
3676 +
3677 +        /* These arguments make gnome_init() print a message and exit.
3678 +         * Must start the GUI for this, otherwise ":gui" will exit
3679 +         * later!
3680 +         */
3681 +        if (option->flags & NEEDS_GUI)
3682 +            gui.starting = TRUE;
3683 +
3684 +        if (--*argc > i)
3685 +        {
3686 +            int n_strip = 1;
3687 +
3688 +            /* Move the option argument as well, if there is one. */
3689 +            if ((option->flags & HAS_VALUE)
3690 +                && argv[i][len] != '='
3691 +                && strcmp(argv[i + 1], "--") != 0)
3692 +            {
3693 +                ++n_strip;
3694 +                --*argc;
3695 +                if (option->flags & IS_GTK_ARG)
3696 +                    gui_argv[gui_argc++] = argv[i + 1];
3697 +            }
3698 +
3699 +            if (*argc > i)
3700 +                mch_memmove(&argv[i], &argv[i + n_strip],
3701 +                            (*argc - i) * sizeof(char *));
3702 +        }
3703      }
3704  }
3705  
3706 @@ -491,7 +567,7 @@ property_event(GtkWidget * widget, GdkEv
3707  {
3708      if (e->type == GDK_PROPERTY_NOTIFY
3709             && GDK_WINDOW_XWINDOW(e->window) == commWindow
3710 -           && e->atom == commProperty
3711 +           && e->atom == GET_GDK_ATOM(commProperty)
3712             && e->state == (guint)GDK_PROPERTY_NEW_VALUE)
3713      {
3714         XEvent      xev;
3715 @@ -544,7 +620,7 @@ gui_mch_set_blinking(long waittime, long
3716   * Stop the cursor blinking.  Show the cursor if it wasn't shown.
3717   */
3718      void
3719 -gui_mch_stop_blink()
3720 +gui_mch_stop_blink(void)
3721  {
3722      if (blink_timer)
3723      {
3724 @@ -583,7 +659,7 @@ blink_cb(gpointer data)
3725   * waiting time and shows the cursor.
3726   */
3727      void
3728 -gui_mch_start_blink()
3729 +gui_mch_start_blink(void)
3730  {
3731      if (blink_timer)
3732         gtk_timeout_remove(blink_timer);
3733 @@ -754,7 +830,13 @@ key_press_event(GtkWidget * widget, GdkE
3734                 || (*p_wak == 'm'
3735                     && len == 1
3736                     && gui_is_menu_shortcut(string[0]))))
3737 -       return TRUE;
3738 +# ifdef HAVE_GTK2
3739 +        /* For GTK2 we return false to signify that we haven't handled the
3740 +         * keypress, so that gtk will handle the mnemonic or accelerator. */
3741 +       return FALSE;
3742 +# else
3743 +        return TRUE;
3744 +# endif
3745  #endif
3746  
3747      /* Check for Alt/Meta key (Mod1Mask), but not for a BS, DEL or character
3748 @@ -1049,7 +1131,6 @@ selection_get_event(GtkWidget *widget,
3749      vim_free(result);
3750  }
3751  
3752 -
3753  /*
3754   * Check if the GUI can be started.  Called before gvimrc is sourced.
3755   * Return OK or FAIL.
3756 @@ -1057,34 +1138,38 @@ selection_get_event(GtkWidget *widget,
3757      int
3758  gui_mch_init_check(void)
3759  {
3760 +    int init_failed;
3761 +
3762 +#ifndef HAVE_GTK2
3763      /* This is needed to make the locale handling consistant between the GUI
3764       * and the rest of VIM. */
3765      gtk_set_locale();
3766 +#endif
3767  
3768  #ifdef FEAT_GUI_GNOME
3769      if (gtk_socket_id == 0)
3770 -       using_gnome = 1;
3771 +        using_gnome = 1;
3772  #endif
3773  
3774 -    if ((
3775 -#ifdef FEAT_GUI_GNOME
3776 -           using_gnome
3777 -               && gnome_init("vim", VIM_VERSION_SHORT, gui_argc, gui_argv))
3778 -           || (!using_gnome &&
3779 +    /* For GNOME 2, always use gtk_init_check() since gnome_program_init()
3780 +     * exits on failure.  So let's call it later in gui_mch_init().
3781 +     */
3782 +#if defined(FEAT_GUI_GNOME) && !defined(HAVE_GTK2)
3783 +    if (using_gnome)
3784 +        init_failed = gnome_init("vim", VIM_VERSION_SHORT, gui_argc, gui_argv);
3785 +    else
3786 +#else
3787 +        /* Don't use gtk_init(), it exits on failure. */
3788 +        init_failed = !gtk_init_check(&gui_argc, &gui_argv);
3789  #endif
3790 -               !gtk_init_check(&gui_argc, &gui_argv)))
3791 -       /* Don't use gtk_init(), it exits on failure. */
3792 +
3793 +    if (init_failed)
3794      {
3795 -       gui.dying = TRUE;
3796 -       EMSG(_("E233: cannot open display"));
3797 -       return FAIL;
3798 +        gui.dying = TRUE;
3799 +        EMSG(_("E233: cannot open display"));
3800 +        return FAIL;
3801      }
3802 -    vim_free(gui_argv);
3803  
3804 -    /* This is needed for the X clipboard support.
3805 -     * Not very nice, but it works...
3806 -     */
3807 -    gui.dpy = GDK_DISPLAY();
3808      return OK;
3809  }
3810  
3811 @@ -1288,6 +1373,7 @@ button_press_event(GtkWidget * widget, G
3812       * Don't let additional events about multiple clicks send by GTK to us
3813       * after the initial button press event confuse us.
3814       */
3815 +    
3816      if (event->type != GDK_BUTTON_PRESS)
3817         return FALSE;
3818  
3819 @@ -1346,6 +1432,50 @@ button_press_event(GtkWidget * widget, G
3820      return TRUE;
3821  }
3822  
3823 +#ifdef HAVE_GTK2
3824 +
3825 +/* GTK2 doesn't handle mouse buttons 4, 5, 6 and 7 the same way as GTK1.
3826 +   It uses the new GdkEventScroll. */
3827 +    static gint
3828 +scroll_event(GtkWidget *widget, GdkEventScroll *event)
3829 +{
3830 +    int button;
3831 +    int_u vim_modifiers;
3832 +
3833 +    /* Copy this from previous function even if I don't know what it's use is. */
3834 +    if (gtk_socket_id != 0 && !GTK_WIDGET_HAS_FOCUS(gui.drawarea))
3835 +       gtk_widget_grab_focus(gui.drawarea);
3836 +
3837 +    switch(event->direction)
3838 +    {
3839 +       case GDK_SCROLL_UP:
3840 +           button = MOUSE_4;
3841 +           break;
3842 +       case GDK_SCROLL_DOWN:
3843 +           button = MOUSE_5;
3844 +           break;
3845 +       default: /* We don't care about left and right...  Yet. */
3846 +           return FALSE;
3847 +    }
3848 +    
3849 +    vim_modifiers = 0x0;
3850 +    if (event->state & GDK_SHIFT_MASK)
3851 +       vim_modifiers |= MOUSE_SHIFT;
3852 +    if (event->state & GDK_CONTROL_MASK)
3853 +       vim_modifiers |= MOUSE_CTRL;
3854 +    if (event->state & GDK_MOD1_MASK)
3855 +       vim_modifiers |= MOUSE_ALT;
3856 +
3857 +    gui_send_mouse_event(button, event->x, event->y, FALSE, vim_modifiers);
3858 +    if (gtk_main_level() > 0)
3859 +       gtk_main_quit();        /* make sure the above will be handled immediately */
3860 +
3861 +    return TRUE;
3862 +}
3863 +
3864 +#endif /* HAVE_GTK2 */
3865 +
3866 +
3867  /*ARGSUSED*/
3868      static gint
3869  button_release_event(GtkWidget * widget, GdkEventButton * event)
3870 @@ -1353,7 +1483,7 @@ button_release_event(GtkWidget * widget,
3871      int x, y;
3872      int_u vim_modifiers;
3873  
3874 -    /* Remove any motion "mashine gun" timers used for automatic further
3875 +    /* Remove any motion "machine gun" timers used for automatic further
3876         extension of allocation areas if outside of the applications window
3877         area .*/
3878      if (motion_repeat_timer)
3879 @@ -1553,6 +1683,161 @@ drag_data_received(GtkWidget *widget, Gd
3880  }
3881  #endif /* GTK_DND */
3882  
3883 +
3884 +#ifdef USE_GNOME_SESSION
3885 +
3886 +    static void
3887 +sm_client_check_changed_any(GnomeClient     *client,
3888 +                            gint            key,
3889 +                            GnomeDialogType type,
3890 +                            gpointer        data)
3891 +{
3892 +    cmdmod_T    save_cmdmod;
3893 +    gboolean    shutdown_cancelled;
3894 +
3895 +    save_cmdmod = cmdmod;
3896 +
3897 +# ifdef FEAT_BROWSE
3898 +    cmdmod.browse = TRUE;
3899 +# endif
3900 +# if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
3901 +    cmdmod.confirm = TRUE;
3902 +# endif
3903 +
3904 +    /* If there are changed buffers, present the user with
3905 +     * a dialog if possible, otherwise give an error message.
3906 +     */
3907 +    shutdown_cancelled = check_changed_any(FALSE);
3908 +
3909 +    exiting = FALSE;
3910 +    cmdmod = save_cmdmod;
3911 +    setcursor(); /* position the cursor */
3912 +    out_flush();
3913 +
3914 +    /* If the user hit the [Cancel] button the whole shutdown
3915 +     * will be cancelled.  Wow, quite powerful feature (:
3916 +     */
3917 +    gnome_interaction_key_return(key, shutdown_cancelled);
3918 +}
3919 +
3920 +    static gboolean
3921 +sm_client_save_yourself(GnomeClient        *client,
3922 +                        gint               phase,
3923 +                        GnomeSaveStyle     save_style,
3924 +                        gboolean           shutdown,
3925 +                        GnomeInteractStyle interact_style,
3926 +                        gboolean           fast)
3927 +{
3928 +    char        *session_path;
3929 +    char        *session_file;
3930 +    char_u      *escaped_filename;
3931 +    char        *mksession_cmdline;
3932 +    gboolean    success = FALSE;
3933 +
3934 +    /* Always request an interaction if possible.  check_changed_any()
3935 +     * won't actually show a dialog unless any buffers have been modified.
3936 +     * There doesn't seem to be an obvious way to check that without
3937 +     * automatically firing the dialog.  Anyway, it works just fine.
3938 +     */
3939 +    if (interact_style == GNOME_INTERACT_ANY)
3940 +    {
3941 +        gnome_client_request_interaction(client, GNOME_DIALOG_NORMAL,
3942 +                                         &sm_client_check_changed_any, NULL);
3943 +    }
3944 +
3945 +    out_flush();
3946 +    ml_sync_all(FALSE, FALSE); /* preserve all swap files */
3947 +
3948 +    /* The path is unique for each session save.  We do neither know nor care
3949 +     * which Session.vim will actually be used later.  This decision is in the
3950 +     * domain of the session manager.
3951 +     */
3952 +    session_path = gnome_config_get_real_path(gnome_client_get_config_prefix(client));
3953 +    session_file = g_build_filename(session_path, "Session.vim", NULL);
3954 +
3955 +    /* Build an ex command line to create a script that can be used to restore
3956 +     * the current session.  Escape the filename to avoid nasty surprises.
3957 +     */
3958 +    escaped_filename  = vim_strsave_escaped((char_u *)session_file, escape_chars);
3959 +    mksession_cmdline = g_strconcat("mksession ", (const char *)escaped_filename, NULL);
3960 +
3961 +    /* Ignore errors here and let :mksession report the failure. */
3962 +    vim_mkdir((char_u *)session_path, 0700);
3963 +
3964 +    if (do_cmdline_cmd((char_u *)mksession_cmdline) == FAIL)
3965 +    {
3966 +        mch_rmdir((char_u *)session_path);
3967 +    }
3968 +    else
3969 +    {
3970 +        const char  *argv[6];
3971 +        int         i;
3972 +
3973 +        /* Tell the session manager how to wipe out the stored session data.
3974 +         * This isn't as dangerous as it looks, don't worry :)  session_path
3975 +         * is unique (it'll be something like /home/user/.gnome2/vim-XXXXXX/)
3976 +         * and contains only a single file, Session.vim.
3977 +         */
3978 +        i = 0;
3979 +        argv[i++] = "rm";
3980 +        argv[i++] = "-r";
3981 +        argv[i++] = session_path;
3982 +        argv[i] = NULL;
3983 +
3984 +        gnome_client_set_discard_command(client, i, (char **)argv);
3985 +
3986 +        /* Tell the session manager how to restore the just saved session.
3987 +         * This is easily done thanks to Vim's -S option.  Pass the -f flag
3988 +         * since there's no need to fork -- it might even cause confusion.
3989 +         */
3990 +        i = 0;
3991 +        argv[i++] = restart_command;
3992 +        argv[i++] = "-f";
3993 +        argv[i++] = "-g";
3994 +        argv[i++] = "-S";
3995 +        argv[i++] = session_file;
3996 +        argv[i] = NULL;
3997 +
3998 +        gnome_client_set_clone_command  (client, i, (char **)argv);
3999 +        gnome_client_set_restart_command(client, i, (char **)argv);
4000 +
4001 +        success = TRUE;
4002 +    }
4003 +
4004 +    g_free(mksession_cmdline);
4005 +    vim_free(escaped_filename);
4006 +    g_free(session_file);
4007 +    g_free(session_path);
4008 +
4009 +    return success;
4010 +}
4011 +
4012 +    static void
4013 +sm_client_die(void)
4014 +{
4015 +    STRNCPY(IObuff, _("Vim: Received \"die\" request from session manager\n"), IOSIZE);
4016 +    IObuff[IOSIZE - 1] = NUL;
4017 +    preserve_exit();
4018 +}
4019 +
4020 +    static void
4021 +setup_save_yourself(void)
4022 +{
4023 +    GnomeClient *client;
4024 +
4025 +    client = gnome_master_client();
4026 +
4027 +    if (client != NULL)
4028 +    {
4029 +        g_signal_connect(G_OBJECT(client), "save_yourself",
4030 +                         G_CALLBACK(&sm_client_save_yourself), NULL);
4031 +        g_signal_connect(G_OBJECT(client), "die",
4032 +                         G_CALLBACK(&sm_client_die), NULL);
4033 +    }
4034 +}
4035 +
4036 +#else /* !USE_GNOME_SESSION */
4037 +
4038  /*
4039   * Setup the WM_PROTOCOLS to indicate we want the WM_SAVE_YOURSELF event.
4040   * This is an ugly use of X functions.  GTK doesn't offer an alternative.
4041 @@ -1562,17 +1847,22 @@ setup_save_yourself(void)
4042  {
4043      Atom       *existing;
4044      Atom       *new;
4045 +    Atom        save_yourself_xatom;
4046      int                count;
4047      int                i;
4048  
4049 +    save_yourself_xatom = GET_X_ATOM(save_yourself_atom);
4050 +
4051      /* first get the existing value */
4052 -    if (XGetWMProtocols(GDK_DISPLAY(),
4053 -                 GDK_WINDOW_XWINDOW(gui.mainwin->window), &existing, &count))
4054 +    if (XGetWMProtocols(GET_X_DISPLAY(), GDK_WINDOW_XWINDOW(gui.mainwin->window),
4055 +                        &existing, &count))
4056      {
4057         /* check if WM_SAVE_YOURSELF isn't there yet */
4058         for (i = 0; i < count; ++i)
4059 -           if (existing[i] == save_yourself_atom)
4060 +        {
4061 +           if (existing[i] == save_yourself_xatom)
4062                 break;
4063 +        }
4064         if (i == count)
4065         {
4066             /* allocate an Atoms array which is one item longer */
4067 @@ -1581,9 +1871,9 @@ setup_save_yourself(void)
4068             {
4069                 for (i = 0; i < count; ++i)
4070                     new[i] = existing[i];
4071 -               new[count] = save_yourself_atom;
4072 -               XSetWMProtocols(GDK_DISPLAY(),
4073 -                    GDK_WINDOW_XWINDOW(gui.mainwin->window), new, count + 1);
4074 +               new[count] = save_yourself_xatom;
4075 +               XSetWMProtocols(GET_X_DISPLAY(), GDK_WINDOW_XWINDOW(gui.mainwin->window),
4076 +                                new, count + 1);
4077                 vim_free(new);
4078             }
4079         }
4080 @@ -1591,6 +1881,49 @@ setup_save_yourself(void)
4081      }
4082  }
4083  
4084 +# ifdef HAVE_GTK2
4085 +/*
4086 + * Installing a global event filter seems to be the only way to catch
4087 + * client messages of type WM_PROTOCOLS without overriding GDK's own
4088 + * client message event filter.  Well, that's still better than trying
4089 + * to guess what the GDK filter had done if it had been invoked instead
4090 + * (This is what we did for GTK+ 1.2, see below).
4091 + *
4092 + * GTK2_FIXME:  This doesn't seem to work.  For some reason we never
4093 + * receive WM_SAVE_YOURSELF even though everything is set up correctly.
4094 + * I have the nasty feeling modern session managers just don't send this
4095 + * deprecated message anymore.
4096 + *
4097 + * The GNOME session support is much cooler anyway.  Unlike this ugly
4098 + * WM_SAVE_YOURSELF hack it actually stores the session...
4099 + */
4100 +    static GdkFilterReturn
4101 +global_event_filter(GdkXEvent *xev, GdkEvent *event, gpointer data)
4102 +{
4103 +    XEvent *xevent = (XEvent *)xev;
4104 +
4105 +    if (xevent != NULL &&
4106 +        xevent->type == ClientMessage &&
4107 +        xevent->xclient.message_type == GET_X_ATOM(wm_protocols_atom) &&
4108 +        xevent->xclient.data.l[0] == GET_X_ATOM(save_yourself_atom))
4109 +    {
4110 +        out_flush();
4111 +        ml_sync_all(FALSE, FALSE); /* preserve all swap files */
4112 +
4113 +        /* Set the window's WM_COMMAND property, to let the window manager
4114 +         * know we are done saving ourselves.  We don't want to be
4115 +         * restarted, thus set argv to NULL.
4116 +         */
4117 +        XSetCommand(GET_X_DISPLAY(), GDK_WINDOW_XWINDOW(gui.mainwin->window), NULL, 0);
4118 +
4119 +        return GDK_FILTER_REMOVE;
4120 +    }
4121 +
4122 +    return GDK_FILTER_CONTINUE;
4123 +}
4124 +
4125 +# else /* !HAVE_GTK2 */
4126 +
4127  /*
4128   * GDK handler for X ClientMessage events.
4129   */
4130 @@ -1603,7 +1936,7 @@ gdk_wm_protocols_filter(GdkXEvent *xev, 
4131  
4132      if (xevent != NULL)
4133      {
4134 -       if ((Atom)(xevent->xclient.data.l[0]) == save_yourself_atom)
4135 +       if (xevent->xclient.data.l[0] == GET_X_ATOM(save_yourself_atom))
4136         {
4137             out_flush();
4138             ml_sync_all(FALSE, FALSE);      /* preserve all swap files */
4139 @@ -1611,7 +1944,7 @@ gdk_wm_protocols_filter(GdkXEvent *xev, 
4140             /* Set the window's WM_COMMAND property, to let the window manager
4141              * know we are done saving ourselves.  We don't want to be
4142              * restarted, thus set argv to NULL. */
4143 -           XSetCommand(gui.dpy, GDK_WINDOW_XWINDOW(gui.mainwin->window),
4144 +           XSetCommand(GET_X_DISPLAY(), GDK_WINDOW_XWINDOW(gui.mainwin->window),
4145                                                                      NULL, 0);
4146         }
4147  
4148 @@ -1622,7 +1955,7 @@ gdk_wm_protocols_filter(GdkXEvent *xev, 
4149          * register for WM_PROTOCOLS, and only process the WM_SAVE_YOURSELF
4150          * bit;  it's all or nothing.
4151          */
4152 -       else if ((Atom)(xevent->xclient.data.l[0]) == gdk_wm_delete_window)
4153 +       else if (xevent->xclient.data.l[0] == GET_X_ATOM(gdk_wm_delete_window))
4154         {
4155             event->any.type = GDK_DELETE;
4156             return GDK_FILTER_TRANSLATE;
4157 @@ -1631,6 +1964,9 @@ gdk_wm_protocols_filter(GdkXEvent *xev, 
4158  
4159      return GDK_FILTER_REMOVE;
4160  }
4161 +# endif /* !HAVE_GTK2 */
4162 +
4163 +#endif /* !USE_GNOME_SESSION */
4164  
4165  
4166  /*
4167 @@ -1655,13 +1991,6 @@ mainwin_realize(GtkWidget *widget)
4168  #include "../runtime/vim48x48.xpm"
4169  #undef magick
4170  
4171 -    static GdkPixmap   *icon = NULL;
4172 -    static GdkBitmap   *icon_mask = NULL;
4173 -    static char                **magick = vim32x32;
4174 -    Window             root_window;
4175 -    XIconSize          *size;
4176 -    int                        number_sizes;
4177 -
4178      /* When started with "--echo-wid" argument, write window ID on stdout. */
4179      if (echo_wid_arg)
4180      {
4181 @@ -1671,11 +2000,30 @@ mainwin_realize(GtkWidget *widget)
4182  
4183      if (vim_strchr(p_go, GO_ICON) != NULL)
4184      {
4185 -       /*
4186 -        * Add an icon to the main window. For fun and convenience of the
4187 -        * user.
4188 -        * Adjust the icon to the preferences of the actual window manager.
4189 -        * This is once again a workaround for a defficiency in GTK+.
4190 +        /* Add an icon to the main window. For fun and convenience of the user.
4191 +         */
4192 +#ifdef HAVE_GTK2
4193 +        GList *icons = NULL;
4194 +
4195 +        icons = g_list_prepend(icons, gdk_pixbuf_new_from_xpm_data((const char **)vim16x16));
4196 +        icons = g_list_prepend(icons, gdk_pixbuf_new_from_xpm_data((const char **)vim32x32));
4197 +        icons = g_list_prepend(icons, gdk_pixbuf_new_from_xpm_data((const char **)vim48x48));
4198 +
4199 +        gtk_window_set_icon_list(GTK_WINDOW(gui.mainwin), icons);
4200 +
4201 +        g_list_foreach(icons, (GFunc)&g_object_unref, NULL);
4202 +        g_list_free(icons);
4203 +
4204 +#else /* !HAVE_GTK2 */
4205 +        static GdkPixmap       *icon = NULL;
4206 +        static GdkBitmap       *icon_mask = NULL;
4207 +        static char            **magick = vim32x32;
4208 +        Window                  root_window;
4209 +        XIconSize              *size;
4210 +        int                    number_sizes;
4211 +
4212 +        /* Adjust the icon to the preferences of the actual window manager.
4213 +        * This is once again a workaround for a defficiency in GTK+ 1.2.
4214          */
4215         root_window = XRootWindow(GDK_DISPLAY(), DefaultScreen(GDK_DISPLAY()));
4216         if (XGetIconSizes(GDK_DISPLAY(), root_window,
4217 @@ -1696,14 +2044,21 @@ mainwin_realize(GtkWidget *widget)
4218             icon = gdk_pixmap_create_from_xpm_d(gui.mainwin->window,
4219                     &icon_mask, NULL, magick);
4220         gdk_window_set_icon(gui.mainwin->window, NULL, icon, icon_mask);
4221 +#endif /* !HAVE_GTK2 */
4222      }
4223  
4224 +#ifndef USE_GNOME_SESSION
4225      /* Register a handler for WM_SAVE_YOURSELF with GDK's low-level X I/F */
4226 -    gdk_add_client_message_filter(wm_protocols_atom,
4227 -                                              gdk_wm_protocols_filter, NULL);
4228 -
4229 +# ifdef HAVE_GTK2
4230 +    gdk_window_add_filter(NULL, &global_event_filter, NULL);
4231 +# else
4232 +    gdk_add_client_message_filter(wm_protocols_atom, &gdk_wm_protocols_filter, NULL);
4233 +# endif
4234 +#endif
4235      /* Setup to indicate to the window manager that we want to catch the
4236 -     * WM_SAVE_YOURSELF event. */
4237 +     * WM_SAVE_YOURSELF event.  For GNOME2, this connects to the session
4238 +     * manager instead.
4239 +     */
4240      setup_save_yourself();
4241  
4242  #ifdef FEAT_CLIENTSERVER
4243 @@ -1711,7 +2066,8 @@ mainwin_realize(GtkWidget *widget)
4244      {
4245         /* This is a :gui command in a plain vim with no previous server */
4246         commWindow = GDK_WINDOW_XWINDOW(gui.mainwin->window);
4247 -       (void)serverRegisterName(gui.dpy, serverDelayedStartName);
4248 +
4249 +       (void)serverRegisterName(GET_X_DISPLAY(), serverDelayedStartName);
4250      }
4251      else
4252      {
4253 @@ -1720,8 +2076,8 @@ mainwin_realize(GtkWidget *widget)
4254          * have to change the "server" registration to that of the main window
4255          * If we have not registered a name yet, remember the window
4256          */
4257 -       serverChangeRegisteredWindow(GDK_DISPLAY(),
4258 -                              GDK_WINDOW_XWINDOW(gui.mainwin->window));
4259 +        serverChangeRegisteredWindow(GET_X_DISPLAY(),
4260 +                                     GDK_WINDOW_XWINDOW(gui.mainwin->window));
4261      }
4262      gtk_widget_add_events (gui.mainwin, GDK_PROPERTY_CHANGE_MASK);
4263      gtk_signal_connect(GTK_OBJECT(gui.mainwin), "property_notify_event",
4264 @@ -1729,6 +2085,36 @@ mainwin_realize(GtkWidget *widget)
4265  #endif
4266  }
4267  
4268 +#ifdef GTK2_MULTIHEAD
4269 +    static void
4270 +drawarea_screen_changed(GtkWidget *widget, GdkScreen *previous_screen)
4271 +{
4272 +    GdkDisplay *display;
4273 +
4274 +    if (!gtk_widget_has_screen(widget))
4275 +        return;
4276 +
4277 +    /* Update the global pointer to the X display to support multihead.
4278 +     * This is needed for the X clipboard support.
4279 +     * Not very nice, but it works...
4280 +     */
4281 +    display = gtk_widget_get_display(widget);
4282 +    gui.dpy = (display != NULL) ? GDK_DISPLAY_XDISPLAY(display) : NULL;
4283 +
4284 +    if (gui.text_context != NULL)
4285 +        g_object_unref(gui.text_context);
4286 +
4287 +    /* Create a new PangoContext for this screen,
4288 +     * and initialize it with the current font if necessary.
4289 +     */
4290 +    gui.text_context = gtk_widget_create_pango_context(widget);
4291 +    pango_context_set_base_dir(gui.text_context, PANGO_DIRECTION_LTR);
4292 +
4293 +    if (gui.norm_font != NULL)
4294 +        gui_mch_init_font(p_guifont, 0);
4295 +}
4296 +#endif /* GTK2_MULTIHEAD */
4297 +
4298  /*
4299   * After the drawing area comes up, we calculate all colors and create the
4300   * dummy blank cursor.
4301 @@ -1744,6 +2130,11 @@ drawarea_realize_cb(GtkWidget *widget)
4302      GdkColor color;
4303      GtkWidget *sbar;
4304  
4305 +#ifndef GTK2_MULTIHEAD
4306 +    /* for multihead the "screen_changed" signal is used instead */
4307 +    gui.dpy = GET_X_DISPLAY();
4308 +#endif
4309 +
4310  #ifdef FEAT_XIM
4311      xim_init();
4312  #endif
4313 @@ -1774,6 +2165,43 @@ drawarea_realize_cb(GtkWidget *widget)
4314  }
4315  
4316  /*
4317 + * Properly clean up on shutdown.
4318 + */
4319 +    static void
4320 +drawarea_unrealize_cb(GtkWidget *widget)
4321 +{
4322 +#ifdef HAVE_GTK2
4323 +    if (gui.ascii_glyphs != NULL)
4324 +    {
4325 +        pango_glyph_string_free(gui.ascii_glyphs);
4326 +        gui.ascii_glyphs = NULL;
4327 +    }
4328 +    if (gui.ascii_font != NULL)
4329 +    {
4330 +        g_object_unref(gui.ascii_font);
4331 +        gui.ascii_font = NULL;
4332 +    }
4333 +
4334 +    g_object_unref(gui.text_context);
4335 +    gui.text_context = NULL;
4336 +
4337 +    g_object_unref(gui.text_gc);
4338 +    gui.text_gc = NULL;
4339 +#else
4340 +    gdk_gc_unref(gui.text_gc);
4341 +    gui.text_gc = NULL;
4342 +#endif
4343 +}
4344 +
4345 +#ifdef HAVE_GTK2
4346 +    static void
4347 +drawarea_style_set_cb(GtkWidget *widget, GtkStyle *previous_style)
4348 +{
4349 +    gui_mch_new_colors();
4350 +}
4351 +#endif /* HAVE_GTK2 */
4352 +
4353 +/*
4354   * Callback routine for the "delete_event" signal on the toplevel window.
4355   * Tries to vim gracefully, or refuses to exit with changed buffers.
4356   */
4357 @@ -1785,6 +2213,9 @@ delete_event_cb(GtkWidget *wgt, gpointer
4358      return TRUE;
4359  }
4360  
4361 +/* GTK2_FIXME: Handle target "UTF8_STRING"?
4362 + * (Actually this could be done for the old GTK+ too, I think.)
4363 + */
4364  static const GtkTargetEntry primary_targets[] = {
4365      {VIM_ATOM_NAME,   0, SELECTION_VIM},
4366      {"COMPOUND_TEXT", 0, SELECTION_COMPOUND_TEXT},
4367 @@ -1792,39 +2223,153 @@ static const GtkTargetEntry primary_targ
4368      {"STRING",       0, SELECTION_STRING}
4369  };
4370  
4371 +#ifdef FEAT_TOOLBAR
4372 +
4373 +# ifdef HAVE_GTK2
4374  /*
4375 - * Initialize the X GUI.  Create all the windows, set up all the call-backs
4376 - * etc.
4377 - * Returns OK for success, FAIL when the GUI can't be started.
4378 + * This hack wouldn't be necessary if we only used stock icons in the
4379 + * toolbar, which is the default.  It's implemented anyway just to be
4380 + * complete.
4381   */
4382 -    int
4383 -gui_mch_init()
4384 +    static void
4385 +icon_size_changed_foreach(GtkWidget *widget, gpointer user_data)
4386  {
4387 -    GtkWidget *vbox;
4388 -
4389 -    /* Initialize values */
4390 -    gui.border_width = 2;
4391 -    gui.scrollbar_width = SB_DEFAULT_WIDTH;
4392 -    gui.scrollbar_height = SB_DEFAULT_WIDTH;
4393 -    gui.fgcolor = g_new0(GdkColor, 1);
4394 -    gui.bgcolor = g_new0(GdkColor, 1);
4395 +    if (GTK_IS_IMAGE(widget))
4396 +    {
4397 +        if (gtk_image_get_storage_type(GTK_IMAGE(widget)) == GTK_IMAGE_ICON_SET)
4398 +        {
4399 +            GtkIconSet  *icon_set;
4400 +            GtkIconSize icon_size;
4401  
4402 -    /* Initialise atoms */
4403 -    compound_text_atom = gdk_atom_intern("COMPOUND_TEXT", FALSE);
4404 -    text_atom = gdk_atom_intern("TEXT", FALSE);
4405 +            gtk_image_get_icon_set(GTK_IMAGE(widget), &icon_set, &icon_size);
4406  
4407 -    /* Set default foreground and background colors. */
4408 -    gui.norm_pixel = gui.def_norm_pixel;
4409 -    gui.back_pixel = gui.def_back_pixel;
4410 +            gtk_icon_set_ref(icon_set);
4411 +            icon_size = GPOINTER_TO_INT(user_data);
4412  
4413 -    if (gtk_socket_id != 0)
4414 +            gtk_image_set_from_icon_set(GTK_IMAGE(widget), icon_set, icon_size);
4415 +            gtk_icon_set_unref(icon_set);
4416 +        }
4417 +    }
4418 +    else if (GTK_IS_CONTAINER(widget))
4419      {
4420 -       GtkPlug *plug;
4421 +        gtk_container_foreach(GTK_CONTAINER(widget),
4422 +                              &icon_size_changed_foreach,
4423 +                              user_data);
4424 +    }
4425 +}
4426 +# endif /* HAVE_GTK2 */
4427  
4428 -       /* Use GtkSocket from another app. */
4429 -       plug = GTK_PLUG(gui.mainwin = gtk_plug_new(gtk_socket_id));
4430 +    static void
4431 +set_toolbar_style(GtkToolbar *toolbar, const char *style_string)
4432 +{
4433 +    char            **style_values;
4434 +    char            **value;
4435 +    gboolean        text  = FALSE;
4436 +    gboolean        icons = FALSE;
4437 +    gboolean        tooltips = FALSE;
4438 +    GtkToolbarStyle style = GTK_TOOLBAR_ICONS;
4439 +# ifdef HAVE_GTK2
4440 +    gboolean        horiz = FALSE;
4441 +    GtkIconSize     size  = GTK_ICON_SIZE_SMALL_TOOLBAR;
4442 +# endif
4443  
4444 -       /* Pretend we never wanted it if it failed (get own window) */
4445 +    style_values = g_strsplit(style_string, ",", -1);
4446 +
4447 +    for (value = &style_values[0]; *value != NULL; ++value)
4448 +    {
4449 +        if      (strcmp(*value, "text")     == 0) text  = TRUE;
4450 +        else if (strcmp(*value, "icons")    == 0) icons = TRUE;
4451 +        else if (strcmp(*value, "tooltips") == 0) tooltips = TRUE;
4452 +# ifdef HAVE_GTK2
4453 +        else if (strcmp(*value, "horiz")    == 0) horiz = TRUE;
4454 +        else if (strcmp(*value, "large")    == 0) size  = GTK_ICON_SIZE_LARGE_TOOLBAR;
4455 +        else if (strcmp(*value, "medium")   == 0) size  = GTK_ICON_SIZE_BUTTON;
4456 +        else if (strcmp(*value, "small")    == 0) size  = GTK_ICON_SIZE_SMALL_TOOLBAR;
4457 +        else if (strcmp(*value, "tiny")     == 0) size  = GTK_ICON_SIZE_MENU;
4458 +# endif
4459 +    }
4460 +
4461 +    g_strfreev(style_values);
4462 +
4463 +    if (text)                   style = GTK_TOOLBAR_TEXT;
4464 +    if (text && icons)          style = GTK_TOOLBAR_BOTH;
4465 +# ifdef HAVE_GTK2
4466 +    if (text && icons && horiz) style = GTK_TOOLBAR_BOTH_HORIZ;
4467 +# endif
4468 +    gtk_toolbar_set_style(toolbar, style);
4469 +
4470 +    gtk_toolbar_set_tooltips(toolbar, tooltips);
4471 +
4472 +# ifdef HAVE_GTK2
4473 +    if (size != gtk_toolbar_get_icon_size(toolbar))
4474 +        gtk_container_foreach(GTK_CONTAINER(toolbar),
4475 +                              &icon_size_changed_foreach,
4476 +                              GINT_TO_POINTER(size));
4477 +    gtk_toolbar_set_icon_size(toolbar, size);
4478 +# endif
4479 +}
4480 +
4481 +#endif /* FEAT_TOOLBAR */
4482 +
4483 +/*
4484 + * Initialize the X GUI.  Create all the windows, set up all the call-backs
4485 + * etc.
4486 + * Returns OK for success, FAIL when the GUI can't be started.
4487 + */
4488 +    int
4489 +gui_mch_init(void)
4490 +{
4491 +    GtkWidget *vbox;
4492 +
4493 +#if defined(FEAT_GUI_GNOME) && defined(HAVE_GTK2)
4494 +    if (using_gnome)
4495 +        gnome_program_init("vim", VIM_VERSION_SHORT,
4496 +                           LIBGNOMEUI_MODULE, gui_argc, gui_argv,
4497 +                           NULL);
4498 +#endif
4499 +    vim_free(gui_argv);
4500 +    gui_argv = NULL;
4501 +
4502 +#ifdef HAVE_GTK2
4503 +    /*
4504 +     * Force UTF-8 output no matter what the value of 'encoding' is.
4505 +     * did_set_string_option() in option.c prohibits changing 'termencoding'
4506 +     * to something else than UTF-8 if the GUI is in use.
4507 +     */
4508 +    set_option_value((char_u *)"termencoding", 0L, (char_u *)"utf-8", 0);
4509 +
4510 +# ifdef FEAT_TOOLBAR
4511 +    gui_gtk_register_stock_icons();
4512 +# endif
4513 +# if 0
4514 +    /* FIXME: Need to install the classic icons and a gtkrc.classic file. */
4515 +    gtk_rc_parse("gtkrc");
4516 +# endif
4517 +#endif
4518 +
4519 +    /* Initialize values */
4520 +    gui.border_width = 2;
4521 +    gui.scrollbar_width = SB_DEFAULT_WIDTH;
4522 +    gui.scrollbar_height = SB_DEFAULT_WIDTH;
4523 +    gui.fgcolor = g_new0(GdkColor, 1);
4524 +    gui.bgcolor = g_new0(GdkColor, 1);
4525 +
4526 +    /* Initialise atoms */
4527 +    compound_text_atom = gdk_atom_intern("COMPOUND_TEXT", FALSE);
4528 +    text_atom = gdk_atom_intern("TEXT", FALSE);
4529 +
4530 +    /* Set default foreground and background colors. */
4531 +    gui.norm_pixel = gui.def_norm_pixel;
4532 +    gui.back_pixel = gui.def_back_pixel;
4533 +
4534 +    if (gtk_socket_id != 0)
4535 +    {
4536 +       GtkPlug *plug;
4537 +
4538 +       /* Use GtkSocket from another app. */
4539 +       plug = GTK_PLUG(gui.mainwin = gtk_plug_new(gtk_socket_id));
4540 +
4541 +       /* Pretend we never wanted it if it failed (get own window) */
4542         if (!plug->socket_window)
4543         {
4544             /* Failed - using straightforward window */
4545 @@ -1840,22 +2385,45 @@ gui_mch_init()
4546  #endif
4547             gui.mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
4548      }
4549 +
4550 +    gtk_widget_set_name(gui.mainwin, "vim-main-window");
4551 +
4552 +#ifdef HAVE_GTK2
4553 +    /* the PangoContext used for drawing all text */
4554 +    gui.text_context = gtk_widget_create_pango_context(gui.mainwin);
4555 +    pango_context_set_base_dir(gui.text_context, PANGO_DIRECTION_LTR);
4556 +#endif
4557 +
4558 +#ifndef HAVE_GTK2
4559      gtk_window_set_policy(GTK_WINDOW(gui.mainwin), TRUE, TRUE, TRUE);
4560 +#endif
4561      gtk_container_border_width(GTK_CONTAINER(gui.mainwin), 0);
4562      gtk_widget_set_events(gui.mainwin, GDK_VISIBILITY_NOTIFY_MASK);
4563 -    (void)gtk_signal_connect(GTK_OBJECT(gui.mainwin), "delete_event",
4564 -                            GTK_SIGNAL_FUNC(delete_event_cb), NULL);
4565 +
4566 +    gtk_signal_connect(GTK_OBJECT(gui.mainwin), "delete_event",
4567 +                       GTK_SIGNAL_FUNC(&delete_event_cb), NULL);
4568  
4569      gtk_signal_connect(GTK_OBJECT(gui.mainwin), "realize",
4570 -                                     GTK_SIGNAL_FUNC(mainwin_realize), NULL);
4571 +                       GTK_SIGNAL_FUNC(&mainwin_realize), NULL);
4572  
4573 -    /* FIXME: this should eventually get the accelgroup of the gui.mainwin */
4574 +#ifdef HAVE_GTK2
4575 +    gui.accel_group = gtk_accel_group_new();
4576 +    gtk_window_add_accel_group(GTK_WINDOW(gui.mainwin), gui.accel_group);
4577 +#else
4578      gui.accel_group = gtk_accel_group_get_default();
4579 +#endif
4580  
4581      vbox = gtk_vbox_new(FALSE, 0);
4582 +
4583  #ifdef FEAT_GUI_GNOME
4584      if (using_gnome)
4585 -       gnome_app_set_contents(GNOME_APP(gui.mainwin), vbox);
4586 +    {
4587 +# if defined(HAVE_GTK2) && defined(FEAT_MENU)
4588 +        /* automagically restore menubar/toolbar placement */
4589 +        gnome_app_enable_layout_config(GNOME_APP(gui.mainwin), TRUE);
4590 +# endif
4591 +        gnome_app_set_contents(GNOME_APP(gui.mainwin), vbox);
4592 +    }
4593      else
4594  #endif
4595      {
4596 @@ -1866,15 +2434,23 @@ gui_mch_init()
4597  #ifdef FEAT_MENU
4598      /* create the menubar and handle */
4599      gui.menubar = gtk_menu_bar_new();
4600 -    gtk_widget_show(gui.menubar);
4601 +
4602  # ifdef FEAT_GUI_GNOME
4603      if (using_gnome)
4604      {
4605 +#  ifdef HAVE_GTK2
4606 +        BonoboDockItem *dockitem;
4607 +
4608 +        gnome_app_set_menus(GNOME_APP(gui.mainwin), GTK_MENU_BAR(gui.menubar));
4609 +        dockitem = gnome_app_get_dock_item_by_name(GNOME_APP(gui.mainwin),
4610 +                                                   GNOME_APP_MENUBAR_NAME);
4611 +        gui.menubar_h = GTK_WIDGET(dockitem);
4612 +#  else
4613         gui.menubar_h = gnome_dock_item_new("VimMainMenu",
4614                                             GNOME_DOCK_ITEM_BEH_EXCLUSIVE |
4615                                             GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL);
4616 -       gtk_widget_show(gui.menubar_h);
4617         gtk_container_add(GTK_CONTAINER(gui.menubar_h), gui.menubar);
4618 +
4619         gnome_dock_add_item(GNOME_DOCK(GNOME_APP(gui.mainwin)->dock),
4620                             GNOME_DOCK_ITEM(gui.menubar_h),
4621                             GNOME_DOCK_TOP, /* placement */
4622 @@ -1882,38 +2458,55 @@ gui_mch_init()
4623                             0,  /* band_position */
4624                             0,  /* offset */
4625                             TRUE);
4626 +        gtk_widget_show(gui.menubar);
4627 +#  endif
4628      }
4629      else
4630  # endif        /* FEAT_GUI_GNOME */
4631 -       gtk_box_pack_start(GTK_BOX(vbox), gui.menubar, FALSE, TRUE, 0);
4632 +    {
4633 +        if (vim_strchr(p_go, GO_MENUS) != NULL)
4634 +            gtk_widget_show(gui.menubar);
4635 +        gtk_box_pack_start(GTK_BOX(vbox), gui.menubar, FALSE, FALSE, 0);
4636 +    }
4637  #endif /* FEAT_MENU */
4638  
4639  #ifdef FEAT_TOOLBAR
4640 -    /* create the toolbar */
4641 -    if (strstr((const char *)p_toolbar, "text")
4642 -           && strstr((const char *)p_toolbar, "icons"))
4643 -       gui.toolbar =
4644 -           gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
4645 -    else if (strstr((const char *)p_toolbar, "text"))
4646 -       gui.toolbar =
4647 -           gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_TEXT);
4648 -    else
4649 -       gui.toolbar =
4650 -           gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS);
4651  
4652 -    gtk_widget_show(gui.toolbar);
4653 +    /* create the toolbar */
4654 +# ifdef HAVE_GTK2
4655      /* some aesthetics on the toolbar */
4656 +    gtk_rc_parse_string("style \"vim-toolbar-style\" {"
4657 +                        "  GtkToolbar::button_relief = GTK_RELIEF_NONE\n"
4658 +                        "}\n"
4659 +                        "widget \"*.vim-toolbar\" style \"vim-toolbar-style\"\n");
4660 +    gui.toolbar = gtk_toolbar_new();
4661 +    gtk_widget_set_name(gui.toolbar, "vim-toolbar");
4662 +# else
4663 +    gui.toolbar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS);
4664      gtk_toolbar_set_button_relief(GTK_TOOLBAR(gui.toolbar), GTK_RELIEF_NONE);
4665 +# endif
4666 +
4667 +    set_toolbar_style(GTK_TOOLBAR(gui.toolbar), (const char *)p_toolbar);
4668  
4669  # ifdef FEAT_GUI_GNOME
4670 -    if (using_gnome && gui.toolbar)
4671 +    if (using_gnome)
4672      {
4673 +#  ifdef HAVE_GTK2
4674 +        BonoboDockItem *dockitem;
4675 +
4676 +        gnome_app_set_toolbar(GNOME_APP(gui.mainwin), GTK_TOOLBAR(gui.toolbar));
4677 +        dockitem = gnome_app_get_dock_item_by_name(GNOME_APP(gui.mainwin),
4678 +                                                   GNOME_APP_TOOLBAR_NAME);
4679 +        gui.toolbar_h = GTK_WIDGET(dockitem);
4680 +        gtk_container_set_border_width(GTK_CONTAINER(gui.toolbar), 0);
4681 +#  else
4682         GtkWidget *dockitem;
4683 +
4684         dockitem = gnome_dock_item_new("VimToolBar",
4685                                        GNOME_DOCK_ITEM_BEH_EXCLUSIVE);
4686         gtk_container_add(GTK_CONTAINER(dockitem), GTK_WIDGET(gui.toolbar));
4687         gui.toolbar_h = dockitem;
4688 -       gtk_widget_show(gui.toolbar_h);
4689 +
4690         gnome_dock_add_item(GNOME_DOCK(GNOME_APP(gui.mainwin)->dock),
4691                             GNOME_DOCK_ITEM(dockitem),
4692                             GNOME_DOCK_TOP,     /* placement */
4693 @@ -1922,12 +2515,18 @@ gui_mch_init()
4694                             0,  /* offset */
4695                             TRUE);
4696         gtk_container_border_width(GTK_CONTAINER(gui.toolbar), 2);
4697 +        gtk_widget_show(gui.toolbar);
4698 +#  endif
4699      }
4700 -    else if (!using_gnome)
4701 +    else
4702  # endif        /* FEAT_GUI_GNOME */
4703      {
4704 +# ifndef HAVE_GTK2
4705         gtk_container_border_width(GTK_CONTAINER(gui.toolbar), 1);
4706 -       gtk_box_pack_start(GTK_BOX(vbox), gui.toolbar, FALSE, TRUE, 0);
4707 +# endif
4708 +        if (vim_strchr(p_go, GO_TOOLBAR) != NULL)
4709 +            gtk_widget_show(gui.toolbar);
4710 +        gtk_box_pack_start(GTK_BOX(vbox), gui.toolbar, FALSE, FALSE, 0);
4711      }
4712  #endif /* USE_TOOLBARS */
4713  
4714 @@ -1937,6 +2536,11 @@ gui_mch_init()
4715  
4716      gui.drawarea = gtk_drawing_area_new();
4717  
4718 +#ifdef GTK2_MULTIHEAD
4719 +    g_signal_connect(G_OBJECT(gui.drawarea), "screen_changed",
4720 +                     G_CALLBACK(&drawarea_screen_changed), NULL);
4721 +#endif
4722 +
4723      /* Determine which events we will filter. */
4724      gtk_widget_set_events(gui.drawarea,
4725                           GDK_EXPOSURE_MASK |
4726 @@ -1952,22 +2556,32 @@ gui_mch_init()
4727      gtk_widget_show(gui.formwin);
4728      gtk_box_pack_start(GTK_BOX(vbox), gui.formwin, TRUE, TRUE, 0);
4729  
4730 -    if (gtk_socket_id != 0)
4731 -       /* For GtkSockets, key-presses must go to the focus widget (drawarea)
4732 -        * and not the window. */
4733 -       gtk_signal_connect(GTK_OBJECT(gui.drawarea), "key_press_event",
4734 -                          (GtkSignalFunc)key_press_event, NULL);
4735 -    else
4736 -       gtk_signal_connect(GTK_OBJECT(gui.mainwin), "key_press_event",
4737 -                          (GtkSignalFunc)key_press_event, NULL);
4738 +    /* For GtkSockets, key-presses must go to the focus widget (drawarea)
4739 +     * and not the window.
4740 +     */
4741 +    gtk_signal_connect((gtk_socket_id == 0) ? GTK_OBJECT(gui.mainwin)
4742 +                                            : GTK_OBJECT(gui.drawarea),
4743 +                       "key_press_event",
4744 +                       GTK_SIGNAL_FUNC(key_press_event), NULL);
4745  
4746      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "realize",
4747 -                      GTK_SIGNAL_FUNC(drawarea_realize_cb), NULL);
4748 +                       GTK_SIGNAL_FUNC(drawarea_realize_cb), NULL);
4749 +    gtk_signal_connect(GTK_OBJECT(gui.drawarea), "unrealize",
4750 +                       GTK_SIGNAL_FUNC(drawarea_unrealize_cb), NULL);
4751  
4752      gui.visibility = GDK_VISIBILITY_UNOBSCURED;
4753 +
4754 +#ifndef USE_GNOME_SESSION
4755      wm_protocols_atom = gdk_atom_intern("WM_PROTOCOLS", FALSE);
4756      save_yourself_atom = gdk_atom_intern("WM_SAVE_YOURSELF", FALSE);
4757 +#endif
4758 +
4759 +#ifdef HAVE_GTK2
4760 +    g_signal_connect_after(G_OBJECT(gui.drawarea), "style_set",
4761 +                           G_CALLBACK(&drawarea_style_set_cb), NULL);
4762 +#else
4763      reread_rcfiles_atom = gdk_atom_intern("_GTK_READ_RCFILES", FALSE);
4764 +#endif
4765  
4766      if (gtk_socket_id != 0)
4767         /* make sure keybord input can go to the drawarea */
4768 @@ -2011,6 +2625,10 @@ gui_mch_init()
4769                        GTK_SIGNAL_FUNC(motion_notify_event), NULL);
4770      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "button_press_event",
4771                        GTK_SIGNAL_FUNC(button_press_event), NULL);
4772 +#ifdef HAVE_GTK2
4773 +    g_signal_connect(G_OBJECT(gui.drawarea), "scroll_event",
4774 +                     G_CALLBACK(scroll_event), NULL);
4775 +#endif
4776      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "button_release_event",
4777                        GTK_SIGNAL_FUNC(button_release_event), NULL);
4778  
4779 @@ -2025,10 +2643,10 @@ gui_mch_init()
4780      /*
4781       * Add selection targets for PRIMARY and CLIPBOARD selections.
4782       */
4783 -    gtk_selection_add_targets(gui.drawarea, (long)GDK_SELECTION_PRIMARY,
4784 +    gtk_selection_add_targets(gui.drawarea, (GdkAtom)GDK_SELECTION_PRIMARY,
4785             primary_targets,
4786             sizeof(primary_targets)/sizeof(primary_targets[0]));
4787 -    gtk_selection_add_targets(gui.drawarea, (long)clip_plus.gtk_sel_atom,
4788 +    gtk_selection_add_targets(gui.drawarea, (GdkAtom)clip_plus.gtk_sel_atom,
4789             primary_targets,
4790             sizeof(primary_targets)/sizeof(primary_targets[0]));
4791      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_get",
4792 @@ -2040,24 +2658,117 @@ gui_mch_init()
4793      return OK;
4794  }
4795  
4796 +#if (defined(UNIX) && defined(USE_GNOME_SESSION)) || defined(PROTO)
4797 +/*
4798 + * This is called from gui_start() after a fork() has been done.
4799 + * We have to tell the session manager our new PID.
4800 + */
4801 +    void
4802 +gui_mch_forked(void)
4803 +{
4804 +    GnomeClient *client;
4805 +
4806 +    client = gnome_master_client();
4807 +
4808 +    if (client != NULL)
4809 +        gnome_client_set_process_id(client, getpid());
4810 +}
4811 +#endif
4812  
4813  /*
4814   * Called when the foreground or background color has been changed.
4815   */
4816      void
4817 -gui_mch_new_colors()
4818 +gui_mch_new_colors(void)
4819  {
4820      /* This used to change the graphics contexts directly but we are currently
4821       * manipulating them where desired.
4822       */
4823      if (gui.drawarea && gui.drawarea->window)
4824      {
4825 -       GdkColor color;
4826 +       GdkColor color = { 0, };
4827 +
4828         color.pixel = gui.back_pixel;
4829         gdk_window_set_background(gui.drawarea->window, &color);
4830      }
4831  }
4832  
4833 +
4834 +#ifdef HAVE_GTK2
4835 +
4836 +    static int
4837 +get_menu_tool_width(void)
4838 +{
4839 +    int width = 0;
4840 +
4841 +# if defined(FEAT_GUI_GNOME) && defined(FEAT_TOOLBAR)
4842 +    if (using_gnome && gui.toolbar_h
4843 +        && GTK_WIDGET_REALIZED(gui.toolbar_h)
4844 +        && GTK_WIDGET_VISIBLE(gui.toolbar_h)
4845 +        && !BONOBO_DOCK_ITEM(gui.toolbar_h)->is_floating
4846 +        && bonobo_dock_item_get_orientation(BONOBO_DOCK_ITEM(gui.toolbar_h))
4847 +               == GTK_ORIENTATION_VERTICAL)
4848 +    {
4849 +        width += gui.toolbar_h->allocation.width;
4850 +    }
4851 +# endif
4852 +
4853 +    return width;
4854 +}
4855 +
4856 +    static int
4857 +get_menu_tool_height(void)
4858 +{
4859 +    int height = 0;
4860 +
4861 +# ifdef FEAT_MENU
4862 +#  ifdef FEAT_GUI_GNOME
4863 +    if (using_gnome && gui.menubar_h
4864 +        && GTK_WIDGET_REALIZED(gui.menubar_h)
4865 +        && GTK_WIDGET_VISIBLE(gui.menubar_h)
4866 +        && !BONOBO_DOCK_ITEM(gui.menubar_h)->is_floating)
4867 +    {
4868 +        height += gui.menubar_h->allocation.height;
4869 +    }
4870 +#  endif
4871 +    if (!using_gnome && gui.menubar
4872 +        && GTK_WIDGET_REALIZED(gui.menubar)
4873 +        && GTK_WIDGET_VISIBLE(gui.menubar))
4874 +    {
4875 +        height += gui.menubar->allocation.height;
4876 +    }
4877 +# endif
4878 +
4879 +# ifdef FEAT_TOOLBAR
4880 +#  ifdef FEAT_GUI_GNOME
4881 +    if (using_gnome && gui.toolbar_h
4882 +        && GTK_WIDGET_REALIZED(gui.toolbar_h)
4883 +        && GTK_WIDGET_VISIBLE(gui.toolbar_h)
4884 +        && !BONOBO_DOCK_ITEM(gui.toolbar_h)->is_floating
4885 +        && bonobo_dock_item_get_orientation(BONOBO_DOCK_ITEM(gui.toolbar_h))
4886 +               == GTK_ORIENTATION_HORIZONTAL)
4887 +    {
4888 +        height += gui.toolbar_h->allocation.height;
4889 +    }
4890 +#  endif
4891 +    if (!using_gnome && gui.toolbar
4892 +        && GTK_WIDGET_REALIZED(gui.toolbar)
4893 +        && GTK_WIDGET_VISIBLE(gui.toolbar))
4894 +    {
4895 +        height += gui.toolbar->allocation.height;
4896 +    }
4897 +# endif
4898 +# ifdef FEAT_XIM
4899 +    if (xim_get_status_area_height())
4900 +        height += gui.char_height + 2;
4901 +# endif
4902 +
4903 +    return height;
4904 +}
4905 +
4906 +#endif /* HAVE_GTK2 */
4907 +
4908 +
4909      static void
4910  update_window_manager_hints(void)
4911  {
4912 @@ -2072,25 +2783,38 @@ update_window_manager_hints(void)
4913  
4914      /* This also needs to be done when the main window isn't there yet,
4915       * otherwise the hints don't work. */
4916 -    width = gui_get_base_width();
4917 +    width  = gui_get_base_width();
4918      height = gui_get_base_height();
4919  
4920 +# ifdef HAVE_GTK2
4921 +    width  += get_menu_tool_width();
4922 +    height += get_menu_tool_height();
4923 +# endif
4924 +
4925      /* Avoid an expose event when the size didn't change. */
4926      if (width != old_width
4927             || height != old_height
4928             || gui.char_width != old_char_width
4929             || gui.char_height != old_char_height)
4930      {
4931 -       geometry_mask =
4932 -                    GDK_HINT_BASE_SIZE|GDK_HINT_RESIZE_INC|GDK_HINT_MIN_SIZE;
4933 +       geometry_mask = GDK_HINT_BASE_SIZE|GDK_HINT_RESIZE_INC|GDK_HINT_MIN_SIZE;
4934         geometry.width_inc = gui.char_width;
4935         geometry.height_inc = gui.char_height;
4936         geometry.base_width = width;
4937         geometry.base_height = height;
4938         geometry.min_width = width + MIN_COLUMNS * gui.char_width;
4939         geometry.min_height = height + MIN_LINES * gui.char_height;
4940 +# ifdef HAVE_GTK2
4941 +        /* Using gui.formwin as geometry widget doesn't work as expected
4942 +         * with GTK+ 2 -- dunno why.  Presumably all the resizing hacks
4943 +         * in Vim confuse GTK+.
4944 +         */
4945 +       gtk_window_set_geometry_hints(GTK_WINDOW(gui.mainwin), gui.mainwin,
4946 +                                     &geometry, geometry_mask);
4947 +# else
4948         gtk_window_set_geometry_hints(GTK_WINDOW(gui.mainwin), gui.formwin,
4949                                       &geometry, geometry_mask);
4950 +# endif
4951         old_width = width;
4952         old_height = height;
4953         old_char_width = gui.char_width;
4954 @@ -2112,6 +2836,7 @@ form_configure_event(GtkWidget * widget,
4955      return TRUE;
4956  }
4957  
4958 +#ifndef HAVE_GTK2
4959  /*
4960   * X11 based inter client communication handler.
4961   */
4962 @@ -2133,6 +2858,7 @@ client_event_cb(GtkWidget *widget, GdkEv
4963      }
4964      return FALSE;
4965  }
4966 +#endif /* !HAVE_GTK2 */
4967  
4968  /*
4969   * Function called when window already closed.
4970 @@ -2142,23 +2868,30 @@ client_event_cb(GtkWidget *widget, GdkEv
4971      static void
4972  destroy_callback(void)
4973  {
4974 -    /* preserve files and exit */
4975 -    preserve_exit();
4976 -    if (gtk_main_level() > 0)
4977 -       gtk_main_quit();
4978 -}
4979 +    gui.mainwin = NULL;
4980  
4981 +    if (!exiting) /* only do anything if the destroy was unexpected */
4982 +    {
4983 +        STRNCPY(IObuff, _("Vim: Main window unexpectedly destroyed\n"), IOSIZE);
4984 +        IObuff[IOSIZE - 1] = NUL;
4985 +        preserve_exit();
4986 +    }
4987 +}
4988  
4989  /*
4990   * Open the GUI window which was created by a call to gui_mch_init().
4991   */
4992      int
4993 -gui_mch_open()
4994 +gui_mch_open(void)
4995  {
4996      int x = -1, y = -1;
4997  
4998      if (gui_win_x != -1 && gui_win_y != -1)
4999 +#ifdef HAVE_GTK2
5000 +        gtk_window_move(GTK_WINDOW(gui.mainwin), gui_win_x, gui_win_y);
5001 +#else
5002         gtk_widget_set_uposition(gui.mainwin, gui_win_x, gui_win_y);
5003 +#endif
5004  
5005      /* Determine user specified geometry, if present. */
5006      if (gui.geom != NULL)
5007 @@ -2172,8 +2905,12 @@ gui_mch_open()
5008         if (mask & HeightValue)
5009             Rows = h;
5010         if (mask & (XValue | YValue))
5011 +#ifdef HAVE_GTK2
5012 +            gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
5013 +#else
5014             gtk_widget_set_uposition(gui.mainwin, x, y);
5015 -       g_free(gui.geom);
5016 +#endif
5017 +       vim_free(gui.geom);
5018         gui.geom = NULL;
5019      }
5020  
5021 @@ -2209,12 +2946,14 @@ gui_mch_open()
5022      gtk_signal_connect(GTK_OBJECT(gui.mainwin), "destroy",
5023                        GTK_SIGNAL_FUNC(destroy_callback), NULL);
5024  
5025 +#ifndef HAVE_GTK2
5026      /* Make this run after any internal handling of the client event happened
5027       * to make sure that all changes implicated by it are already in place and
5028       * we thus can make our own adjustments.
5029       */
5030      gtk_signal_connect_after(GTK_OBJECT(gui.mainwin), "client_event",
5031 -                   GTK_SIGNAL_FUNC(client_event_cb), NULL);
5032 +                             GTK_SIGNAL_FUNC(client_event_cb), NULL);
5033 +#endif
5034  
5035  #ifdef FEAT_HANGULIN
5036      hangul_keyboard_set();
5037 @@ -2239,14 +2978,48 @@ gui_mch_open()
5038       */
5039      gtk_drag_dest_set(gui.drawarea,
5040             GTK_DEST_DEFAULT_ALL,
5041 -           target_table, n_targets,
5042 +           target_table, DND_N_TARGETS,
5043             GDK_ACTION_COPY | GDK_ACTION_MOVE);
5044  
5045      gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received",
5046             GTK_SIGNAL_FUNC(drag_data_received), NULL);
5047  #endif
5048  
5049 -    gtk_widget_show(gui.mainwin);
5050 +#if defined(FEAT_GUI_GNOME) && defined(HAVE_GTK2) && defined(FEAT_MENU)
5051 +    {
5052 +        unsigned long menubar_handler = 0;
5053 +# ifdef FEAT_TOOLBAR
5054 +        unsigned long toolbar_handler = 0;
5055 +# endif
5056 +        /* Urgh hackish :/  For some reason BonoboDockLayout always forces a
5057 +         * show when restoring the saved layout configuration.  We can't just
5058 +         * hide the widgets again after gtk_widget_show(gui.mainwin) since it's
5059 +         * a toplevel window and thus will be realized immediately.  Instead,
5060 +         * connect signal handlers to hide the widgets just after they've been
5061 +         * marked visible, but before the main window is realized.
5062 +         */
5063 +        if (vim_strchr(p_go, GO_MENUS) == NULL)
5064 +            menubar_handler = g_signal_connect_after(gui.menubar_h, "show",
5065 +                                                     G_CALLBACK(&gtk_widget_hide),
5066 +                                                     NULL);
5067 +# ifdef FEAT_TOOLBAR
5068 +        if (vim_strchr(p_go, GO_TOOLBAR) == NULL)
5069 +            toolbar_handler = g_signal_connect_after(gui.toolbar_h, "show",
5070 +                                                     G_CALLBACK(&gtk_widget_hide),
5071 +                                                     NULL);
5072 +# endif
5073 +#endif
5074 +        gtk_widget_show(gui.mainwin);
5075 +
5076 +#if defined(FEAT_GUI_GNOME) && defined(HAVE_GTK2) && defined(FEAT_MENU)
5077 +        if (menubar_handler != 0)
5078 +            g_signal_handler_disconnect(gui.menubar_h, menubar_handler);
5079 +# ifdef FEAT_TOOLBAR
5080 +        if (toolbar_handler != 0)
5081 +            g_signal_handler_disconnect(gui.toolbar_h, toolbar_handler);
5082 +# endif
5083 +    }
5084 +#endif
5085  
5086      return OK;
5087  }
5088 @@ -2256,7 +3029,8 @@ gui_mch_open()
5089      void
5090  gui_mch_exit(int rc)
5091  {
5092 -    gtk_exit(0);
5093 +    if (gui.mainwin != NULL)
5094 +        gtk_object_destroy(GTK_OBJECT(gui.mainwin));
5095  }
5096  
5097  /*
5098 @@ -2265,9 +3039,13 @@ gui_mch_exit(int rc)
5099      int
5100  gui_mch_get_winpos(int *x, int *y)
5101  {
5102 +#ifdef HAVE_GTK2
5103 +    gtk_window_get_position(GTK_WINDOW(gui.mainwin), x, y);
5104 +#else
5105      /* For some people this must be gdk_window_get_origin() for a correct
5106       * result.  Where is the documentation! */
5107      gdk_window_get_root_origin(gui.mainwin->window, x, y);
5108 +#endif
5109      return OK;
5110  }
5111  
5112 @@ -2278,8 +3056,40 @@ gui_mch_get_winpos(int *x, int *y)
5113      void
5114  gui_mch_set_winpos(int x, int y)
5115  {
5116 +#ifdef HAVE_GTK2
5117 +    gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
5118 +#else
5119      gdk_window_move(gui.mainwin->window, x, y);
5120 +#endif
5121 +}
5122 +
5123 +#ifdef HAVE_GTK2
5124 +static gboolean resize_idle_installed = FALSE;
5125 +/*
5126 + * Idle handler to force resize.  Used by gui_mch_set_shellsize() to ensure
5127 + * the shell size doesn't exceed the window size, i.e. if the window manager
5128 + * ignored our size request.  Usually this happens if the window is maximized.
5129 + */
5130 +    static gboolean
5131 +force_shell_resize_idle(gpointer data)
5132 +{
5133 +    if (gui.mainwin != NULL && GTK_WIDGET_MAPPED(gui.mainwin))
5134 +    {
5135 +        int width;
5136 +        int height;
5137 +
5138 +        gtk_window_get_size(GTK_WINDOW(gui.mainwin), &width, &height);
5139 +
5140 +        width  -= get_menu_tool_width();
5141 +        height -= get_menu_tool_height();
5142 +
5143 +        gui_resize_shell(width, height);
5144 +    }
5145 +
5146 +    resize_idle_installed = FALSE;
5147 +    return FALSE; /* don't call me again */
5148  }
5149 +#endif /* HAVE_GTK2 */
5150  
5151  /*
5152   * Set the windows size.
5153 @@ -2289,6 +3099,7 @@ gui_mch_set_winpos(int x, int y)
5154  gui_mch_set_shellsize(int width, int height,
5155         int min_width, int min_height, int base_width, int base_height)
5156  {
5157 +#ifndef HAVE_GTK2
5158      /* Hack: When the form already is at the desired size, the window might
5159       * have been resized with the mouse.  Force a resize by setting a
5160       * different size first. */
5161 @@ -2300,12 +3111,30 @@ gui_mch_set_shellsize(int width, int hei
5162      }
5163  
5164      gtk_form_set_size(GTK_FORM(gui.formwin), width, height);
5165 -
5166 +#endif
5167      /* give GTK+ a chance to put all widget's into place */
5168      gui_mch_update();
5169  
5170      /* this will cause the proper resizement to happen too */
5171      update_window_manager_hints();
5172 +
5173 +#ifdef HAVE_GTK2
5174 +    /* With GTK+ 2, changing the size of the form widget doesn't resize
5175 +     * the window.  So lets do it the other way around and resize the
5176 +     * main window instead.
5177 +     */
5178 +    width  += get_menu_tool_width();
5179 +    height += get_menu_tool_height();
5180 +
5181 +    gtk_window_resize(GTK_WINDOW(gui.mainwin), width, height);
5182 +
5183 +    if (!resize_idle_installed)
5184 +    {
5185 +        resize_idle_installed = TRUE;
5186 +        g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
5187 +                        &force_shell_resize_idle, NULL, NULL);
5188 +    }
5189 +#endif
5190  }
5191  
5192  
5193 @@ -2317,10 +3146,24 @@ gui_mch_set_shellsize(int width, int hei
5194      void
5195  gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
5196  {
5197 -    *screen_w = gdk_screen_width();
5198 -    /* Subtract 'guihearroom' from the height to allow some room for the
5199 -     * window manager (task list and window title bar). */
5200 -    *screen_h = gdk_screen_height() - p_ghr;
5201 +#ifdef GTK2_MULTIHEAD
5202 +    if (gui.mainwin && gtk_widget_has_screen(gui.mainwin))
5203 +    {
5204 +        GdkScreen* screen;
5205 +
5206 +        screen = gtk_widget_get_screen(gui.mainwin);
5207 +
5208 +        *screen_w = gdk_screen_get_width(screen);
5209 +        *screen_h = gdk_screen_get_height(screen) - p_ghr;
5210 +    }
5211 +    else
5212 +#endif
5213 +    {
5214 +        *screen_w = gdk_screen_width();
5215 +        /* Subtract 'guiheadroom' from the height to allow some room for the
5216 +         * window manager (task list and window title bar). */
5217 +        *screen_h = gdk_screen_height() - p_ghr;
5218 +    }
5219  
5220      /*
5221       * FIXME: dirty trick: Because the gui_get_base_height() doesn't include
5222 @@ -2328,28 +3171,63 @@ gui_mch_get_screen_dimensions(int *scree
5223       * hight, so that the window size can be made to fit on the screen.
5224       * This should be completely changed later.
5225       */
5226 -#ifdef FEAT_TOOLBAR
5227 +#ifdef HAVE_GTK2
5228 +    *screen_w -= get_menu_tool_width();
5229 +    *screen_h -= get_menu_tool_height();
5230 +#else
5231 +# ifdef FEAT_TOOLBAR
5232      if (gui.toolbar && GTK_WIDGET_REALIZED(gui.toolbar)
5233             && GTK_WIDGET_VISIBLE(gui.toolbar))
5234         *screen_h -= gui.toolbar->allocation.height;
5235 -#endif
5236 -#ifdef FEAT_MENU
5237 +# endif
5238 +# ifdef FEAT_MENU
5239      if (gui.menubar && GTK_WIDGET_REALIZED(gui.menubar)
5240             && GTK_WIDGET_VISIBLE(gui.menubar))
5241         *screen_h -= gui.menubar->allocation.height;
5242 +# endif
5243  #endif
5244  }
5245  
5246 +#if defined(FEAT_TITLE) || defined(PROTO)
5247 +    void
5248 +gui_mch_settitle(char_u *title, char_u *icon)
5249 +{
5250 +# ifdef HAVE_GTK2
5251 +    if (output_conv.vc_type != CONV_NONE)
5252 +        title = string_convert(&output_conv, title, NULL);
5253 +# endif
5254 +
5255 +    gtk_window_set_title(GTK_WINDOW(gui.mainwin), (const char *)title);
5256 +
5257 +# ifdef HAVE_GTK2
5258 +    if (output_conv.vc_type != CONV_NONE)
5259 +        vim_free(title);
5260 +# endif
5261 +}
5262 +#endif
5263 +
5264  #if defined(FEAT_MENU) || defined(PROTO)
5265      void
5266 -gui_mch_enable_menu(int flag)
5267 +gui_mch_enable_menu(int showit)
5268  {
5269 -    if (flag)
5270 -       gtk_widget_show(gui.menubar);
5271 +    GtkWidget *widget;
5272 +
5273 +# ifdef FEAT_GUI_GNOME
5274 +    if (using_gnome)
5275 +        widget = gui.menubar_h;
5276      else
5277 -       gtk_widget_hide(gui.menubar);
5278 +# endif
5279 +        widget = gui.menubar;
5280  
5281 -    update_window_manager_hints();
5282 +    if (!showit != !GTK_WIDGET_VISIBLE(widget))
5283 +    {
5284 +        if (showit)
5285 +            gtk_widget_show(widget);
5286 +        else
5287 +            gtk_widget_hide(widget);
5288 +
5289 +        update_window_manager_hints();
5290 +    }
5291  }
5292  #endif
5293  
5294 @@ -2359,59 +3237,34 @@ gui_mch_enable_menu(int flag)
5295      void
5296  gui_mch_show_toolbar(int showit)
5297  {
5298 +    GtkWidget *widget;
5299 +
5300      if (gui.toolbar == NULL)
5301         return;
5302  
5303 -    if (!showit)
5304 -    {
5305  # ifdef FEAT_GUI_GNOME
5306 -       if (using_gnome && GTK_WIDGET_VISIBLE(gui.toolbar_h))
5307 -       {
5308 -           gtk_widget_hide(gui.toolbar_h);
5309 -           /* wait util this gets done on the server side. */
5310 -           update_window_manager_hints();
5311 -       }
5312 -# endif
5313 -       if (!using_gnome && GTK_WIDGET_VISIBLE(gui.toolbar))
5314 -       {
5315 -           gtk_widget_hide(gui.toolbar);
5316 -           /* wait util this gets done on the server side. */
5317 -           update_window_manager_hints();
5318 -       }
5319 -    }
5320 +    if (using_gnome)
5321 +        widget = gui.toolbar_h;
5322      else
5323 -    {
5324 -       if (strstr((const char *)p_toolbar, "text")
5325 -               && strstr((const char *)p_toolbar, "icons"))
5326 -           gtk_toolbar_set_style(GTK_TOOLBAR(gui.toolbar), GTK_TOOLBAR_BOTH);
5327 -       else if (strstr((const char *)p_toolbar, "text"))
5328 -           gtk_toolbar_set_style(GTK_TOOLBAR(gui.toolbar), GTK_TOOLBAR_TEXT);
5329 -       else if (strstr((const char *)p_toolbar, "icons"))
5330 -           gtk_toolbar_set_style(GTK_TOOLBAR(gui.toolbar), GTK_TOOLBAR_ICONS);
5331 -
5332 -# ifdef FEAT_GUI_GNOME
5333 -       if (using_gnome && !GTK_WIDGET_VISIBLE(gui.toolbar_h))
5334 -       {
5335 -           gtk_widget_show(gui.toolbar_h);
5336 -           update_window_manager_hints();
5337 -       }
5338 -       else
5339  # endif
5340 -       if (!using_gnome && !GTK_WIDGET_VISIBLE(gui.toolbar))
5341 -       {
5342 -           gtk_widget_show(gui.toolbar);
5343 -           update_window_manager_hints();
5344 -       }
5345 +        widget = gui.toolbar;
5346  
5347 -       if (strstr((const char *)p_toolbar, "tooltips"))
5348 -           gtk_toolbar_set_tooltips(GTK_TOOLBAR(gui.toolbar), TRUE);
5349 -       else
5350 -           gtk_toolbar_set_tooltips(GTK_TOOLBAR(gui.toolbar), FALSE);
5351 +    if (showit)
5352 +        set_toolbar_style(GTK_TOOLBAR(gui.toolbar), (const char *)p_toolbar);
5353 +
5354 +    if (!showit != !GTK_WIDGET_VISIBLE(widget))
5355 +    {
5356 +        if (showit)
5357 +            gtk_widget_show(widget);
5358 +        else
5359 +            gtk_widget_hide(widget);
5360 +
5361 +        update_window_manager_hints();
5362      }
5363  }
5364 -#endif
5365 -
5366 +#endif /* FEAT_TOOLBAR */
5367  
5368 +#ifndef HAVE_GTK2
5369  /*
5370   * Get a font structure for highlighting.
5371   * "cbdata" is a pointer to the global gui structure.
5372 @@ -2421,14 +3274,16 @@ gui_mch_show_toolbar(int showit)
5373  font_sel_ok(GtkWidget *wgt, gpointer cbdata)
5374  {
5375      gui_T *vw = (gui_T *)cbdata;
5376 -    GtkFontSelectionDialog *fs = (GtkFontSelectionDialog *)vw->fontdlg;
5377 +    GtkFontSelectionDialog *fs;
5378 +
5379 +    fs = GTK_FONT_SELECTION_DIALOG(vw->fontdlg);
5380  
5381 -    if (vw->fontname)
5382 -       g_free(vw->fontname);
5383 +    if (vw->fontname != NULL)
5384 +        vim_free(vw->fontname);
5385  
5386 -    vw->fontname = (char_u *)g_strdup(
5387 -                               gtk_font_selection_dialog_get_font_name(fs));
5388 +    vw->fontname = vim_strsave((char_u *)gtk_font_selection_dialog_get_font_name(fs));
5389      gtk_widget_hide(vw->fontdlg);
5390 +
5391      if (gtk_main_level() > 0)
5392         gtk_main_quit();
5393  }
5394 @@ -2454,13 +3309,35 @@ font_sel_destroy(GtkWidget *wgt, gpointe
5395      if (gtk_main_level() > 0)
5396         gtk_main_quit();
5397  }
5398 +#endif /* !HAVE_GTK2 */
5399  
5400      int
5401  gui_mch_adjust_charsize(void)
5402  {
5403 +#ifdef HAVE_GTK2
5404 +    PangoFontMetrics    *metrics;
5405 +    int                 ascent;
5406 +    int                 descent;
5407 +
5408 +    metrics = pango_context_get_metrics(gui.text_context, gui.norm_font,
5409 +                                        pango_context_get_language(gui.text_context));
5410 +
5411 +    ascent  = pango_font_metrics_get_ascent(metrics);
5412 +    descent = pango_font_metrics_get_descent(metrics);
5413 +
5414 +    pango_font_metrics_unref(metrics);
5415 +
5416 +    gui.char_height = PANGO_PIXELS(ascent + descent) + p_linespace;
5417 +    gui.char_ascent = PANGO_PIXELS(ascent) + p_linespace / 2;
5418 +
5419 +#else /* !HAVE_GTK2 */
5420 +
5421      gui.char_height = gui.current_font->ascent + gui.current_font->descent
5422                       + p_linespace;
5423      gui.char_ascent = gui.current_font->ascent + p_linespace / 2;
5424 +
5425 +#endif /* !HAVE_GTK2 */
5426 +
5427      return OK;
5428  }
5429  
5430 @@ -2492,8 +3369,9 @@ gui_mch_get_fontset(char_u *name, int re
5431  
5432      return (GuiFontset)font;
5433  }
5434 -#endif
5435 +#endif /* FEAT_XFONTSET */
5436  
5437 +#ifndef HAVE_GTK2
5438  /*
5439   * Put up a font dialog and return the selected font name in allocated memory.
5440   * "oldval" is the previous value.
5441 @@ -2506,11 +3384,10 @@ gui_mch_font_dialog(char_u *oldval)
5442      {
5443         GtkFontSelectionDialog  *fsd = NULL;
5444  
5445 -       gui.fontdlg = gtk_font_selection_dialog_new(_("Font Selection"));
5446 +       gui.fontdlg = gtk_font_selection_dialog_new((const char *)_("Font Selection"));
5447         fsd = GTK_FONT_SELECTION_DIALOG(gui.fontdlg);
5448         gtk_window_set_modal(GTK_WINDOW(gui.fontdlg), TRUE);
5449 -       gtk_window_set_transient_for(GTK_WINDOW(gui.fontdlg),
5450 -               GTK_WINDOW(gui.mainwin));
5451 +        gtk_window_set_transient_for(GTK_WINDOW(gui.fontdlg), GTK_WINDOW(gui.mainwin));
5452         gtk_signal_connect(GTK_OBJECT(gui.fontdlg), "destroy",
5453                 GTK_SIGNAL_FUNC(font_sel_destroy), &gui);
5454         gtk_signal_connect(GTK_OBJECT(fsd->ok_button), "clicked",
5455 @@ -2525,11 +3402,12 @@ gui_mch_font_dialog(char_u *oldval)
5456  
5457      if (gui.fontname)
5458      {
5459 -       g_free(gui.fontname);
5460 +       vim_free(gui.fontname);
5461         gui.fontname = NULL;
5462      }
5463      gtk_window_position(GTK_WINDOW(gui.fontdlg), GTK_WIN_POS_MOUSE);
5464      gtk_widget_show(gui.fontdlg);
5465 +
5466      {
5467         static gchar    *spacings[] = {"c", "m", NULL};
5468  
5469 @@ -2550,6 +3428,109 @@ gui_mch_font_dialog(char_u *oldval)
5470         return NULL;
5471      return vim_strsave(gui.fontname);
5472  }
5473 +#endif /* !HAVE_GTK2 */
5474 +
5475 +#ifdef HAVE_GTK2
5476 +/*
5477 + * Put up a font dialog and return the selected font name in allocated memory.
5478 + * "oldval" is the previous value.  Return NULL when cancelled.
5479 + * This should probably go into gui_gtk.c.  Hmm.
5480 + * FIXME:
5481 + * The GTK2 font selection dialog has no filtering API.  So we could either
5482 + * a) implement our own (possibly copying the code from gnome-terminal) or
5483 + * b) just live with it.
5484 + */
5485 +    char_u *
5486 +gui_mch_font_dialog(char_u *oldval)
5487 +{
5488 +    GtkWidget   *dialog;
5489 +    int         response;
5490 +    char_u      *fontname = NULL;
5491 +
5492 +    dialog = gtk_font_selection_dialog_new(NULL);
5493 +
5494 +    gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(gui.mainwin));
5495 +    gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE);
5496 +
5497 +    if (oldval != NULL && oldval[0] != NUL)
5498 +    {
5499 +        if (output_conv.vc_type != CONV_NONE)
5500 +            oldval = string_convert(&output_conv, oldval, NULL);
5501 +
5502 +        gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(dialog),
5503 +                                                (const char *)oldval);
5504 +        if (output_conv.vc_type != CONV_NONE)
5505 +            vim_free(oldval);
5506 +    }
5507 +
5508 +    response = gtk_dialog_run(GTK_DIALOG(dialog));
5509 +
5510 +    if (response == GTK_RESPONSE_OK)
5511 +    {
5512 +        char *name;
5513 +
5514 +        name = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(dialog));
5515 +
5516 +        if (name != NULL)
5517 +        {
5518 +            if (input_conv.vc_type == CONV_NONE)
5519 +                fontname = vim_strsave((char_u *)name);
5520 +            else
5521 +                fontname = string_convert(&input_conv, (char_u *)name, NULL);
5522 +            g_free(name);
5523 +        }
5524 +    }
5525 +
5526 +    if (response != GTK_RESPONSE_NONE)
5527 +        gtk_widget_destroy(dialog);
5528 +
5529 +    return fontname;
5530 +}
5531 +
5532 +/* Some monospace fonts don't support a bold weight, and fall back
5533 + * silently to the regular weight.  But this is no good since our text
5534 + * drawing function can emulate bold by overstriking.  So let's try
5535 + * to detect whether bold weight is actually available and emulate it
5536 + * otherwise.
5537 + *
5538 + * Note that we don't need to check for italic style since Xft can
5539 + * emulate italic on its own, provided you have a proper fontconfig
5540 + * setup.  We wouldn't be able to emulate it in Vim anyway.
5541 + */
5542 +    static void
5543 +get_styled_font_variants(void)
5544 +{
5545 +    PangoFontDescription    *bold_font_desc;
5546 +    PangoFont               *plain_font;
5547 +    PangoFont               *bold_font;
5548 +
5549 +    gui.font_can_bold = 0;
5550 +
5551 +    plain_font = pango_context_load_font(gui.text_context, gui.norm_font);
5552 +
5553 +    if (plain_font == NULL)
5554 +        return;
5555 +
5556 +    bold_font_desc = pango_font_description_copy(gui.norm_font);
5557 +    pango_font_description_set_weight(bold_font_desc, PANGO_WEIGHT_BOLD);
5558 +
5559 +    bold_font = pango_context_load_font(gui.text_context, bold_font_desc);
5560 +
5561 +    /* The comparison relies on the unique handle nature of a PangoFont*,
5562 +     * i.e.  it's assumed that a different PangoFont* won't refer to the
5563 +     * same font.  Seems to work, and failing here isn't critical anyway.
5564 +     */
5565 +    if (bold_font != NULL)
5566 +    {
5567 +        gui.font_can_bold = (bold_font != plain_font);
5568 +        g_object_unref(bold_font);
5569 +    }
5570 +
5571 +    pango_font_description_free(bold_font_desc);
5572 +    g_object_unref(plain_font);
5573 +}
5574 +
5575 +#else /* !HAVE_GTK2 */
5576  
5577  /*
5578   * There is only one excuse I can give for the following attempt to manage font
5579 @@ -2641,6 +3622,70 @@ get_styled_font_variants(char_u * font_n
5580  
5581      g_free(sdup);
5582  }
5583 +#endif /* !HAVE_GTK2 */
5584 +
5585 +#ifdef HAVE_GTK2
5586 +/*
5587 + * Create a map from ASCII characters in the range [32,126] to glyphs
5588 + * of the current font.  This is used by gui_mch_draw_string() to skip
5589 + * the itemize and shaping process for the most common case.
5590 + */
5591 +    static void
5592 +ascii_glyph_table_init(void)
5593 +{
5594 +    char_u          ascii_chars[128];
5595 +    PangoAttrList   *attr_list;
5596 +    GList           *item_list;
5597 +    int             i;
5598 +
5599 +    if (gui.ascii_glyphs != NULL)
5600 +        pango_glyph_string_free(gui.ascii_glyphs);
5601 +
5602 +    if (gui.ascii_font != NULL)
5603 +        g_object_unref(gui.ascii_font);
5604 +
5605 +    gui.ascii_glyphs = NULL;
5606 +    gui.ascii_font   = NULL;
5607 +
5608 +    /* For safety, fill in question marks for the control characters. */
5609 +    for (i = 0; i < 32; ++i)
5610 +        ascii_chars[i] = '?';
5611 +
5612 +    for (; i < 127; ++i)
5613 +        ascii_chars[i] = i;
5614 +
5615 +    ascii_chars[i] = '?';
5616 +
5617 +    attr_list = pango_attr_list_new();
5618 +    item_list = pango_itemize(gui.text_context, (const char *)ascii_chars,
5619 +                              0, sizeof(ascii_chars), attr_list, NULL);
5620 +
5621 +    if (item_list != NULL && item_list->next == NULL) /* play safe */
5622 +    {
5623 +        PangoItem *item;
5624 +
5625 +        item = (PangoItem *)item_list->data;
5626 +
5627 +        gui.ascii_font = item->analysis.font;
5628 +        g_object_ref(gui.ascii_font);
5629 +
5630 +        gui.ascii_glyphs = pango_glyph_string_new();
5631 +
5632 +        pango_shape((const char *)ascii_chars, sizeof(ascii_chars),
5633 +                    &item->analysis, gui.ascii_glyphs);
5634 +
5635 +        g_return_if_fail(gui.ascii_glyphs->num_glyphs == sizeof(ascii_chars));
5636 +
5637 +        for (i = 0; i < gui.ascii_glyphs->num_glyphs; ++i)
5638 +            gui.ascii_glyphs->glyphs[i].geometry.width = gui.char_width * PANGO_SCALE;
5639 +
5640 +        pango_item_free(item);
5641 +    }
5642 +
5643 +    g_list_free(item_list);
5644 +    pango_attr_list_unref(attr_list);
5645 +}
5646 +#endif /* HAVE_GTK2 */
5647  
5648  /*
5649   * Initialize Vim to use the font or fontset with the given name.
5650 @@ -2650,20 +3695,68 @@ get_styled_font_variants(char_u * font_n
5651      int
5652  gui_mch_init_font(char_u *font_name, int fontset)
5653  {
5654 +#ifdef HAVE_GTK2
5655 +    PangoFontDescription    *font_desc;
5656 +    PangoFontMetrics        *metrics;
5657 +    int                     width;
5658 +    int                     ascent;
5659 +    int                     descent;
5660 +
5661 +    /* If font_name is NULL, this means to use the default, which should
5662 +     * be present on all proper Pango/fontconfig installations.
5663 +     */
5664 +    if (font_name == NULL)
5665 +        font_name = (char_u *)DEFAULT_FONT;
5666 +
5667 +    font_desc = gui_mch_get_font(font_name, FALSE);
5668 +
5669 +    if (font_desc == NULL)
5670 +        return FAIL;
5671 +
5672 +    gui_mch_free_font(gui.norm_font);
5673 +    gui.norm_font = font_desc;
5674 +
5675 +    pango_context_set_font_description(gui.text_context, font_desc);
5676 +
5677 +    metrics = pango_context_get_metrics(gui.text_context, font_desc,
5678 +                                        pango_context_get_language(gui.text_context));
5679 +
5680 +    width   = pango_font_metrics_get_approximate_char_width(metrics);
5681 +    ascent  = pango_font_metrics_get_ascent(metrics);
5682 +    descent = pango_font_metrics_get_descent(metrics);
5683 +
5684 +    pango_font_metrics_unref(metrics);
5685 +
5686 +    gui.char_width  = PANGO_PIXELS(width);
5687 +    gui.char_height = PANGO_PIXELS(ascent + descent) + p_linespace;
5688 +    gui.char_ascent = PANGO_PIXELS(ascent) + p_linespace / 2;
5689 +
5690 +    /* A zero width may cause a crash.  Happens for semi-invalid fontsets. */
5691 +    if (gui.char_width <= 0)
5692 +        gui.char_width = 8;
5693 +
5694 +    /* Set the fontname, which will be used for information purposes */
5695 +    hl_set_font_name(font_name);
5696 +
5697 +    get_styled_font_variants();
5698 +    ascii_glyph_table_init();
5699 +
5700 +#else /* !HAVE_GTK2 */
5701 +
5702      GdkFont    *font = NULL;
5703  
5704 -#ifdef FEAT_XFONTSET
5705 +# ifdef FEAT_XFONTSET
5706      /* Try loading a fontset.  If this fails we try loading a normal font. */
5707      if (fontset && font_name != NULL)
5708         font = gui_mch_get_fontset(font_name, TRUE, TRUE);
5709  
5710      if (font == NULL)
5711 -#endif
5712 +# endif
5713      {
5714         /* If font_name is NULL, this means to use the default, which should
5715          * be present on all X11 servers. */
5716         if (font_name == NULL)
5717 -           font_name = (char_u *)DFLT_FONT;
5718 +           font_name = (char_u *)DEFAULT_FONT;
5719         font = gui_mch_get_font(font_name, FALSE);
5720      }
5721  
5722 @@ -2671,7 +3764,7 @@ gui_mch_init_font(char_u *font_name, int
5723         return FAIL;
5724  
5725      gui_mch_free_font(gui.norm_font);
5726 -#ifdef FEAT_XFONTSET
5727 +# ifdef FEAT_XFONTSET
5728      gui_mch_free_fontset(gui.fontset);
5729      if (font->type == GDK_FONT_FONTSET)
5730      {
5731 @@ -2682,12 +3775,12 @@ gui_mch_init_font(char_u *font_name, int
5732         gui.char_width = gdk_string_width(font, "xW") / 2;
5733      }
5734      else
5735 -#endif
5736 +# endif
5737      {
5738         gui.norm_font = font;
5739 -#ifdef FEAT_XFONTSET
5740 +# ifdef FEAT_XFONTSET
5741         gui.fontset = NOFONTSET;
5742 -#endif
5743 +# endif
5744         gui.char_width = ((XFontStruct *)
5745                                       GDK_FONT_XFONT(font))->max_bounds.width;
5746      }
5747 @@ -2710,6 +3803,7 @@ gui_mch_init_font(char_u *font_name, int
5748       * usage.
5749       */
5750      gui_gtk_synch_fonts();
5751 +#endif /* !HAVE_GTK2 */
5752  
5753  #ifdef FEAT_XIM
5754      /* Adjust input management behaviour to the capabilities of the new
5755 @@ -2717,14 +3811,14 @@ gui_mch_init_font(char_u *font_name, int
5756      xim_decide_input_style();
5757      if (xim_get_status_area_height())
5758      {
5759 -       /* Status area is required.  Just create the empty label so that
5760 -        * mainwin will allocate the extra space for status area. */
5761 -       GtkWidget *label = gtk_label_new("       ");
5762 -
5763 -       gtk_widget_set_usize(label, 20, gui.char_height + 2);
5764 -       gtk_box_pack_end(GTK_BOX(GTK_BIN(gui.mainwin)->child), label,
5765 -                                                            FALSE, FALSE, 0);
5766 -       gtk_widget_show(label);
5767 +        /* Status area is required.  Just create the empty container so that
5768 +         * mainwin will allocate the extra space for status area. */
5769 +        GtkWidget *alignment = gtk_alignment_new(0.5, 0.5, 1.0, 1.0);
5770 +
5771 +        gtk_widget_set_usize(alignment, 20, gui.char_height + 2);
5772 +        gtk_box_pack_end(GTK_BOX(GTK_BIN(gui.mainwin)->child),
5773 +                         alignment, FALSE, FALSE, 0);
5774 +        gtk_widget_show(alignment);
5775      }
5776  #endif
5777  
5778 @@ -2741,37 +3835,116 @@ gui_mch_init_font(char_u *font_name, int
5779      GuiFont
5780  gui_mch_get_font(char_u *name, int report_error)
5781  {
5782 -    GdkFont *font;
5783 +#ifdef HAVE_GTK2
5784 +    PangoFontDescription    *font;
5785 +#else
5786 +    GdkFont                 *font;
5787 +#endif
5788  
5789      /* can't do this when GUI is not running */
5790      if (!gui.in_use || name == NULL)
5791 -       return NOFONT;
5792 +       return NULL;
5793 +
5794 +#ifdef HAVE_GTK2
5795 +    if (output_conv.vc_type != CONV_NONE)
5796 +    {
5797 +        char_u *buf;
5798 +
5799 +        buf = string_convert(&output_conv, name, NULL);
5800 +        font = pango_font_description_from_string((const char *)buf);
5801 +        vim_free(buf);
5802 +    }
5803 +    else
5804 +        font = pango_font_description_from_string((const char *)name);
5805 +
5806 +    if (font != NULL)
5807 +    {
5808 +        PangoFont *real_font;
5809  
5810 -    font = gdk_font_load((const gchar *)name);
5811 +        /* pango_context_load_font() bails out if no font size is set */
5812 +        if (pango_font_description_get_size(font) <= 0)
5813 +            pango_font_description_set_size(font, 10 * PANGO_SCALE);
5814 +
5815 +        real_font = pango_context_load_font(gui.text_context, font);
5816 +
5817 +        if (real_font == NULL)
5818 +        {
5819 +            pango_font_description_free(font);
5820 +            font = NULL;
5821 +        }
5822 +        else
5823 +            g_object_unref(real_font);
5824 +    }
5825 +#else
5826 +    font = gdk_font_load((const char *)name);
5827 +#endif /* !HAVE_GTK2 */
5828  
5829      if (font == NULL)
5830      {
5831         if (report_error)
5832             EMSG2(_("E235: Unknown font: %s"), name);
5833 -       return NOFONT;
5834 +
5835 +       return NULL;
5836      }
5837  
5838 -    /* reference this font as being in use */
5839 -    gdk_font_ref(font);
5840 +#ifdef HAVE_GTK2
5841 +    {
5842 +        /* Check that this is a mono-spaced font.  Naturally, this is a bit
5843 +         * hackish -- fixed-width isn't really suitable for i18n text :/
5844 +         */
5845 +        PangoLayout     *layout;
5846 +        unsigned int    i;
5847 +        int             last_width   = -1;
5848 +        const char      test_chars[] = { 'W', 'i', ',', 'x' }; /* arbitrary */
5849 +
5850 +        layout = pango_layout_new(gui.text_context);
5851 +        pango_layout_set_font_description(layout, font);
5852 +
5853 +        for (i = 0; i < G_N_ELEMENTS(test_chars); ++i)
5854 +        {
5855 +            int width;
5856 +
5857 +            pango_layout_set_text(layout, &test_chars[i], 1);
5858 +            pango_layout_get_size(layout, &width, NULL);
5859 +
5860 +            if (last_width >= 0 && width != last_width)
5861 +            {
5862 +                pango_font_description_free(font);
5863 +                font = NULL;
5864 +                break;
5865 +            }
5866 +
5867 +            last_width = width;
5868 +        }
5869  
5870 -    /* Check that this is a mono-spaced font. */
5871 -    if (((XFontStruct *)GDK_FONT_XFONT(font))->max_bounds.width
5872 -           != ((XFontStruct *)GDK_FONT_XFONT(font))->min_bounds.width)
5873 +        g_object_unref(layout);
5874 +    }
5875 +#else /* !HAVE_GTK2 */
5876      {
5877 -       EMSG2(_("E236: Font \"%s\" is not fixed-width"), name);
5878 -       gdk_font_unref(font);
5879 +        XFontStruct *xfont;
5880  
5881 -       return NOFONT;
5882 +        /* reference this font as being in use */
5883 +        gdk_font_ref(font);
5884 +
5885 +        /* Check that this is a mono-spaced font.
5886 +         */
5887 +        xfont = (XFontStruct *) GDK_FONT_XFONT(font);
5888 +
5889 +        if (xfont->max_bounds.width != xfont->min_bounds.width)
5890 +        {
5891 +            gdk_font_unref(font);
5892 +            font = NULL;
5893 +        }
5894      }
5895 +#endif /* !HAVE_GTK2 */
5896 +
5897 +    if (font == NULL)
5898 +        EMSG2(_("E236: Font \"%s\" is not fixed-width"), name);
5899  
5900 -    return (GuiFont)font;
5901 +    return font;
5902  }
5903  
5904 +#ifndef HAVE_GTK2
5905  /*
5906   * Set the current text font.
5907   * Since we create all GC on demand, we use just gui.current_font to
5908 @@ -2782,6 +3955,7 @@ gui_mch_set_font(GuiFont font)
5909  {
5910      gui.current_font = font;
5911  }
5912 +#endif
5913  
5914  #if defined(FEAT_XFONTSET) || defined(PROTO)
5915  /*
5916 @@ -2801,7 +3975,11 @@ gui_mch_set_fontset(GuiFontset fontset)
5917  gui_mch_free_font(GuiFont font)
5918  {
5919      if (font != NOFONT)
5920 -       gdk_font_unref((GdkFont *)font);
5921 +#ifdef HAVE_GTK2
5922 +        pango_font_description_free(font);
5923 +#else
5924 +       gdk_font_unref(font);
5925 +#endif
5926  }
5927  
5928  #if defined(FEAT_XFONTSET) || defined(PROTO)
5929 @@ -2812,7 +3990,7 @@ gui_mch_free_font(GuiFont font)
5930  gui_mch_free_fontset(GuiFontset fontset)
5931  {
5932      if (fontset != NOFONTSET)
5933 -       gdk_font_unref((GdkFont *)fontset);
5934 +       gdk_font_unref(fontset);
5935  }
5936  #endif
5937  
5938 @@ -2826,8 +4004,7 @@ gui_mch_free_fontset(GuiFontset fontset)
5939      guicolor_T
5940  gui_mch_get_color(char_u * name)
5941  {
5942 -    int i;
5943 -    static char *(vimnames[][2]) =
5944 +    static const char *const (vimnames[][2]) =
5945      {
5946      /* A number of colors that some X11 systems don't have */
5947         {"LightRed",     "#FFBBBB"},
5948 @@ -2847,8 +4024,13 @@ gui_mch_get_color(char_u * name)
5949  
5950      while (name != NULL)
5951      {
5952 -       GdkColor        color;
5953 -       int             parsed;
5954 +        GdkColor    color;
5955 +        int         parsed;
5956 +        int         i;
5957 +
5958 +        parsed = gdk_color_parse((const char *)name, &color);
5959 +
5960 +#ifndef HAVE_GTK2 /* ohh, lovely GTK+ 2, eases our pain :) */
5961  
5962         /* Since we have already called gtk_set_locale here the bugger
5963          * XParseColor will accept only explicit color names in the language
5964 @@ -2859,9 +4041,6 @@ gui_mch_get_color(char_u * name)
5965          * Therefore we first try to parse the color in the current locale and
5966          * if it fails, we fall back to the portable "C" one.
5967          */
5968 -
5969 -       parsed = gdk_color_parse((const gchar *)name, &color);
5970 -
5971         if (!parsed)
5972         {
5973             char *current;
5974 @@ -2871,14 +4050,18 @@ gui_mch_get_color(char_u * name)
5975             {
5976                 char *saved;
5977  
5978 -               saved = strdup(current);
5979 +               saved = g_strdup(current);
5980                 setlocale(LC_ALL, "C");
5981 +
5982                 parsed = gdk_color_parse((const gchar *)name, &color);
5983 +
5984                 setlocale(LC_ALL, saved);
5985                 gtk_set_locale();
5986 -               free(saved);
5987 +
5988 +               g_free(saved);
5989             }
5990         }
5991 +#endif /* !HAVE_GTK2 */
5992  
5993         if (parsed)
5994         {
5995 @@ -2925,9 +4108,190 @@ gui_mch_set_bg_color(guicolor_T color)
5996      gui.bgcolor->pixel = (Pixel) color;
5997  }
5998  
5999 +#ifdef HAVE_GTK2
6000 +    static void
6001 +draw_glyph_string(int row, int col, int num_cells, int flags,
6002 +                  PangoFont *font, PangoGlyphString *glyphs)
6003 +{
6004 +    if (!(flags & DRAW_TRANSP))
6005 +    {
6006 +        gdk_gc_set_foreground(gui.text_gc, gui.bgcolor);
6007 +
6008 +        gdk_draw_rectangle(gui.drawarea->window,
6009 +                           gui.text_gc,
6010 +                           TRUE,
6011 +                           FILL_X(col),
6012 +                           FILL_Y(row),
6013 +                           num_cells * gui.char_width,
6014 +                           gui.char_height);
6015 +    }
6016 +
6017 +    gdk_gc_set_foreground(gui.text_gc, gui.fgcolor);
6018 +
6019 +    gdk_draw_glyphs(gui.drawarea->window,
6020 +                    gui.text_gc,
6021 +                    font,
6022 +                    TEXT_X(col),
6023 +                    TEXT_Y(row),
6024 +                    glyphs);
6025 +
6026 +    /* redraw the contents with an offset of 1 to emulate bold */
6027 +    if ((flags & DRAW_BOLD) && !gui.font_can_bold)
6028 +        gdk_draw_glyphs(gui.drawarea->window,
6029 +                        gui.text_gc,
6030 +                        font,
6031 +                        TEXT_X(col) + 1,
6032 +                        TEXT_Y(row),
6033 +                        glyphs);
6034 +
6035 +}
6036 +#endif /* HAVE_GTK2 */
6037 +
6038      void
6039  gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
6040  {
6041 +#ifdef HAVE_GTK2
6042 +    char_u              *conv_buf = NULL;
6043 +    PangoAttrList       *attr_list;
6044 +    GList               *item_list;
6045 +    PangoGlyphString    *glyphs;
6046 +    int                 item_offset = 0; /* column offset in cells */
6047 +    int                 i;
6048 +
6049 +    if (gui.text_context == NULL || gui.drawarea->window == NULL)
6050 +        return;
6051 +
6052 +    if (!enc_utf8 && output_conv.vc_type != CONV_NONE)
6053 +    {
6054 +        /* Convert characters from 'encoding' to 'termencoding', which is set
6055 +         * to UTF-8 by gui_mch_init().  did_set_string_option() in option.c
6056 +         * prohibits changing this to something else than UTF-8 if the GUI is
6057 +         * in use.
6058 +         */
6059 +        conv_buf = string_convert(&output_conv, s, &len);
6060 +        s = conv_buf;
6061 +    }
6062 +
6063 +    gdk_gc_set_exposures(gui.text_gc, gui.visibility != GDK_VISIBILITY_UNOBSCURED);
6064 +
6065 +    glyphs = pango_glyph_string_new();
6066 +
6067 +    /* Optimization hack:  If possible, skip the itemize and shaping process
6068 +     * for pure ASCII strings.  This optimization is particularly useful
6069 +     * because Vim draws space characters to clear parts of the screen.
6070 +     */
6071 +    if (!(flags & DRAW_ITALIC) && !((flags & DRAW_BOLD) && gui.font_can_bold)
6072 +        && gui.ascii_glyphs != NULL)
6073 +    {
6074 +        for (i = 0; i < len; ++i)
6075 +            if (s[i] & 0x80) goto not_ascii;
6076 +
6077 +        pango_glyph_string_set_size(glyphs, len);
6078 +
6079 +        for (i = 0; i < len; ++i)
6080 +        {
6081 +            glyphs->glyphs[i] = gui.ascii_glyphs->glyphs[s[i]];
6082 +            glyphs->log_clusters[i] = i;
6083 +        }
6084 +
6085 +        draw_glyph_string(row, col, len, flags, gui.ascii_font, glyphs);
6086 +
6087 +        item_offset = len;
6088 +    }
6089 +    else
6090 +    {
6091 +not_ascii:
6092 +        attr_list = pango_attr_list_new();
6093 +
6094 +        if ((flags & DRAW_BOLD) && gui.font_can_bold)
6095 +        {
6096 +            PangoAttribute *attribute;
6097 +
6098 +            attribute = pango_attr_weight_new(PANGO_WEIGHT_BOLD);
6099 +            attribute->start_index = 0;
6100 +            attribute->end_index = len;
6101 +
6102 +            pango_attr_list_insert(attr_list, attribute);
6103 +        }
6104 +
6105 +        if (flags & DRAW_ITALIC)
6106 +        {
6107 +            PangoAttribute *attribute;
6108 +
6109 +            attribute = pango_attr_style_new(PANGO_STYLE_ITALIC);
6110 +            attribute->start_index = 0;
6111 +            attribute->end_index = len;
6112 +
6113 +            pango_attr_list_insert(attr_list, attribute);
6114 +        }
6115 +
6116 +        /* Break the text into segments with consistent directional level
6117 +         * and shaping engine.  Pure Latin text needs only a single segment,
6118 +         * so there's no need to worry about the loop's efficiency.  Better
6119 +         * try to optimize elsewhere, e.g. reducing exposes and stuff :)
6120 +         */
6121 +        item_list = pango_itemize(gui.text_context, (const char *)s, 0, len, attr_list, NULL);
6122 +
6123 +        while (item_list != NULL)
6124 +        {
6125 +            PangoItem   *item;
6126 +            int         item_length = 0; /* item length in cells */
6127 +
6128 +            item = (PangoItem *)item_list->data;
6129 +            item_list = g_list_delete_link(item_list, item_list);
6130 +
6131 +            /* Increment the bidirectional embedding level by 1 if it is not even.
6132 +             * An odd number means the output will be RTL, but we don't want that
6133 +             * since Vim handles right-to-left text on its own.  It would probably
6134 +             * be sufficient to just set level = 0, but you can never know :)
6135 +             *
6136 +             * Unfortunately we can't take advantage of Pango's ability to render
6137 +             * both LTR and RTL at the same time.  In order to support that, Vim's
6138 +             * main screen engine would have to make use of Pango functionality.
6139 +             */
6140 +            item->analysis.level = (item->analysis.level + 1) & (~1U);
6141 +
6142 +            pango_shape((const char *)s + item->offset, item->length, &item->analysis, glyphs);
6143 +
6144 +            /* Fixed-width hack: iterate over the array and assign a fixed
6145 +             * width to each glyph, thus overriding the choice made by the
6146 +             * shaping engine.  We use utf_char2cells() to determine the
6147 +             * number of cells needed.
6148 +             */
6149 +            for (i = 0; i < glyphs->num_glyphs; ++i)
6150 +            {
6151 +                int cells;  /* cells occupied by glyph */
6152 +
6153 +                cells = utf_char2cells(utf_ptr2char(s + item->offset + glyphs->log_clusters[i]));
6154 +                glyphs->glyphs[i].geometry.width = cells * gui.char_width * PANGO_SCALE;
6155 +
6156 +                item_length += cells;
6157 +            }
6158 +
6159 +            draw_glyph_string(row, col + item_offset, item_length,
6160 +                              flags, item->analysis.font, glyphs);
6161 +
6162 +            pango_item_free(item);
6163 +
6164 +            item_offset += item_length;
6165 +        }
6166 +
6167 +        pango_attr_list_unref(attr_list);
6168 +    }
6169 +
6170 +    if (flags & DRAW_UNDERL)
6171 +       gdk_draw_line(gui.drawarea->window,
6172 +                     gui.text_gc,
6173 +                      FILL_X(col),
6174 +                      FILL_Y(row + 1) - 1,
6175 +                      FILL_X(col + item_offset) - 1,
6176 +                      FILL_Y(row + 1) - 1);
6177 +
6178 +    pango_glyph_string_free(glyphs);
6179 +    vim_free(conv_buf);
6180 +
6181 +#else /* !HAVE_GTK2 -- don't look at this too closely.  It hurts. */
6182 +
6183      static XChar2b     *buf = NULL;
6184      static int         buflen = 0;
6185      int                        is_wide;
6186 @@ -2935,9 +4299,9 @@ gui_mch_draw_string(int row, int col, ch
6187      int                        textlen;
6188      XFontStruct                *xfont;
6189      char_u             *p;
6190 -#ifdef FEAT_MBYTE
6191 +# ifdef FEAT_MBYTE
6192      unsigned           c;
6193 -#endif
6194 +# endif
6195      int                        width;
6196  
6197      if (gui.current_font == NULL || gui.drawarea->window == NULL)
6198 @@ -2947,17 +4311,19 @@ gui_mch_draw_string(int row, int col, ch
6199                                  gui.visibility != GDK_VISIBILITY_UNOBSCURED);
6200  
6201      /*
6202 -     * Yeah yeah apparently the font support in GTK+ only cares for either:
6203 +     * Yeah yeah apparently the font support in GTK+ 1.2 only cares for either:
6204       * asians or 8-bit fonts. It is broken there, but no wonder the whole font
6205       * stuff is broken in X11 in first place. And the internationalization API
6206       * isn't something you would really like to use.
6207       */
6208 +    
6209      xfont = (XFontStruct *)((GdkFontPrivate*)gui.current_font)->xfont;
6210      is_wide = ((xfont->min_byte1 != 0 || xfont->max_byte1 != 0)
6211 -#ifdef FEAT_XFONTSET
6212 +# ifdef FEAT_XFONTSET
6213             && gui.fontset == NOFONTSET
6214 -#endif
6215 +# endif
6216             );
6217 +
6218      if (is_wide)
6219      {
6220         /* Convert a byte sequence to 16 bit characters for the Gdk functions.
6221 @@ -2975,7 +4341,7 @@ gui_mch_draw_string(int row, int col, ch
6222         width = 0;
6223         while (p < s + len)
6224         {
6225 -#ifdef FEAT_MBYTE
6226 +# ifdef FEAT_MBYTE
6227             if (enc_utf8)
6228             {
6229                 c = utf_ptr2char(p);
6230 @@ -2987,7 +4353,7 @@ gui_mch_draw_string(int row, int col, ch
6231                 width += utf_char2cells(c);
6232             }
6233             else
6234 -#endif
6235 +# endif
6236             {
6237                 buf[textlen].byte1 = '\0';      /* high eight bits */
6238                 buf[textlen].byte2 = *p;        /* low eight bits */
6239 @@ -3003,7 +4369,7 @@ gui_mch_draw_string(int row, int col, ch
6240      {
6241         text = (XChar2b *)s;
6242         textlen = len;
6243 -#ifdef FEAT_MBYTE
6244 +# ifdef FEAT_MBYTE
6245         if (has_mbyte)
6246         {
6247             width = 0;
6248 @@ -3011,7 +4377,7 @@ gui_mch_draw_string(int row, int col, ch
6249                 width += (*mb_ptr2cells)(p);
6250         }
6251         else
6252 -#endif
6253 +# endif
6254             width = len;
6255      }
6256  
6257 @@ -3045,6 +4411,7 @@ gui_mch_draw_string(int row, int col, ch
6258                       gui.text_gc, FILL_X(col),
6259         FILL_Y(row + 1) - 1, FILL_X(col + width) - 1, FILL_Y(row + 1) - 1);
6260      }
6261 +#endif /* !HAVE_GTK2 */
6262  }
6263  
6264  /*
6265 @@ -3069,21 +4436,28 @@ gui_mch_haskey(char_u * name)
6266      int
6267  gui_get_x11_windis(Window * win, Display ** dis)
6268  {
6269 -    *dis = GDK_DISPLAY();
6270 -    if (gui.mainwin != NULL && gui.mainwin->window)
6271 +    if (gui.mainwin != NULL && gui.mainwin->window != NULL)
6272      {
6273 -       *win = GDK_WINDOW_XWINDOW(gui.mainwin->window);
6274 -       return OK;
6275 +        *dis = GET_X_DISPLAY();
6276 +        *win = GDK_WINDOW_XWINDOW(gui.mainwin->window);
6277 +        return OK;
6278      }
6279 +
6280 +    *dis = NULL;
6281      *win = 0;
6282      return FAIL;
6283  }
6284  #endif
6285  
6286      void
6287 -gui_mch_beep()
6288 +gui_mch_beep(void)
6289  {
6290 -    gdk_beep();
6291 +#ifdef GTK2_MULTIHEAD
6292 +    if (gui.mainwin && GTK_WIDGET_REALIZED(gui.mainwin))
6293 +        gdk_display_beep(gtk_widget_get_display(gui.mainwin));
6294 +    else
6295 +#endif
6296 +        gdk_beep();
6297  }
6298  
6299      void
6300 @@ -3122,8 +4496,9 @@ gui_mch_flash(int msec)
6301                        FILL_X((int)Columns) + gui.border_offset,
6302                        FILL_Y((int)Rows) + gui.border_offset);
6303  
6304 -    gdk_flush();
6305 +    XSync(GET_X_DISPLAY(), False);
6306      ui_delay((long)msec, TRUE);        /* wait so many msec */
6307 +
6308      gdk_draw_rectangle(gui.drawarea->window, invert_gc,
6309                        TRUE,
6310                        0, 0,
6311 @@ -3170,11 +4545,15 @@ gui_mch_invert_rectangle(int r, int c, i
6312   * Iconify the GUI window.
6313   */
6314      void
6315 -gui_mch_iconify()
6316 +gui_mch_iconify(void)
6317  {
6318 +#ifdef HAVE_GTK2
6319 +    gtk_window_iconify(GTK_WINDOW(gui.mainwin));
6320 +#else
6321      XIconifyWindow(GDK_DISPLAY(),
6322                    GDK_WINDOW_XWINDOW(gui.mainwin->window),
6323                    DefaultScreen(GDK_DISPLAY()));
6324 +#endif
6325  }
6326  
6327  #if defined(FEAT_EVAL) || defined(PROTO)
6328 @@ -3182,9 +4561,13 @@ gui_mch_iconify()
6329   * Bring the Vim window to the foreground.
6330   */
6331      void
6332 -gui_mch_set_foreground()
6333 +gui_mch_set_foreground(void)
6334  {
6335 +# ifdef HAVE_GTK2
6336 +    gtk_window_present(GTK_WINDOW(gui.mainwin));
6337 +# else
6338      gdk_window_raise(gui.mainwin->window);
6339 +# endif
6340  }
6341  #endif
6342  
6343 @@ -3248,7 +4631,7 @@ gui_mch_draw_part_cursor(int w, int h, g
6344   * immediately.
6345   */
6346      void
6347 -gui_mch_update()
6348 +gui_mch_update(void)
6349  {
6350      while (gtk_events_pending() && !vim_is_input_buf_full())
6351         gtk_main_iteration_do(FALSE);
6352 @@ -3378,9 +4761,13 @@ gui_mch_wait_for_chars(long wtime)
6353  
6354  /* Flush any output to the screen */
6355      void
6356 -gui_mch_flush()
6357 +gui_mch_flush(void)
6358  {
6359 -    gdk_flush();
6360 +    /* Note:  This used to call gdk_flush(), but gdk_flush() calls XSync()
6361 +     * not XFlush().  A full sync with the X server is absolutely unnecessary
6362 +     * overhead.  I'm not even sure the XFlush() is really necessary.
6363 +     */
6364 +    XFlush(GET_X_DISPLAY());
6365  }
6366  
6367  /*
6368 @@ -3427,26 +4814,30 @@ check_copy_area(void)
6369  {
6370      XEvent event;
6371      XGraphicsExposeEvent *gevent;
6372 +    Display* xdisplay;
6373  
6374      if (gui.visibility != GDK_VISIBILITY_PARTIAL)
6375         return;
6376  
6377 -    gdk_flush();
6378 +    xdisplay = GET_X_DISPLAY();
6379 +
6380 +    XFlush(xdisplay);
6381  
6382      /* Wait to check whether the scroll worked or not. */
6383      for (;;)
6384      {
6385 -       if (XCheckTypedEvent(GDK_DISPLAY(), NoExpose, &event))
6386 +       if (XCheckTypedEvent(xdisplay, NoExpose, &event))
6387             return;             /* The scroll worked. */
6388  
6389 -       if (XCheckTypedEvent(GDK_DISPLAY(), GraphicsExpose, &event))
6390 +       if (XCheckTypedEvent(xdisplay, GraphicsExpose, &event))
6391         {
6392 -           gevent = (XGraphicsExposeEvent *) & event;
6393 +           gevent = (XGraphicsExposeEvent *) &event;
6394             gui_redraw(gevent->x, gevent->y, gevent->width, gevent->height);
6395             if (gevent->count == 0)
6396                 return;         /* This was the last expose event */
6397         }
6398 -       gdk_flush();
6399 +
6400 +       XSync(xdisplay, False);
6401      }
6402  }
6403  
6404 @@ -3514,8 +4905,7 @@ gui_mch_insert_lines(int row, int num_li
6405   * X Selection stuff, for cutting and pasting text to other windows.
6406   */
6407      void
6408 -clip_mch_request_selection(cbd)
6409 -    VimClipboard *cbd;
6410 +clip_mch_request_selection(VimClipboard *cbd)
6411  {
6412      /* First try to get the content of our own special clipboard. */
6413      received_selection = RS_NONE;
6414 @@ -3561,7 +4951,7 @@ clip_mch_request_selection(cbd)
6415         int     nbytes = 0;
6416         char_u *buffer;
6417  
6418 -       buffer = (char_u *)XFetchBuffer(gui.dpy, &nbytes, 0);
6419 +       buffer = (char_u *)XFetchBuffer(GET_X_DISPLAY(), &nbytes, 0);
6420         if (nbytes > 0)
6421         {
6422             /* Got something */
6423 @@ -3578,8 +4968,7 @@ clip_mch_request_selection(cbd)
6424   */
6425  /*ARGSUSED*/
6426      void
6427 -clip_mch_lose_selection(cbd)
6428 -    VimClipboard *cbd;
6429 +clip_mch_lose_selection(VimClipboard *cbd)
6430  {
6431      /* WEIRD: when using NULL to actually disown the selection, we lose the
6432       * selection the first time we own it. */
6433 @@ -3593,8 +4982,7 @@ clip_mch_lose_selection(cbd)
6434   * Own the selection and return OK if it worked.
6435   */
6436      int
6437 -clip_mch_own_selection(cbd)
6438 -    VimClipboard *cbd;
6439 +clip_mch_own_selection(VimClipboard *cbd)
6440  {
6441      int r;
6442  
6443 @@ -3612,8 +5000,7 @@ clip_mch_own_selection(cbd)
6444   */
6445  /*ARGSUSED*/
6446      void
6447 -clip_mch_set_selection(cbd)
6448 -    VimClipboard* cbd;
6449 +clip_mch_set_selection(VimClipboard *cbd)
6450  {
6451  }
6452  
6453 @@ -3671,7 +5058,7 @@ gui_mch_menu_hidden(vimmenu_T *menu, int
6454   * This is called after setting all the menus to grey/hidden or not.
6455   */
6456      void
6457 -gui_mch_draw_menubar()
6458 +gui_mch_draw_menubar(void)
6459  {
6460      /* just make sure that the visual changes get effect immediately */
6461      gui_mch_update();
6462 @@ -3684,12 +5071,14 @@ gui_mch_draw_menubar()
6463      void
6464  gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
6465  {
6466 -    if (sb->id == 0)
6467 +    if (sb->id == NULL)
6468         return;
6469 +
6470      if (flag)
6471         gtk_widget_show(sb->id);
6472      else
6473         gtk_widget_hide(sb->id);
6474 +
6475      update_window_manager_hints();
6476  }
6477  
6478 @@ -3700,20 +5089,31 @@ gui_mch_enable_scrollbar(scrollbar_T *sb
6479      long_u
6480  gui_mch_get_rgb(guicolor_T pixel)
6481  {
6482 -    GdkVisual          *visual;
6483 -    GdkColormap                *cmap;
6484 -    GdkColorContext    *cc;
6485 -    GdkColor           c;
6486 +    GdkColormap     *cmap;
6487 +    GdkColor         color = { 0, };
6488  
6489 -    visual = gtk_widget_get_visual(gui.mainwin);
6490      cmap = gtk_widget_get_colormap(gui.mainwin);
6491 -    cc = gdk_color_context_new(visual, cmap);
6492  
6493 -    c.pixel = pixel;
6494 -    gdk_color_context_query_color(cc, &c);
6495 +#ifdef HAVE_GTK2
6496 +    gdk_colormap_query_color(cmap, pixel, &color);
6497 +#else
6498 +    {
6499 +        GdkVisual       *visual;
6500 +        GdkColorContext *cc;
6501 +
6502 +        visual = gtk_widget_get_visual(gui.mainwin);
6503 +        cc = gdk_color_context_new(visual, cmap);
6504  
6505 -    return ((c.red & 0xff00) << 8) + (c.green & 0xff00)
6506 -                                                   + ((unsigned)c.blue >> 8);
6507 +        color.pixel = pixel;
6508 +        gdk_color_context_query_color(cc, &color);
6509 +
6510 +        gdk_color_context_free(cc);
6511 +    }
6512 +#endif
6513 +
6514 +    return ((color.red   & 0xff00) << 8) |
6515 +            (color.green & 0xff00)       |
6516 +           ((color.blue  & 0xff00) >> 8);
6517  }
6518  
6519  /*
6520 @@ -3744,10 +5144,11 @@ gui_mch_get_mouse_y(void)
6521  gui_mch_setmouse(int x, int y)
6522  {
6523      /* Sorry for the Xlib call, but we can't avoid it, since there is no
6524 -     * internal GDK mechanism present to accomplish this.
6525 +     * internal GDK mechanism present to accomplish this.  (and for good
6526 +     * reason...)
6527       */
6528 -    XWarpPointer(GDK_DISPLAY(), (Window) 0,
6529 -                 GDK_WINDOW_XWINDOW(gui.drawarea->window), 0, 0, 0, 0, x, y);
6530 +    XWarpPointer(GET_X_DISPLAY(), (Window) 0,
6531 +                 GDK_WINDOW_XWINDOW(gui.drawarea->window), 0, 0, 0, 0, x, y);
6532  }
6533  
6534  #ifdef FEAT_MOUSESHAPE
6535 @@ -3785,7 +5186,7 @@ gui_mch_mousehide(int hide)
6536  
6537  /* Table for shape IDs.  Keep in sync with the mshape_names[] table in
6538   * misc2.c! */
6539 -static int mshape_ids[] =
6540 +static const int mshape_ids[] =
6541  {
6542      GDK_LEFT_PTR,              /* arrow */
6543      0,                         /* blank */
6544 @@ -3807,8 +5208,7 @@ static int mshape_ids[] =
6545  };
6546  
6547      void
6548 -mch_set_mouse_shape(shape)
6549 -    int        shape;
6550 +mch_set_mouse_shape(int shape)
6551  {
6552      int                   id;
6553      GdkCursor     *c;
6554 @@ -3823,7 +5223,11 @@ mch_set_mouse_shape(shape)
6555         if (shape >= MSHAPE_NUMBERED)
6556         {
6557             id = shape - MSHAPE_NUMBERED;
6558 +# ifdef HAVE_GTK2
6559 +           if (id >= GDK_LAST_CURSOR)
6560 +# else
6561             if (id >= GDK_NUM_GLYPHS)
6562 +# endif
6563                 id = GDK_LEFT_PTR;
6564             else
6565                 id &= ~1;       /* they are always even (why?) */
6566 @@ -3838,4 +5242,5 @@ mch_set_mouse_shape(shape)
6567      if (shape != MSHAPE_HIDE)
6568         last_shape = shape;
6569  }
6570 -#endif
6571 +#endif /* FEAT_MOUSESHAPE */
6572 +
6573 Index: src/mbyte.c
6574 ===================================================================
6575 RCS file: /cvsroot/vim/vim/src/mbyte.c,v
6576 retrieving revision 1.47
6577 diff -u -3 -p -r1.47 mbyte.c
6578 --- src/mbyte.c 29 Oct 2002 05:15:53 -0000      1.47
6579 +++ src/mbyte.c 6 Feb 2003 17:52:33 -0000
6580 @@ -65,6 +65,8 @@
6581   *     'encoding'.  If this is not sufficient, system-specific conversion
6582   *     might be required.
6583   * (3) For the GUI the correct font must be selected, no conversion done.
6584 + *     (No longer true for the GTK2 port -- 'termencoding' is used and must
6585 + *     always be set to UTF-8.  gui_mch_init_check() does this automatically.)
6586   *     Otherwise, conversion is to be done when 'encoding' differs from
6587   *     'termencoding'.
6588   * (4) The encoding of the file is specified with 'fileencoding'.  Conversion
6589 @@ -588,7 +590,7 @@ codepage_invalid:
6590      /* GNU gettext 0.10.37 supports this feature: set the codeset used for
6591       * translated messages independently from the current locale. */
6592      (void)bind_textdomain_codeset(VIMPACKAGE,
6593 -                                         enc_utf8 ? "utf-8" : (char *)p_enc);
6594 +                                         enc_utf8 ? "UTF-8" : (char *)p_enc);
6595  #endif
6596  
6597  #ifdef FEAT_AUTOCMD
6598 @@ -2723,6 +2725,172 @@ iconv_end()
6599  
6600  #if defined(FEAT_XIM) || defined(PROTO)
6601  
6602 +#ifdef HAVE_GTK2
6603 +
6604 +static int ic_preediting = FALSE;
6605 +static int ic_pos = 0;
6606 +
6607 +    void
6608 +im_set_active(active)
6609 +    int                active;
6610 +{
6611 +    if (xic)
6612 +    {
6613 +       if (active)
6614 +           gtk_im_context_set_client_window(xic, gui.mainwin->window);
6615 +       else
6616 +           gtk_im_context_set_client_window(xic, NULL);
6617 +       ic_preediting = active;
6618 +    }
6619 +}
6620 +
6621 +    void
6622 +xim_set_focus(focus)
6623 +    int                focus;
6624 +{
6625 +    if (xic)
6626 +    {
6627 +       if (focus)
6628 +           gtk_im_context_focus_in(xic);
6629 +       else
6630 +           gtk_im_context_focus_out(xic);
6631 +    }
6632 +}
6633 +
6634 +    void
6635 +im_set_position(row, col)
6636 +    int                row;
6637 +    int                col;
6638 +{
6639 +    /*
6640 +    gtk_im_context_set_cursor_location (GtkIMContext   *context,
6641 +                                       GdkRectangle   *area);
6642 +    */
6643 +}
6644 +
6645 +    void
6646 +xim_set_preedit()
6647 +{
6648 +}
6649 +
6650 +    void
6651 +xim_set_status_area()
6652 +{
6653 +}
6654 +
6655 +    static void
6656 +xim_done()
6657 +{
6658 +    gui_update_cursor(TRUE, FALSE);
6659 +    if (showmode() > 0)
6660 +    {
6661 +       setcursor();
6662 +       out_flush();
6663 +    }
6664 +}
6665 +
6666 +    static void
6667 +xim_back_delete(int n)
6668 +{
6669 +    char_u str[3];
6670 +
6671 +    str[0] = CSI;
6672 +    str[1] = 'k';
6673 +    str[2] = 'b';
6674 +    for (; n > 0; n -= 2);
6675 +       add_to_input_buf(str, 3);
6676 +}
6677 +
6678 +
6679 +    static void
6680 +im_commit_cb(GtkIMContext *context, const gchar *str)
6681 +{
6682 +    char *p = NULL;
6683 +
6684 +    if (g_utf8_validate(str, -1, NULL) == TRUE)
6685 +       p = g_locale_from_utf8(str, -1, NULL, NULL, NULL);
6686 +    if (p == NULL)
6687 +       p = (char *) str;
6688 +
6689 +    if (ic_pos > 0)
6690 +    {
6691 +       xim_back_delete(ic_pos);
6692 +       ic_pos = 0;
6693 +    }
6694 +
6695 +    add_to_input_buf((char_u *)p, strlen(p));
6696 +
6697 +    if (p != str)
6698 +       g_free(p);
6699 +
6700 +    xim_done();
6701 +
6702 +    if (gtk_main_level() > 0)
6703 +       gtk_main_quit();
6704 +}
6705 +
6706 +    static void
6707 +im_preedit_changed_cb(GtkIMContext *context)
6708 +{
6709 +    gchar *preedit_string, *p;
6710 +    gint cursor_pos;
6711 +
6712 +    gtk_im_context_get_preedit_string(context, &preedit_string, NULL,
6713 +                                     &cursor_pos);
6714 +
6715 +    im_commit_cb(context, preedit_string);
6716 +    ic_pos = cursor_pos;
6717 +}
6718 +
6719 +    void
6720 +xim_init()
6721 +{
6722 +    xic = gtk_im_multicontext_new();
6723 +    if (xic != NULL)
6724 +    {
6725 +       g_signal_connect(G_OBJECT(xic), "commit",
6726 +                        G_CALLBACK(im_commit_cb), NULL);
6727 +       g_signal_connect(G_OBJECT(xic), "preedit_changed",
6728 +                        G_CALLBACK(im_preedit_changed_cb), NULL);
6729 +    }
6730 +}
6731 +
6732 +void
6733 +xim_decide_input_style()
6734 +{
6735 +}
6736 +
6737 +    void
6738 +xim_reset(void)
6739 +{
6740 +    gtk_im_context_reset(xic);
6741 +}
6742 +
6743 +    int
6744 +xim_queue_key_press_event(GdkEvent *ev)
6745 +{
6746 +    return gtk_im_context_filter_keypress(xic, (GdkEventKey *) ev);
6747 +}
6748 +
6749 +    int
6750 +xim_get_status_area_height()
6751 +{
6752 +    return 0;
6753 +}
6754 +
6755 +    int
6756 +im_get_status()
6757 +{
6758 +    return ic_preediting;
6759 +}
6760 +
6761 +    int
6762 +im_xim_isvalid_imactivate()
6763 +{
6764 +    return TRUE;
6765 +}
6766 +
6767 +#else
6768  static int     xim_is_active = FALSE;  /* XIM should be active in the current
6769                                            mode */
6770  static int     xim_has_focus = FALSE;  /* XIM is really being used for Vim */
6771 @@ -4051,6 +4219,7 @@ im_get_status()
6772      return xim_has_focus;
6773  }
6774  
6775 +#endif
6776  #endif /* FEAT_XIM */
6777  
6778  #if defined(FEAT_MBYTE) || defined(PROTO)
6779 Index: src/menu.c
6780 ===================================================================
6781 RCS file: /cvsroot/vim/vim/src/menu.c,v
6782 retrieving revision 1.42
6783 diff -u -3 -p -r1.42 menu.c
6784 --- src/menu.c  14 Oct 2002 23:24:25 -0000      1.42
6785 +++ src/menu.c  6 Feb 2003 17:52:34 -0000
6786 @@ -764,7 +764,7 @@ add_menu_path(menu_path, menuarg, pri_ta
6787                 menu->silent[i] = menuarg->silent[0];
6788             }
6789         }
6790 -#if defined(FEAT_TOOLBAR) && defined(FEAT_BEVAL)
6791 +#if defined(FEAT_TOOLBAR) && (defined(FEAT_BEVAL) || defined(HAVE_GTK2))
6792         /* Need to update the menu tip. */
6793         if (modes & MENU_TIP_MODE)
6794             gui_mch_menu_set_tip(menu);
6795 @@ -942,7 +942,7 @@ remove_menu(menup, name, modes, silent)
6796         if (modes & MENU_TIP_MODE)
6797         {
6798             free_menu_string(menu, MENU_INDEX_TIP);
6799 -#if defined(FEAT_TOOLBAR) && defined(FEAT_BEVAL)
6800 +#if defined(FEAT_TOOLBAR) && (defined(FEAT_BEVAL) || defined(HAVE_GTK2))
6801             /* Need to update the menu tip. */
6802             if (gui.in_use)
6803                 gui_mch_menu_set_tip(menu);
6804 Index: src/option.c
6805 ===================================================================
6806 RCS file: /cvsroot/vim/vim/src/option.c,v
6807 retrieving revision 1.93
6808 diff -u -3 -p -r1.93 option.c
6809 --- src/option.c        21 Jan 2003 00:00:55 -0000      1.93
6810 +++ src/option.c        6 Feb 2003 17:52:37 -0000
6811 @@ -950,7 +950,7 @@ static struct vimoption
6812  #endif
6813                                     },
6814      {"guifontwide", "gfw",  P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP,
6815 -#if defined(FEAT_GUI) && defined(FEAT_MBYTE)
6816 +#if defined(FEAT_GUI) && defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
6817                             (char_u *)&p_guifontwide, PV_NONE,
6818                             {(char_u *)"", (char_u *)0L}
6819  #else
6820 @@ -4538,6 +4538,15 @@ did_set_string_option(opt_idx, varp, new
6821             }
6822         }
6823  
6824 +# if defined(FEAT_GUI_GTK) && defined(HAVE_GTK2)
6825 +        if (errmsg == NULL && varp == &p_tenc && gui.in_use)
6826 +        {
6827 +            /* GTK+ 2 uses only a single encoding, and that is UTF-8. */
6828 +            if (STRCMP(p_tenc, "utf-8") != 0)
6829 +               errmsg = (char_u *)N_("Cannot change 'termencoding' in GTK+ 2 GUI");
6830 +        }
6831 +# endif
6832 +
6833         if (errmsg == NULL)
6834         {
6835  # ifdef FEAT_KEYMAP
6836 @@ -4815,25 +4824,25 @@ did_set_string_option(opt_idx, varp, new
6837      {
6838         if (gui.in_use)
6839         {
6840 +            p = p_guifont;
6841  # ifdef FEAT_GUI_GTK
6842 -           if (STRCMP(p_guifont, "*") == 0)
6843 -           {
6844 -               /*
6845 -                * Put up a font dialog and let the user select a new value.
6846 -                * If this is cancelled go back to the old value but don't
6847 -                * give an error message.
6848 -                */
6849 -               p = gui_mch_font_dialog(oldval);
6850 -               if (p != NULL)
6851 -               {
6852 -                   free_string_option(p_guifont);
6853 -                   p_guifont = p;
6854 -               }
6855 -               else
6856 -                   errmsg = (char_u *)"";
6857 -           }
6858 +            /*
6859 +             * Put up a font dialog and let the user select a new value.
6860 +             * If this is cancelled go back to the old value but don't
6861 +             * give an error message.
6862 +             */
6863 +            if (STRCMP(p, "*") == 0)
6864 +           {
6865 +                p = gui_mch_font_dialog(oldval);
6866 +
6867 +                if (new_value_alloced)
6868 +                    free_string_option(p_guifont);
6869 +
6870 +                p_guifont = (p != NULL) ? p : vim_strsave(oldval);
6871 +                new_value_alloced = TRUE;
6872 +            }
6873  # endif
6874 -           if (errmsg == NULL && gui_init_font(p_guifont, FALSE) != OK)
6875 +           if (p != NULL && gui_init_font(p_guifont, FALSE) != OK)
6876             {
6877  # if defined(FEAT_GUI_MSWIN) || defined(FEAT_GUI_PHOTON)
6878                 if (STRCMP(p_guifont, "*") == 0)
6879 @@ -4860,7 +4869,7 @@ did_set_string_option(opt_idx, varp, new
6880             errmsg = (char_u *)N_("Invalid fontset");
6881      }
6882  # endif
6883 -# ifdef FEAT_MBYTE
6884 +# if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
6885      else if (varp == &p_guifontwide)
6886      {
6887         if (STRCMP(p_guifontwide, "*") == 0)
6888 Index: src/option.h
6889 ===================================================================
6890 RCS file: /cvsroot/vim/vim/src/option.h,v
6891 retrieving revision 1.43
6892 diff -u -3 -p -r1.43 option.h
6893 --- src/option.h        14 Oct 2002 17:31:34 -0000      1.43
6894 +++ src/option.h        6 Feb 2003 17:52:37 -0000
6895 @@ -432,7 +432,7 @@ EXTERN char_u       *p_guifont;     /* 'guifont' *
6896  # ifdef FEAT_XFONTSET
6897  EXTERN char_u  *p_guifontset;  /* 'guifontset' */
6898  # endif
6899 -# ifdef FEAT_MBYTE
6900 +# if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
6901  EXTERN char_u  *p_guifontwide; /* 'guifontwide' */
6902  # endif
6903  EXTERN int     p_guipty;       /* 'guipty' */
6904 Index: src/os_unix.c
6905 ===================================================================
6906 RCS file: /cvsroot/vim/vim/src/os_unix.c,v
6907 retrieving revision 1.72
6908 diff -u -3 -p -r1.72 os_unix.c
6909 --- src/os_unix.c       3 Feb 2003 18:25:42 -0000       1.72
6910 +++ src/os_unix.c       6 Feb 2003 17:52:39 -0000
6911 @@ -105,7 +105,9 @@ Display         *x11_display = NULL;
6912  
6913  # ifdef FEAT_TITLE
6914  static int  get_x11_windis __ARGS((void));
6915 +#  ifndef HAVE_GTK2
6916  static void set_x11_title __ARGS((char_u *));
6917 +#  endif
6918  static void set_x11_icon __ARGS((char_u *));
6919  # endif
6920  #endif
6921 @@ -1245,11 +1247,6 @@ static int get_x11_thing __ARGS((int get
6922   * try to get x11 window and display
6923   *
6924   * return FAIL for failure, OK otherwise
6925 - *
6926 - * FIXME:
6927 - * This code is responsible for setting the window manager name of the
6928 - * editor's window. We should provide a special version of this for usage with
6929 - * the GTK+ widget set, which wouldn't use any direct x11 calls. (--mdcki)
6930   */
6931      static int
6932  get_x11_windis()
6933 @@ -1532,6 +1529,7 @@ get_x11_thing(get_title, test_only)
6934      return retval;
6935  }
6936  
6937 +#ifndef HAVE_GTK2
6938  /*
6939   * Set x11 Window Title
6940   *
6941 @@ -1541,7 +1539,7 @@ get_x11_thing(get_title, test_only)
6942  set_x11_title(title)
6943      char_u     *title;
6944  {
6945 -#if XtSpecificationRelease >= 4
6946 +# if XtSpecificationRelease >= 4
6947      XTextProperty text_prop;
6948  
6949      text_prop.value = title;
6950 @@ -1549,11 +1547,12 @@ set_x11_title(title)
6951      text_prop.encoding = XA_STRING;
6952      text_prop.format = 8;
6953      XSetWMName(x11_display, x11_window, &text_prop);
6954 -#else
6955 +# else
6956      XStoreName(x11_display, x11_window, (char *)title);
6957 -#endif
6958 +# endif
6959      XFlush(x11_display);
6960  }
6961 +#endif
6962  
6963  /*
6964   * Set x11 Window icon
6965 @@ -1672,14 +1671,12 @@ mch_settitle(title, icon)
6966  
6967         if (*T_TS != NUL)               /* it's OK if t_fs is empty */
6968             term_settitle(title);
6969 -#ifdef FEAT_X11
6970 +#if defined(FEAT_X11) && !defined(FEAT_GUI_GTK)
6971         else
6972             set_x11_title(title);               /* x11 */
6973 -#else
6974 -# if defined(FEAT_GUI_BEOS) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC)
6975 +#elif defined(FEAT_GUI_BEOS) || defined(FEAT_GUI_PHOTON) || defined(FEAT_GUI_MAC) || defined(FEAT_GUI_GTK)
6976         else
6977             gui_mch_settitle(title, icon);
6978 -# endif
6979  #endif
6980         did_set_title = TRUE;
6981      }
6982 Index: src/screen.c
6983 ===================================================================
6984 RCS file: /cvsroot/vim/vim/src/screen.c,v
6985 retrieving revision 1.94
6986 diff -u -3 -p -r1.94 screen.c
6987 --- src/screen.c        29 Jan 2003 16:51:51 -0000      1.94
6988 +++ src/screen.c        6 Feb 2003 17:52:41 -0000
6989 @@ -3545,7 +3545,7 @@ win_line(wp, lnum, startrow, endrow)
6990                 && (search_attr == 0 || char_attr != search_attr))
6991             char_attr = extra_attr;
6992  
6993 -#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
6994 +#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) && !defined(HAVE_GTK2)
6995         if (xic != NULL
6996                 && lnum == curwin->w_cursor.lnum
6997                 && State == INSERT
6998 Index: src/syntax.c
6999 ===================================================================
7000 RCS file: /cvsroot/vim/vim/src/syntax.c,v
7001 retrieving revision 1.68
7002 diff -u -3 -p -r1.68 syntax.c
7003 --- src/syntax.c        14 Oct 2002 17:31:35 -0000      1.68
7004 +++ src/syntax.c        6 Feb 2003 17:52:44 -0000
7005 @@ -8371,9 +8371,11 @@ free_highlight_fonts()
7006  # ifdef FEAT_XFONTSET
7007      gui_mch_free_fontset(gui.fontset);
7008  # endif
7009 +# ifndef HAVE_GTK2
7010      gui_mch_free_font(gui.bold_font);
7011      gui_mch_free_font(gui.ital_font);
7012      gui_mch_free_font(gui.boldital_font);
7013 +# endif
7014  }
7015  #endif
7016  
7017 Index: src/auto/configure
7018 ===================================================================
7019 RCS file: /cvsroot/vim/vim/src/auto/configure,v
7020 retrieving revision 1.56
7021 diff -u -3 -p -r1.56 configure
7022 --- src/auto/configure  6 Jan 2003 21:11:43 -0000       1.56
7023 +++ src/auto/configure  6 Feb 2003 17:52:46 -0000
7024 @@ -60,6 +60,8 @@ ac_help="$ac_help
7025  ac_help="$ac_help
7026    --enable-gnome-check    If GTK GUI, check for GNOME [default=no]"
7027  ac_help="$ac_help
7028 +  --enable-gtk2-check     If GTK GUI, check for GTK2 (experimental) [default=no]"
7029 +ac_help="$ac_help
7030    --enable-motif-check    If auto-select GUI, check for Motif [default=yes]"
7031  ac_help="$ac_help
7032    --enable-athena-check   If auto-select GUI, check for Athena [default=yes]"
7033 @@ -485,7 +487,7 @@ if test "$silent" = yes; then
7034  else
7035    exec 6>&1
7036  fi
7037 -exec 5>auto/config.log
7038 +exec 5>./config.log
7039  
7040  echo "\
7041  This file contains any messages produced by compilers while
7042 @@ -602,7 +604,7 @@ cat >> confdefs.h <<\EOF
7043  EOF
7044  
7045  echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
7046 -echo "configure:604: checking whether ${MAKE-make} sets \${MAKE}" >&5
7047 +echo "configure:608: checking whether ${MAKE-make} sets \${MAKE}" >&5
7048  set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
7049  if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
7050    echo $ac_n "(cached) $ac_c" 1>&6
7051 @@ -632,7 +634,7 @@ fi
7052  # Extract the first word of "gcc", so it can be a program name with args.
7053  set dummy gcc; ac_word=$2
7054  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7055 -echo "configure:634: checking for $ac_word" >&5
7056 +echo "configure:638: checking for $ac_word" >&5
7057  if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
7058    echo $ac_n "(cached) $ac_c" 1>&6
7059  else
7060 @@ -662,7 +664,7 @@ if test -z "$CC"; then
7061    # Extract the first word of "cc", so it can be a program name with args.
7062  set dummy cc; ac_word=$2
7063  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7064 -echo "configure:664: checking for $ac_word" >&5
7065 +echo "configure:668: checking for $ac_word" >&5
7066  if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
7067    echo $ac_n "(cached) $ac_c" 1>&6
7068  else
7069 @@ -713,7 +715,7 @@ fi
7070        # Extract the first word of "cl", so it can be a program name with args.
7071  set dummy cl; ac_word=$2
7072  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7073 -echo "configure:715: checking for $ac_word" >&5
7074 +echo "configure:719: checking for $ac_word" >&5
7075  if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
7076    echo $ac_n "(cached) $ac_c" 1>&6
7077  else
7078 @@ -745,7 +747,7 @@ fi
7079  fi
7080  
7081  echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
7082 -echo "configure:747: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
7083 +echo "configure:751: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
7084  
7085  ac_ext=c
7086  # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
7087 @@ -756,12 +758,12 @@ cross_compiling=$ac_cv_prog_cc_cross
7088  
7089  cat > conftest.$ac_ext << EOF
7090  
7091 -#line 758 "configure"
7092 +#line 762 "configure"
7093  #include "confdefs.h"
7094  
7095  main(){return(0);}
7096  EOF
7097 -if { (eval echo configure:763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7098 +if { (eval echo configure:767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7099    ac_cv_prog_cc_works=yes
7100    # If we can't run a trivial program, we are probably using a cross compiler.
7101    if (./conftest; exit) 2>/dev/null; then
7102 @@ -787,12 +789,12 @@ if test $ac_cv_prog_cc_works = no; then
7103    { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
7104  fi
7105  echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
7106 -echo "configure:789: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
7107 +echo "configure:793: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
7108  echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
7109  cross_compiling=$ac_cv_prog_cc_cross
7110  
7111  echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
7112 -echo "configure:794: checking whether we are using GNU C" >&5
7113 +echo "configure:798: checking whether we are using GNU C" >&5
7114  if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
7115    echo $ac_n "(cached) $ac_c" 1>&6
7116  else
7117 @@ -801,7 +803,7 @@ else
7118    yes;
7119  #endif
7120  EOF
7121 -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:803: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
7122 +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:807: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
7123    ac_cv_prog_gcc=yes
7124  else
7125    ac_cv_prog_gcc=no
7126 @@ -820,7 +822,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
7127  ac_save_CFLAGS="$CFLAGS"
7128  CFLAGS=
7129  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
7130 -echo "configure:822: checking whether ${CC-cc} accepts -g" >&5
7131 +echo "configure:826: checking whether ${CC-cc} accepts -g" >&5
7132  if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
7133    echo $ac_n "(cached) $ac_c" 1>&6
7134  else
7135 @@ -851,7 +853,7 @@ else
7136    fi
7137  fi
7138         echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
7139 -echo "configure:853: checking how to run the C preprocessor" >&5
7140 +echo "configure:857: checking how to run the C preprocessor" >&5
7141  # On Suns, sometimes $CPP names a directory.
7142  if test -n "$CPP" && test -d "$CPP"; then
7143    CPP=
7144 @@ -866,13 +868,13 @@ else
7145    # On the NeXT, cc -E runs the code through the compiler's parser,
7146    # not just through cpp.
7147    cat > conftest.$ac_ext <<EOF
7148 -#line 868 "configure"
7149 +#line 872 "configure"
7150  #include "confdefs.h"
7151  #include <assert.h>
7152  Syntax Error
7153  EOF
7154  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
7155 -{ (eval echo configure:874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
7156 +{ (eval echo configure:878: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
7157  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
7158  if test -z "$ac_err"; then
7159    :
7160 @@ -883,13 +885,13 @@ else
7161    rm -rf conftest*
7162    CPP="${CC-cc} -E -traditional-cpp"
7163    cat > conftest.$ac_ext <<EOF
7164 -#line 885 "configure"
7165 +#line 889 "configure"
7166  #include "confdefs.h"
7167  #include <assert.h>
7168  Syntax Error
7169  EOF
7170  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
7171 -{ (eval echo configure:891: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
7172 +{ (eval echo configure:895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
7173  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
7174  if test -z "$ac_err"; then
7175    :
7176 @@ -900,13 +902,13 @@ else
7177    rm -rf conftest*
7178    CPP="${CC-cc} -nologo -E"
7179    cat > conftest.$ac_ext <<EOF
7180 -#line 902 "configure"
7181 +#line 906 "configure"
7182  #include "confdefs.h"
7183  #include <assert.h>
7184  Syntax Error
7185  EOF
7186  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
7187 -{ (eval echo configure:908: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
7188 +{ (eval echo configure:912: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
7189  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
7190  if test -z "$ac_err"; then
7191    :
7192 @@ -930,7 +932,7 @@ else
7193  fi
7194  echo "$ac_t""$CPP" 1>&6
7195         echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
7196 -echo "configure:932: checking for POSIXized ISC" >&5
7197 +echo "configure:936: checking for POSIXized ISC" >&5
7198  if test -d /etc/conf/kconfig.d &&
7199    grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
7200  then
7201 @@ -954,7 +956,7 @@ do
7202  # Extract the first word of "$ac_prog", so it can be a program name with args.
7203  set dummy $ac_prog; ac_word=$2
7204  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7205 -echo "configure:956: checking for $ac_word" >&5
7206 +echo "configure:960: checking for $ac_word" >&5
7207  if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
7208    echo $ac_n "(cached) $ac_c" 1>&6
7209  else
7210 @@ -986,7 +988,7 @@ done
7211  # Extract the first word of "strip", so it can be a program name with args.
7212  set dummy strip; ac_word=$2
7213  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7214 -echo "configure:988: checking for $ac_word" >&5
7215 +echo "configure:992: checking for $ac_word" >&5
7216  if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
7217    echo $ac_n "(cached) $ac_c" 1>&6
7218  else
7219 @@ -1015,12 +1017,12 @@ fi
7220  
7221  
7222  echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
7223 -echo "configure:1017: checking for Cygwin environment" >&5
7224 +echo "configure:1021: checking for Cygwin environment" >&5
7225  if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
7226    echo $ac_n "(cached) $ac_c" 1>&6
7227  else
7228    cat > conftest.$ac_ext <<EOF
7229 -#line 1022 "configure"
7230 +#line 1026 "configure"
7231  #include "confdefs.h"
7232  
7233  int main() {
7234 @@ -1031,7 +1033,7 @@ int main() {
7235  return __CYGWIN__;
7236  ; return 0; }
7237  EOF
7238 -if { (eval echo configure:1033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
7239 +if { (eval echo configure:1037: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
7240    rm -rf conftest*
7241    ac_cv_cygwin=yes
7242  else
7243 @@ -1048,19 +1050,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
7244  CYGWIN=
7245  test "$ac_cv_cygwin" = yes && CYGWIN=yes
7246  echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
7247 -echo "configure:1050: checking for mingw32 environment" >&5
7248 +echo "configure:1054: checking for mingw32 environment" >&5
7249  if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
7250    echo $ac_n "(cached) $ac_c" 1>&6
7251  else
7252    cat > conftest.$ac_ext <<EOF
7253 -#line 1055 "configure"
7254 +#line 1059 "configure"
7255  #include "confdefs.h"
7256  
7257  int main() {
7258  return __MINGW32__;
7259  ; return 0; }
7260  EOF
7261 -if { (eval echo configure:1062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
7262 +if { (eval echo configure:1066: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
7263    rm -rf conftest*
7264    ac_cv_mingw32=yes
7265  else
7266 @@ -1079,7 +1081,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=y
7267  
7268  
7269  echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
7270 -echo "configure:1081: checking for executable suffix" >&5
7271 +echo "configure:1085: checking for executable suffix" >&5
7272  if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
7273    echo $ac_n "(cached) $ac_c" 1>&6
7274  else
7275 @@ -1089,7 +1091,7 @@ else
7276    rm -f conftest*
7277    echo 'int main () { return 0; }' > conftest.$ac_ext
7278    ac_cv_exeext=
7279 -  if { (eval echo configure:1091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
7280 +  if { (eval echo configure:1095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
7281      for file in conftest.*; do
7282        case $file in
7283        *.c | *.o | *.obj) ;;
7284 @@ -1136,14 +1138,14 @@ test "$GCC" = yes && CPP_MM=M; 
7285  
7286  if test -f ./toolcheck; then
7287    echo "checking for buggy tools" 1>&6
7288 -echo "configure:1133: checking for buggy tools" >&5
7289 +echo "configure:1142: checking for buggy tools" >&5
7290    sh ./toolcheck 1>&6
7291  fi
7292  
7293  OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
7294  
7295  echo $ac_n "checking for BeOS""... $ac_c" 1>&6
7296 -echo "configure:1140: checking for BeOS" >&5
7297 +echo "configure:1149: checking for BeOS" >&5
7298  case `uname` in
7299      BeOS)      OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
7300                 BEOS=yes; echo "$ac_t""yes" 1>&6;;
7301 @@ -1151,7 +1153,7 @@ case `uname` in
7302  esac
7303  
7304  echo $ac_n "checking for QNX""... $ac_c" 1>&6
7305 -echo "configure:1148: checking for QNX" >&5
7306 +echo "configure:1157: checking for QNX" >&5
7307  case `uname` in
7308      QNX)       OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
7309                 test -z "$with_x" && with_x=no
7310 @@ -1184,7 +1186,7 @@ if test -z "$have_local_include" -a -d /
7311  fi
7312  
7313  echo $ac_n "checking --with-vim-name argument""... $ac_c" 1>&6
7314 -echo "configure:1173: checking --with-vim-name argument" >&5
7315 +echo "configure:1190: checking --with-vim-name argument" >&5
7316  # Check whether --with-vim-name or --without-vim-name was given.
7317  if test "${with_vim_name+set}" = set; then
7318    withval="$with_vim_name"
7319 @@ -1195,7 +1197,7 @@ fi
7320  
7321  
7322  echo $ac_n "checking --with-ex-name argument""... $ac_c" 1>&6
7323 -echo "configure:1184: checking --with-ex-name argument" >&5
7324 +echo "configure:1201: checking --with-ex-name argument" >&5
7325  # Check whether --with-ex-name or --without-ex-name was given.
7326  if test "${with_ex_name+set}" = set; then
7327    withval="$with_ex_name"
7328 @@ -1206,7 +1208,7 @@ fi
7329  
7330  
7331  echo $ac_n "checking --with-view-name argument""... $ac_c" 1>&6
7332 -echo "configure:1195: checking --with-view-name argument" >&5
7333 +echo "configure:1212: checking --with-view-name argument" >&5
7334  # Check whether --with-view-name or --without-view-name was given.
7335  if test "${with_view_name+set}" = set; then
7336    withval="$with_view_name"
7337 @@ -1218,7 +1220,7 @@ fi
7338  
7339  
7340  echo $ac_n "checking --with-global-runtime argument""... $ac_c" 1>&6
7341 -echo "configure:1207: checking --with-global-runtime argument" >&5
7342 +echo "configure:1224: checking --with-global-runtime argument" >&5
7343  # Check whether --with-global-runtime or --without-global-runtime was given.
7344  if test "${with_global_runtime+set}" = set; then
7345    withval="$with_global_runtime"
7346 @@ -1232,7 +1234,7 @@ fi
7347  
7348  
7349  echo $ac_n "checking --with-modified-by argument""... $ac_c" 1>&6
7350 -echo "configure:1221: checking --with-modified-by argument" >&5
7351 +echo "configure:1238: checking --with-modified-by argument" >&5
7352  # Check whether --with-modified-by or --without-modified-by was given.
7353  if test "${with_modified_by+set}" = set; then
7354    withval="$with_modified_by"
7355 @@ -1246,9 +1248,9 @@ fi
7356  
7357  
7358  echo $ac_n "checking if character set is EBCDIC""... $ac_c" 1>&6
7359 -echo "configure:1235: checking if character set is EBCDIC" >&5
7360 +echo "configure:1252: checking if character set is EBCDIC" >&5
7361  cat > conftest.$ac_ext <<EOF
7362 -#line 1237 "configure"
7363 +#line 1254 "configure"
7364  #include "confdefs.h"
7365   
7366  int main() {
7367 @@ -1261,7 +1263,7 @@ make an error "Character set is not EBCD
7368  #endif 
7369  ; return 0; }
7370  EOF
7371 -if { (eval echo configure:1250: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
7372 +if { (eval echo configure:1267: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
7373    rm -rf conftest*
7374     # TryCompile action if true
7375  cf_cv_ebcdic=yes 
7376 @@ -1289,7 +1291,7 @@ esac
7377  
7378  if test "$cf_cv_ebcdic" = "yes"; then
7379  echo $ac_n "checking for OS/390 Unix""... $ac_c" 1>&6
7380 -echo "configure:1278: checking for OS/390 Unix" >&5
7381 +echo "configure:1295: checking for OS/390 Unix" >&5
7382  case `uname` in
7383      OS/390)    OS390Unix="yes";
7384                                                                                 if test "$CC" = "cc"; then
7385 @@ -1326,7 +1328,7 @@ fi
7386  
7387  
7388  echo $ac_n "checking --with-features argument""... $ac_c" 1>&6
7389 -echo "configure:1315: checking --with-features argument" >&5
7390 +echo "configure:1332: checking --with-features argument" >&5
7391  # Check whether --with-features or --without-features was given.
7392  if test "${with_features+set}" = set; then
7393    withval="$with_features"
7394 @@ -1369,7 +1371,7 @@ esac
7395  
7396  
7397  echo $ac_n "checking --with-compiledby argument""... $ac_c" 1>&6
7398 -echo "configure:1358: checking --with-compiledby argument" >&5
7399 +echo "configure:1375: checking --with-compiledby argument" >&5
7400  # Check whether --with-compiledby or --without-compiledby was given.
7401  if test "${with_compiledby+set}" = set; then
7402    withval="$with_compiledby"
7403 @@ -1381,7 +1383,7 @@ fi
7404  
7405  
7406  echo $ac_n "checking --enable-perlinterp argument""... $ac_c" 1>&6
7407 -echo "configure:1370: checking --enable-perlinterp argument" >&5
7408 +echo "configure:1387: checking --enable-perlinterp argument" >&5
7409  # Check whether --enable-perlinterp or --disable-perlinterp was given.
7410  if test "${enable_perlinterp+set}" = set; then
7411    enableval="$enable_perlinterp"
7412 @@ -1396,7 +1398,7 @@ if test "$enable_perlinterp" = "yes"; th
7413    # Extract the first word of "perl", so it can be a program name with args.
7414  set dummy perl; ac_word=$2
7415  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7416 -echo "configure:1385: checking for $ac_word" >&5
7417 +echo "configure:1402: checking for $ac_word" >&5
7418  if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_perl'+set}'`\" = set"; then
7419    echo $ac_n "(cached) $ac_c" 1>&6
7420  else
7421 @@ -1430,7 +1432,7 @@ fi
7422  
7423    if test "X$vi_cv_path_perl" != "X"; then
7424      echo $ac_n "checking Perl version""... $ac_c" 1>&6
7425 -echo "configure:1419: checking Perl version" >&5
7426 +echo "configure:1436: checking Perl version" >&5
7427      if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
7428        echo "$ac_t""OK" 1>&6
7429        eval `$vi_cv_path_perl -V:shrpenv`
7430 @@ -1472,7 +1474,7 @@ fi
7431  
7432  
7433  echo $ac_n "checking --enable-pythoninterp argument""... $ac_c" 1>&6
7434 -echo "configure:1461: checking --enable-pythoninterp argument" >&5
7435 +echo "configure:1478: checking --enable-pythoninterp argument" >&5
7436  # Check whether --enable-pythoninterp or --disable-pythoninterp was given.
7437  if test "${enable_pythoninterp+set}" = set; then
7438    enableval="$enable_pythoninterp"
7439 @@ -1486,7 +1488,7 @@ if test "$enable_pythoninterp" = "yes"; 
7440      # Extract the first word of "python", so it can be a program name with args.
7441  set dummy python; ac_word=$2
7442  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7443 -echo "configure:1475: checking for $ac_word" >&5
7444 +echo "configure:1492: checking for $ac_word" >&5
7445  if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_python'+set}'`\" = set"; then
7446    echo $ac_n "(cached) $ac_c" 1>&6
7447  else
7448 @@ -1521,7 +1523,7 @@ fi
7449    if test "X$vi_cv_path_python" != "X"; then
7450  
7451          echo $ac_n "checking Python version""... $ac_c" 1>&6
7452 -echo "configure:1510: checking Python version" >&5
7453 +echo "configure:1527: checking Python version" >&5
7454  if eval "test \"`echo '$''{'vi_cv_var_python_version'+set}'`\" = set"; then
7455    echo $ac_n "(cached) $ac_c" 1>&6
7456  else
7457 @@ -1533,14 +1535,14 @@ fi
7458  echo "$ac_t""$vi_cv_var_python_version" 1>&6
7459  
7460          echo $ac_n "checking Python is 1.4 or better""... $ac_c" 1>&6
7461 -echo "configure:1522: checking Python is 1.4 or better" >&5
7462 +echo "configure:1539: checking Python is 1.4 or better" >&5
7463      if ${vi_cv_path_python} -c \
7464         "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
7465      then
7466        echo "$ac_t""yep" 1>&6
7467  
7468              echo $ac_n "checking Python's install prefix""... $ac_c" 1>&6
7469 -echo "configure:1529: checking Python's install prefix" >&5
7470 +echo "configure:1546: checking Python's install prefix" >&5
7471  if eval "test \"`echo '$''{'vi_cv_path_python_pfx'+set}'`\" = set"; then
7472    echo $ac_n "(cached) $ac_c" 1>&6
7473  else
7474 @@ -1552,7 +1554,7 @@ fi
7475  echo "$ac_t""$vi_cv_path_python_pfx" 1>&6
7476  
7477              echo $ac_n "checking Python's execution prefix""... $ac_c" 1>&6
7478 -echo "configure:1541: checking Python's execution prefix" >&5
7479 +echo "configure:1558: checking Python's execution prefix" >&5
7480  if eval "test \"`echo '$''{'vi_cv_path_python_epfx'+set}'`\" = set"; then
7481    echo $ac_n "(cached) $ac_c" 1>&6
7482  else
7483 @@ -1583,7 +1585,7 @@ fi
7484  
7485  
7486        echo $ac_n "checking Python's configuration directory""... $ac_c" 1>&6
7487 -echo "configure:1572: checking Python's configuration directory" >&5
7488 +echo "configure:1589: checking Python's configuration directory" >&5
7489  if eval "test \"`echo '$''{'vi_cv_path_python_conf'+set}'`\" = set"; then
7490    echo $ac_n "(cached) $ac_c" 1>&6
7491  else
7492 @@ -1647,21 +1649,21 @@ fi
7493         PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
7494  
7495                                         echo $ac_n "checking if -pthread should be used""... $ac_c" 1>&6
7496 -echo "configure:1636: checking if -pthread should be used" >&5
7497 +echo "configure:1653: checking if -pthread should be used" >&5
7498         if test "`(uname) 2>/dev/null`" = FreeBSD; then
7499           cflags_save=$CFLAGS
7500           libs_save=$LIBS
7501           CFLAGS="$CFLAGS -D_THREAD_SAFE"
7502           LIBS="$LIBS -pthread"
7503           cat > conftest.$ac_ext <<EOF
7504 -#line 1643 "configure"
7505 +#line 1660 "configure"
7506  #include "confdefs.h"
7507  
7508  int main() {
7509   
7510  ; return 0; }
7511  EOF
7512 -if { (eval echo configure:1650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7513 +if { (eval echo configure:1667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7514    rm -rf conftest*
7515    echo "$ac_t""yes" 1>&6; PYTHON_CFLAGS="$PYTHON_CFLAGS -D_THREAD_SAFE"
7516  else
7517 @@ -1696,7 +1698,7 @@ fi
7518  
7519  
7520  echo $ac_n "checking --enable-tclinterp argument""... $ac_c" 1>&6
7521 -echo "configure:1685: checking --enable-tclinterp argument" >&5
7522 +echo "configure:1702: checking --enable-tclinterp argument" >&5
7523  # Check whether --enable-tclinterp or --disable-tclinterp was given.
7524  if test "${enable_tclinterp+set}" = set; then
7525    enableval="$enable_tclinterp"
7526 @@ -1710,7 +1712,7 @@ echo "$ac_t""$enable_tclinterp" 1>&6
7527  if test "$enable_tclinterp" = "yes"; then
7528  
7529      echo $ac_n "checking --with-tclsh argument""... $ac_c" 1>&6
7530 -echo "configure:1699: checking --with-tclsh argument" >&5
7531 +echo "configure:1716: checking --with-tclsh argument" >&5
7532    # Check whether --with-tclsh or --without-tclsh was given.
7533  if test "${with_tclsh+set}" = set; then
7534    withval="$with_tclsh"
7535 @@ -1722,7 +1724,7 @@ fi
7536    # Extract the first word of "$tclsh_name", so it can be a program name with args.
7537  set dummy $tclsh_name; ac_word=$2
7538  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7539 -echo "configure:1711: checking for $ac_word" >&5
7540 +echo "configure:1728: checking for $ac_word" >&5
7541  if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_tcl'+set}'`\" = set"; then
7542    echo $ac_n "(cached) $ac_c" 1>&6
7543  else
7544 @@ -1761,7 +1763,7 @@ fi
7545      # Extract the first word of "$tclsh_name", so it can be a program name with args.
7546  set dummy $tclsh_name; ac_word=$2
7547  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7548 -echo "configure:1750: checking for $ac_word" >&5
7549 +echo "configure:1767: checking for $ac_word" >&5
7550  if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_tcl'+set}'`\" = set"; then
7551    echo $ac_n "(cached) $ac_c" 1>&6
7552  else
7553 @@ -1799,7 +1801,7 @@ fi
7554      # Extract the first word of "$tclsh_name", so it can be a program name with args.
7555  set dummy $tclsh_name; ac_word=$2
7556  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7557 -echo "configure:1788: checking for $ac_word" >&5
7558 +echo "configure:1805: checking for $ac_word" >&5
7559  if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_tcl'+set}'`\" = set"; then
7560    echo $ac_n "(cached) $ac_c" 1>&6
7561  else
7562 @@ -1834,14 +1836,14 @@ fi
7563    fi
7564    if test "X$vi_cv_path_tcl" != "X"; then
7565      echo $ac_n "checking Tcl version""... $ac_c" 1>&6
7566 -echo "configure:1823: checking Tcl version" >&5
7567 +echo "configure:1840: checking Tcl version" >&5
7568      if echo 'exit [expr [info tclversion] < 8.0]' | $vi_cv_path_tcl - ; then
7569        tclver=`echo 'puts [info tclversion]' | $vi_cv_path_tcl -`
7570        echo "$ac_t""$tclver - OK" 1>&6;
7571        tclloc=`echo 'set l [info library];set i [string last lib $l];incr i -2;puts [string range $l 0 $i]' | $vi_cv_path_tcl -`
7572  
7573        echo $ac_n "checking for location of Tcl include""... $ac_c" 1>&6
7574 -echo "configure:1830: checking for location of Tcl include" >&5
7575 +echo "configure:1847: checking for location of Tcl include" >&5
7576        tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include"
7577        for try in $tclinc; do
7578         if test -f "$try/tcl.h"; then
7579 @@ -1856,7 +1858,7 @@ echo "configure:1830: checking for locat
7580        fi
7581        if test -z "$SKIP_TCL"; then
7582         echo $ac_n "checking for location of tclConfig.sh script""... $ac_c" 1>&6
7583 -echo "configure:1845: checking for location of tclConfig.sh script" >&5
7584 +echo "configure:1862: checking for location of tclConfig.sh script" >&5
7585         tclcnf=`echo $tclinc | sed s/include/lib/g`
7586         for try in $tclcnf; do
7587           if test -f $try/tclConfig.sh; then
7588 @@ -1869,7 +1871,7 @@ echo "configure:1845: checking for locat
7589         if test -z "$TCL_LIBS"; then
7590           echo "$ac_t""<not found>" 1>&6
7591           echo $ac_n "checking for Tcl library by myself""... $ac_c" 1>&6
7592 -echo "configure:1858: checking for Tcl library by myself" >&5
7593 +echo "configure:1875: checking for Tcl library by myself" >&5
7594           tcllib=`echo $tclinc | sed s/include/lib/g`
7595           for ext in .so .a ; do
7596             for ver in "" $tclver ; do
7597 @@ -1915,7 +1917,7 @@ fi
7598  
7599  
7600  echo $ac_n "checking --enable-rubyinterp argument""... $ac_c" 1>&6
7601 -echo "configure:1904: checking --enable-rubyinterp argument" >&5
7602 +echo "configure:1921: checking --enable-rubyinterp argument" >&5
7603  # Check whether --enable-rubyinterp or --disable-rubyinterp was given.
7604  if test "${enable_rubyinterp+set}" = set; then
7605    enableval="$enable_rubyinterp"
7606 @@ -1930,7 +1932,7 @@ if test "$enable_rubyinterp" = "yes"; th
7607    # Extract the first word of "ruby", so it can be a program name with args.
7608  set dummy ruby; ac_word=$2
7609  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7610 -echo "configure:1919: checking for $ac_word" >&5
7611 +echo "configure:1936: checking for $ac_word" >&5
7612  if eval "test \"`echo '$''{'ac_cv_path_vi_cv_path_ruby'+set}'`\" = set"; then
7613    echo $ac_n "(cached) $ac_c" 1>&6
7614  else
7615 @@ -1964,7 +1966,7 @@ fi
7616  
7617    if test "X$vi_cv_path_ruby" != "X"; then
7618      echo $ac_n "checking Ruby version""... $ac_c" 1>&6
7619 -echo "configure:1953: checking Ruby version" >&5
7620 +echo "configure:1970: checking Ruby version" >&5
7621      if $vi_cv_path_ruby -e 'VERSION >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
7622        echo "$ac_t""OK" 1>&6
7623        rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG["archdir"] || $hdrdir'`
7624 @@ -2006,7 +2008,7 @@ fi
7625  
7626  
7627  echo $ac_n "checking --enable-cscope argument""... $ac_c" 1>&6
7628 -echo "configure:1995: checking --enable-cscope argument" >&5
7629 +echo "configure:2012: checking --enable-cscope argument" >&5
7630  # Check whether --enable-cscope or --disable-cscope was given.
7631  if test "${enable_cscope+set}" = set; then
7632    enableval="$enable_cscope"
7633 @@ -2024,7 +2026,7 @@ EOF
7634  fi
7635  
7636  echo $ac_n "checking --enable-workshop argument""... $ac_c" 1>&6
7637 -echo "configure:2013: checking --enable-workshop argument" >&5
7638 +echo "configure:2030: checking --enable-workshop argument" >&5
7639  # Check whether --enable-workshop or --disable-workshop was given.
7640  if test "${enable_workshop+set}" = set; then
7641    enableval="$enable_workshop"
7642 @@ -2049,7 +2051,7 @@ EOF
7643  fi
7644  
7645  echo $ac_n "checking --enable-sniff argument""... $ac_c" 1>&6
7646 -echo "configure:2038: checking --enable-sniff argument" >&5
7647 +echo "configure:2055: checking --enable-sniff argument" >&5
7648  # Check whether --enable-sniff or --disable-sniff was given.
7649  if test "${enable_sniff+set}" = set; then
7650    enableval="$enable_sniff"
7651 @@ -2071,7 +2073,7 @@ EOF
7652  fi
7653  
7654  echo $ac_n "checking --enable-multibyte argument""... $ac_c" 1>&6
7655 -echo "configure:2060: checking --enable-multibyte argument" >&5
7656 +echo "configure:2077: checking --enable-multibyte argument" >&5
7657  # Check whether --enable-multibyte or --disable-multibyte was given.
7658  if test "${enable_multibyte+set}" = set; then
7659    enableval="$enable_multibyte"
7660 @@ -2089,7 +2091,7 @@ EOF
7661  fi
7662  
7663  echo $ac_n "checking --enable-hangulinput argument""... $ac_c" 1>&6
7664 -echo "configure:2078: checking --enable-hangulinput argument" >&5
7665 +echo "configure:2095: checking --enable-hangulinput argument" >&5
7666  # Check whether --enable-hangulinput or --disable-hangulinput was given.
7667  if test "${enable_hangulinput+set}" = set; then
7668    enableval="$enable_hangulinput"
7669 @@ -2101,7 +2103,7 @@ fi
7670  echo "$ac_t""$enable_hangulinput" 1>&6
7671  
7672  echo $ac_n "checking --enable-xim argument""... $ac_c" 1>&6
7673 -echo "configure:2090: checking --enable-xim argument" >&5
7674 +echo "configure:2107: checking --enable-xim argument" >&5
7675  # Check whether --enable-xim or --disable-xim was given.
7676  if test "${enable_xim+set}" = set; then
7677    enableval="$enable_xim"
7678 @@ -2112,7 +2114,7 @@ fi
7679  
7680  
7681  echo $ac_n "checking --enable-fontset argument""... $ac_c" 1>&6
7682 -echo "configure:2101: checking --enable-fontset argument" >&5
7683 +echo "configure:2118: checking --enable-fontset argument" >&5
7684  # Check whether --enable-fontset or --disable-fontset was given.
7685  if test "${enable_fontset+set}" = set; then
7686    enableval="$enable_fontset"
7687 @@ -2132,7 +2134,7 @@ else
7688    # Extract the first word of "xmkmf", so it can be a program name with args.
7689  set dummy xmkmf; ac_word=$2
7690  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
7691 -echo "configure:2121: checking for $ac_word" >&5
7692 +echo "configure:2138: checking for $ac_word" >&5
7693  if eval "test \"`echo '$''{'ac_cv_path_xmkmfpath'+set}'`\" = set"; then
7694    echo $ac_n "(cached) $ac_c" 1>&6
7695  else
7696 @@ -2170,7 +2172,7 @@ fi
7697  # Uses ac_ vars as temps to allow command line to override cache and checks.
7698  # --without-x overrides everything else, but does not touch the cache.
7699  echo $ac_n "checking for X""... $ac_c" 1>&6
7700 -echo "configure:2159: checking for X" >&5
7701 +echo "configure:2176: checking for X" >&5
7702  
7703  # Check whether --with-x or --without-x was given.
7704  if test "${with_x+set}" = set; then
7705 @@ -2232,12 +2234,12 @@ if test "$ac_x_includes" = NO; then
7706  
7707    # First, try using that file with no special directory specified.
7708  cat > conftest.$ac_ext <<EOF
7709 -#line 2221 "configure"
7710 +#line 2238 "configure"
7711  #include "confdefs.h"
7712  #include <$x_direct_test_include>
7713  EOF
7714  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
7715 -{ (eval echo configure:2226: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
7716 +{ (eval echo configure:2243: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
7717  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
7718  if test -z "$ac_err"; then
7719    rm -rf conftest*
7720 @@ -2306,14 +2308,14 @@ if test "$ac_x_libraries" = NO; then
7721    ac_save_LIBS="$LIBS"
7722    LIBS="-l$x_direct_test_library $LIBS"
7723  cat > conftest.$ac_ext <<EOF
7724 -#line 2295 "configure"
7725 +#line 2312 "configure"
7726  #include "confdefs.h"
7727  
7728  int main() {
7729  ${x_direct_test_function}()
7730  ; return 0; }
7731  EOF
7732 -if { (eval echo configure:2302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7733 +if { (eval echo configure:2319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7734    rm -rf conftest*
7735    LIBS="$ac_save_LIBS"
7736  # We can link X programs with no special library path.
7737 @@ -2419,17 +2421,17 @@ else
7738      case "`(uname -sr) 2>/dev/null`" in
7739      "SunOS 5"*)
7740        echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
7741 -echo "configure:2408: checking whether -R must be followed by a space" >&5
7742 +echo "configure:2425: checking whether -R must be followed by a space" >&5
7743        ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
7744        cat > conftest.$ac_ext <<EOF
7745 -#line 2411 "configure"
7746 +#line 2428 "configure"
7747  #include "confdefs.h"
7748  
7749  int main() {
7750  
7751  ; return 0; }
7752  EOF
7753 -if { (eval echo configure:2418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7754 +if { (eval echo configure:2435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7755    rm -rf conftest*
7756    ac_R_nospace=yes
7757  else
7758 @@ -2445,14 +2447,14 @@ rm -f conftest*
7759        else
7760         LIBS="$ac_xsave_LIBS -R $x_libraries"
7761         cat > conftest.$ac_ext <<EOF
7762 -#line 2434 "configure"
7763 +#line 2451 "configure"
7764  #include "confdefs.h"
7765  
7766  int main() {
7767  
7768  ; return 0; }
7769  EOF
7770 -if { (eval echo configure:2441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7771 +if { (eval echo configure:2458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7772    rm -rf conftest*
7773    ac_R_space=yes
7774  else
7775 @@ -2484,7 +2486,7 @@ rm -f conftest*
7776      # libraries were built with DECnet support.  And karl@cs.umb.edu says
7777      # the Alpha needs dnet_stub (dnet does not exist).
7778      echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
7779 -echo "configure:2473: checking for dnet_ntoa in -ldnet" >&5
7780 +echo "configure:2490: checking for dnet_ntoa in -ldnet" >&5
7781  ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
7782  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
7783    echo $ac_n "(cached) $ac_c" 1>&6
7784 @@ -2492,7 +2494,7 @@ else
7785    ac_save_LIBS="$LIBS"
7786  LIBS="-ldnet  $LIBS"
7787  cat > conftest.$ac_ext <<EOF
7788 -#line 2481 "configure"
7789 +#line 2498 "configure"
7790  #include "confdefs.h"
7791  /* Override any gcc2 internal prototype to avoid an error.  */
7792  /* We use char because int might match the return type of a gcc2
7793 @@ -2503,7 +2505,7 @@ int main() {
7794  dnet_ntoa()
7795  ; return 0; }
7796  EOF
7797 -if { (eval echo configure:2492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7798 +if { (eval echo configure:2509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7799    rm -rf conftest*
7800    eval "ac_cv_lib_$ac_lib_var=yes"
7801  else
7802 @@ -2525,7 +2527,7 @@ fi
7803  
7804      if test $ac_cv_lib_dnet_dnet_ntoa = no; then
7805        echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
7806 -echo "configure:2514: checking for dnet_ntoa in -ldnet_stub" >&5
7807 +echo "configure:2531: checking for dnet_ntoa in -ldnet_stub" >&5
7808  ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
7809  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
7810    echo $ac_n "(cached) $ac_c" 1>&6
7811 @@ -2533,7 +2535,7 @@ else
7812    ac_save_LIBS="$LIBS"
7813  LIBS="-ldnet_stub  $LIBS"
7814  cat > conftest.$ac_ext <<EOF
7815 -#line 2522 "configure"
7816 +#line 2539 "configure"
7817  #include "confdefs.h"
7818  /* Override any gcc2 internal prototype to avoid an error.  */
7819  /* We use char because int might match the return type of a gcc2
7820 @@ -2544,7 +2546,7 @@ int main() {
7821  dnet_ntoa()
7822  ; return 0; }
7823  EOF
7824 -if { (eval echo configure:2533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7825 +if { (eval echo configure:2550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7826    rm -rf conftest*
7827    eval "ac_cv_lib_$ac_lib_var=yes"
7828  else
7829 @@ -2573,12 +2575,12 @@ fi
7830      # The nsl library prevents programs from opening the X display
7831      # on Irix 5.2, according to dickey@clark.net.
7832      echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
7833 -echo "configure:2562: checking for gethostbyname" >&5
7834 +echo "configure:2579: checking for gethostbyname" >&5
7835  if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
7836    echo $ac_n "(cached) $ac_c" 1>&6
7837  else
7838    cat > conftest.$ac_ext <<EOF
7839 -#line 2567 "configure"
7840 +#line 2584 "configure"
7841  #include "confdefs.h"
7842  /* System header to define __stub macros and hopefully few prototypes,
7843      which can conflict with char gethostbyname(); below.  */
7844 @@ -2601,7 +2603,7 @@ gethostbyname();
7845  
7846  ; return 0; }
7847  EOF
7848 -if { (eval echo configure:2590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7849 +if { (eval echo configure:2607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7850    rm -rf conftest*
7851    eval "ac_cv_func_gethostbyname=yes"
7852  else
7853 @@ -2622,7 +2624,7 @@ fi
7854  
7855      if test $ac_cv_func_gethostbyname = no; then
7856        echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
7857 -echo "configure:2611: checking for gethostbyname in -lnsl" >&5
7858 +echo "configure:2628: checking for gethostbyname in -lnsl" >&5
7859  ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
7860  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
7861    echo $ac_n "(cached) $ac_c" 1>&6
7862 @@ -2630,7 +2632,7 @@ else
7863    ac_save_LIBS="$LIBS"
7864  LIBS="-lnsl  $LIBS"
7865  cat > conftest.$ac_ext <<EOF
7866 -#line 2619 "configure"
7867 +#line 2636 "configure"
7868  #include "confdefs.h"
7869  /* Override any gcc2 internal prototype to avoid an error.  */
7870  /* We use char because int might match the return type of a gcc2
7871 @@ -2641,7 +2643,7 @@ int main() {
7872  gethostbyname()
7873  ; return 0; }
7874  EOF
7875 -if { (eval echo configure:2630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7876 +if { (eval echo configure:2647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7877    rm -rf conftest*
7878    eval "ac_cv_lib_$ac_lib_var=yes"
7879  else
7880 @@ -2671,12 +2673,12 @@ fi
7881      # -lsocket must be given before -lnsl if both are needed.
7882      # We assume that if connect needs -lnsl, so does gethostbyname.
7883      echo $ac_n "checking for connect""... $ac_c" 1>&6
7884 -echo "configure:2660: checking for connect" >&5
7885 +echo "configure:2677: checking for connect" >&5
7886  if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
7887    echo $ac_n "(cached) $ac_c" 1>&6
7888  else
7889    cat > conftest.$ac_ext <<EOF
7890 -#line 2665 "configure"
7891 +#line 2682 "configure"
7892  #include "confdefs.h"
7893  /* System header to define __stub macros and hopefully few prototypes,
7894      which can conflict with char connect(); below.  */
7895 @@ -2699,7 +2701,7 @@ connect();
7896  
7897  ; return 0; }
7898  EOF
7899 -if { (eval echo configure:2688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7900 +if { (eval echo configure:2705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7901    rm -rf conftest*
7902    eval "ac_cv_func_connect=yes"
7903  else
7904 @@ -2720,7 +2722,7 @@ fi
7905  
7906      if test $ac_cv_func_connect = no; then
7907        echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
7908 -echo "configure:2709: checking for connect in -lsocket" >&5
7909 +echo "configure:2726: checking for connect in -lsocket" >&5
7910  ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
7911  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
7912    echo $ac_n "(cached) $ac_c" 1>&6
7913 @@ -2728,7 +2730,7 @@ else
7914    ac_save_LIBS="$LIBS"
7915  LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
7916  cat > conftest.$ac_ext <<EOF
7917 -#line 2717 "configure"
7918 +#line 2734 "configure"
7919  #include "confdefs.h"
7920  /* Override any gcc2 internal prototype to avoid an error.  */
7921  /* We use char because int might match the return type of a gcc2
7922 @@ -2739,7 +2741,7 @@ int main() {
7923  connect()
7924  ; return 0; }
7925  EOF
7926 -if { (eval echo configure:2728: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7927 +if { (eval echo configure:2745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7928    rm -rf conftest*
7929    eval "ac_cv_lib_$ac_lib_var=yes"
7930  else
7931 @@ -2763,12 +2765,12 @@ fi
7932  
7933      # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
7934      echo $ac_n "checking for remove""... $ac_c" 1>&6
7935 -echo "configure:2752: checking for remove" >&5
7936 +echo "configure:2769: checking for remove" >&5
7937  if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
7938    echo $ac_n "(cached) $ac_c" 1>&6
7939  else
7940    cat > conftest.$ac_ext <<EOF
7941 -#line 2757 "configure"
7942 +#line 2774 "configure"
7943  #include "confdefs.h"
7944  /* System header to define __stub macros and hopefully few prototypes,
7945      which can conflict with char remove(); below.  */
7946 @@ -2791,7 +2793,7 @@ remove();
7947  
7948  ; return 0; }
7949  EOF
7950 -if { (eval echo configure:2780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7951 +if { (eval echo configure:2797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7952    rm -rf conftest*
7953    eval "ac_cv_func_remove=yes"
7954  else
7955 @@ -2812,7 +2814,7 @@ fi
7956  
7957      if test $ac_cv_func_remove = no; then
7958        echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
7959 -echo "configure:2801: checking for remove in -lposix" >&5
7960 +echo "configure:2818: checking for remove in -lposix" >&5
7961  ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
7962  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
7963    echo $ac_n "(cached) $ac_c" 1>&6
7964 @@ -2820,7 +2822,7 @@ else
7965    ac_save_LIBS="$LIBS"
7966  LIBS="-lposix  $LIBS"
7967  cat > conftest.$ac_ext <<EOF
7968 -#line 2809 "configure"
7969 +#line 2826 "configure"
7970  #include "confdefs.h"
7971  /* Override any gcc2 internal prototype to avoid an error.  */
7972  /* We use char because int might match the return type of a gcc2
7973 @@ -2831,7 +2833,7 @@ int main() {
7974  remove()
7975  ; return 0; }
7976  EOF
7977 -if { (eval echo configure:2820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7978 +if { (eval echo configure:2837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
7979    rm -rf conftest*
7980    eval "ac_cv_lib_$ac_lib_var=yes"
7981  else
7982 @@ -2855,12 +2857,12 @@ fi
7983  
7984      # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
7985      echo $ac_n "checking for shmat""... $ac_c" 1>&6
7986 -echo "configure:2844: checking for shmat" >&5
7987 +echo "configure:2861: checking for shmat" >&5
7988  if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
7989    echo $ac_n "(cached) $ac_c" 1>&6
7990  else
7991    cat > conftest.$ac_ext <<EOF
7992 -#line 2849 "configure"
7993 +#line 2866 "configure"
7994  #include "confdefs.h"
7995  /* System header to define __stub macros and hopefully few prototypes,
7996      which can conflict with char shmat(); below.  */
7997 @@ -2883,7 +2885,7 @@ shmat();
7998  
7999  ; return 0; }
8000  EOF
8001 -if { (eval echo configure:2872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8002 +if { (eval echo configure:2889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8003    rm -rf conftest*
8004    eval "ac_cv_func_shmat=yes"
8005  else
8006 @@ -2904,7 +2906,7 @@ fi
8007  
8008      if test $ac_cv_func_shmat = no; then
8009        echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
8010 -echo "configure:2893: checking for shmat in -lipc" >&5
8011 +echo "configure:2910: checking for shmat in -lipc" >&5
8012  ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
8013  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8014    echo $ac_n "(cached) $ac_c" 1>&6
8015 @@ -2912,7 +2914,7 @@ else
8016    ac_save_LIBS="$LIBS"
8017  LIBS="-lipc  $LIBS"
8018  cat > conftest.$ac_ext <<EOF
8019 -#line 2901 "configure"
8020 +#line 2918 "configure"
8021  #include "confdefs.h"
8022  /* Override any gcc2 internal prototype to avoid an error.  */
8023  /* We use char because int might match the return type of a gcc2
8024 @@ -2923,7 +2925,7 @@ int main() {
8025  shmat()
8026  ; return 0; }
8027  EOF
8028 -if { (eval echo configure:2912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8029 +if { (eval echo configure:2929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8030    rm -rf conftest*
8031    eval "ac_cv_lib_$ac_lib_var=yes"
8032  else
8033 @@ -2956,7 +2958,7 @@ fi
8034    # libraries we check for below, so use a different variable.
8035    #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
8036    echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
8037 -echo "configure:2945: checking for IceConnectionNumber in -lICE" >&5
8038 +echo "configure:2962: checking for IceConnectionNumber in -lICE" >&5
8039  ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
8040  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8041    echo $ac_n "(cached) $ac_c" 1>&6
8042 @@ -2964,7 +2966,7 @@ else
8043    ac_save_LIBS="$LIBS"
8044  LIBS="-lICE $X_EXTRA_LIBS $LIBS"
8045  cat > conftest.$ac_ext <<EOF
8046 -#line 2953 "configure"
8047 +#line 2970 "configure"
8048  #include "confdefs.h"
8049  /* Override any gcc2 internal prototype to avoid an error.  */
8050  /* We use char because int might match the return type of a gcc2
8051 @@ -2975,7 +2977,7 @@ int main() {
8052  IceConnectionNumber()
8053  ; return 0; }
8054  EOF
8055 -if { (eval echo configure:2964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8056 +if { (eval echo configure:2981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8057    rm -rf conftest*
8058    eval "ac_cv_lib_$ac_lib_var=yes"
8059  else
8060 @@ -3028,18 +3030,18 @@ fi
8061  
8062  
8063        echo $ac_n "checking if X11 header files can be found""... $ac_c" 1>&6
8064 -echo "configure:3017: checking if X11 header files can be found" >&5
8065 +echo "configure:3034: checking if X11 header files can be found" >&5
8066    cflags_save=$CFLAGS
8067    CFLAGS="$CFLAGS $X_CFLAGS"
8068    cat > conftest.$ac_ext <<EOF
8069 -#line 3021 "configure"
8070 +#line 3038 "configure"
8071  #include "confdefs.h"
8072  #include <X11/Xlib.h>
8073  int main() {
8074  
8075  ; return 0; }
8076  EOF
8077 -if { (eval echo configure:3028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8078 +if { (eval echo configure:3045: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8079    rm -rf conftest*
8080    echo "$ac_t""yes" 1>&6
8081  else
8082 @@ -3065,7 +3067,7 @@ EOF
8083      LDFLAGS="-L$x_libraries $LDFLAGS"
8084  
8085              echo $ac_n "checking for _XdmcpAuthDoIt in -lXdmcp""... $ac_c" 1>&6
8086 -echo "configure:3054: checking for _XdmcpAuthDoIt in -lXdmcp" >&5
8087 +echo "configure:3071: checking for _XdmcpAuthDoIt in -lXdmcp" >&5
8088  ac_lib_var=`echo Xdmcp'_'_XdmcpAuthDoIt | sed 'y%./+-%__p_%'`
8089  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8090    echo $ac_n "(cached) $ac_c" 1>&6
8091 @@ -3073,7 +3075,7 @@ else
8092    ac_save_LIBS="$LIBS"
8093  LIBS="-lXdmcp -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp $LIBS"
8094  cat > conftest.$ac_ext <<EOF
8095 -#line 3062 "configure"
8096 +#line 3079 "configure"
8097  #include "confdefs.h"
8098  /* Override any gcc2 internal prototype to avoid an error.  */
8099  /* We use char because int might match the return type of a gcc2
8100 @@ -3084,7 +3086,7 @@ int main() {
8101  _XdmcpAuthDoIt()
8102  ; return 0; }
8103  EOF
8104 -if { (eval echo configure:3073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8105 +if { (eval echo configure:3090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8106    rm -rf conftest*
8107    eval "ac_cv_lib_$ac_lib_var=yes"
8108  else
8109 @@ -3106,7 +3108,7 @@ fi
8110  
8111  
8112                      echo $ac_n "checking for IceOpenConnection in -lICE""... $ac_c" 1>&6
8113 -echo "configure:3095: checking for IceOpenConnection in -lICE" >&5
8114 +echo "configure:3112: checking for IceOpenConnection in -lICE" >&5
8115  ac_lib_var=`echo ICE'_'IceOpenConnection | sed 'y%./+-%__p_%'`
8116  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8117    echo $ac_n "(cached) $ac_c" 1>&6
8118 @@ -3114,7 +3116,7 @@ else
8119    ac_save_LIBS="$LIBS"
8120  LIBS="-lICE $X_EXTRA_LIBS $LIBS"
8121  cat > conftest.$ac_ext <<EOF
8122 -#line 3103 "configure"
8123 +#line 3120 "configure"
8124  #include "confdefs.h"
8125  /* Override any gcc2 internal prototype to avoid an error.  */
8126  /* We use char because int might match the return type of a gcc2
8127 @@ -3125,7 +3127,7 @@ int main() {
8128  IceOpenConnection()
8129  ; return 0; }
8130  EOF
8131 -if { (eval echo configure:3114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8132 +if { (eval echo configure:3131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8133    rm -rf conftest*
8134    eval "ac_cv_lib_$ac_lib_var=yes"
8135  else
8136 @@ -3148,7 +3150,7 @@ fi
8137  
8138          LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
8139      echo $ac_n "checking for XpmCreatePixmapFromData in -lXpm""... $ac_c" 1>&6
8140 -echo "configure:3137: checking for XpmCreatePixmapFromData in -lXpm" >&5
8141 +echo "configure:3154: checking for XpmCreatePixmapFromData in -lXpm" >&5
8142  ac_lib_var=`echo Xpm'_'XpmCreatePixmapFromData | sed 'y%./+-%__p_%'`
8143  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8144    echo $ac_n "(cached) $ac_c" 1>&6
8145 @@ -3156,7 +3158,7 @@ else
8146    ac_save_LIBS="$LIBS"
8147  LIBS="-lXpm -lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS $LIBS"
8148  cat > conftest.$ac_ext <<EOF
8149 -#line 3145 "configure"
8150 +#line 3162 "configure"
8151  #include "confdefs.h"
8152  /* Override any gcc2 internal prototype to avoid an error.  */
8153  /* We use char because int might match the return type of a gcc2
8154 @@ -3167,7 +3169,7 @@ int main() {
8155  XpmCreatePixmapFromData()
8156  ; return 0; }
8157  EOF
8158 -if { (eval echo configure:3156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8159 +if { (eval echo configure:3173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8160    rm -rf conftest*
8161    eval "ac_cv_lib_$ac_lib_var=yes"
8162  else
8163 @@ -3189,18 +3191,18 @@ fi
8164  
8165  
8166          echo $ac_n "checking if X11 header files implicitly declare return values""... $ac_c" 1>&6
8167 -echo "configure:3178: checking if X11 header files implicitly declare return values" >&5
8168 +echo "configure:3195: checking if X11 header files implicitly declare return values" >&5
8169      cflags_save=$CFLAGS
8170      CFLAGS="$CFLAGS $X_CFLAGS -Werror"
8171      cat > conftest.$ac_ext <<EOF
8172 -#line 3182 "configure"
8173 +#line 3199 "configure"
8174  #include "confdefs.h"
8175  #include <X11/Xlib.h>
8176  int main() {
8177  
8178  ; return 0; }
8179  EOF
8180 -if { (eval echo configure:3189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8181 +if { (eval echo configure:3206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8182    rm -rf conftest*
8183    echo "$ac_t""no" 1>&6
8184  else
8185 @@ -3209,14 +3211,14 @@ else
8186    rm -rf conftest*
8187    CFLAGS="$CFLAGS -Wno-implicit-int"
8188         cat > conftest.$ac_ext <<EOF
8189 -#line 3198 "configure"
8190 +#line 3215 "configure"
8191  #include "confdefs.h"
8192  #include <X11/Xlib.h>
8193  int main() {
8194  
8195  ; return 0; }
8196  EOF
8197 -if { (eval echo configure:3205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8198 +if { (eval echo configure:3222: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8199    rm -rf conftest*
8200    echo "$ac_t""yes" 1>&6; cflags_save="$cflags_save -Wno-implicit-int"
8201  else
8202 @@ -3240,7 +3242,7 @@ fi
8203  test "x$with_x" = xno -a "x$BEOS" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
8204  
8205  echo $ac_n "checking --enable-gui argument""... $ac_c" 1>&6
8206 -echo "configure:3229: checking --enable-gui argument" >&5
8207 +echo "configure:3246: checking --enable-gui argument" >&5
8208  # Check whether --enable-gui or --disable-gui was given.
8209  if test "${enable_gui+set}" = set; then
8210    enableval="$enable_gui"
8211 @@ -3253,6 +3255,7 @@ fi
8212  if test "x$BEOS" = "xyes"; then
8213  
8214    SKIP_GTK=YES
8215 +  SKIP_GTK2=YES
8216    SKIP_GNOME=YES
8217    SKIP_MOTIF=YES
8218    SKIP_ATHENA=YES
8219 @@ -3271,6 +3274,7 @@ if test "x$BEOS" = "xyes"; then
8220  
8221  elif test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
8222    SKIP_GTK=YES
8223 +  SKIP_GTK2=YES
8224    SKIP_GNOME=YES
8225    SKIP_MOTIF=YES
8226    SKIP_ATHENA=YES
8227 @@ -3290,6 +3294,7 @@ elif test "x$QNX" = "xyes" -a "x$with_x"
8228  else
8229  
8230    SKIP_GTK=
8231 +  SKIP_GTK2=
8232    SKIP_GNOME=
8233    SKIP_MOTIF=
8234    SKIP_ATHENA=
8235 @@ -3317,7 +3322,7 @@ fi
8236  
8237  if test "x$SKIP_GTK" != "xYES" -a "$enable_gui" != "gtk"; then
8238    echo $ac_n "checking whether or not to look for GTK""... $ac_c" 1>&6
8239 -echo "configure:3306: checking whether or not to look for GTK" >&5
8240 +echo "configure:3326: checking whether or not to look for GTK" >&5
8241    # Check whether --enable-gtk-check or --disable-gtk-check was given.
8242  if test "${enable_gtk_check+set}" = set; then
8243    enableval="$enable_gtk_check"
8244 @@ -3335,7 +3340,7 @@ fi
8245  
8246  if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui" != "gnome"; then
8247    echo $ac_n "checking whether or not to look for GNOME""... $ac_c" 1>&6
8248 -echo "configure:3324: checking whether or not to look for GNOME" >&5
8249 +echo "configure:3344: checking whether or not to look for GNOME" >&5
8250    # Check whether --enable-gnome-check or --disable-gnome-check was given.
8251  if test "${enable_gnome_check+set}" = set; then
8252    enableval="$enable_gnome_check"
8253 @@ -3350,9 +3355,26 @@ fi
8254    fi
8255  fi
8256  
8257 +if test "x$SKIP_GTK2" != "xYES"; then
8258 +  echo $ac_n "checking whether or not to look for GTK2""... $ac_c" 1>&6
8259 +echo "configure:3361: checking whether or not to look for GTK2" >&5
8260 +  # Check whether --enable-gtk2-check or --disable-gtk2-check was given.
8261 +if test "${enable_gtk2_check+set}" = set; then
8262 +  enableval="$enable_gtk2_check"
8263 +  :
8264 +else
8265 +  enable_gtk2_check="no"
8266 +fi
8267 +
8268 +  echo "$ac_t""$enable_gtk2_check" 1>&6;
8269 +  if test "x$enable_gtk2_check" = "xno"; then
8270 +    SKIP_GTK2=YES
8271 +  fi
8272 +fi
8273 +
8274  if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui" != "motif"; then
8275    echo $ac_n "checking whether or not to look for Motif""... $ac_c" 1>&6
8276 -echo "configure:3341: checking whether or not to look for Motif" >&5
8277 +echo "configure:3378: checking whether or not to look for Motif" >&5
8278    # Check whether --enable-motif-check or --disable-motif-check was given.
8279  if test "${enable_motif_check+set}" = set; then
8280    enableval="$enable_motif_check"
8281 @@ -3369,7 +3391,7 @@ fi
8282  
8283  if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui" != "athena"; then
8284    echo $ac_n "checking whether or not to look for Athena""... $ac_c" 1>&6
8285 -echo "configure:3358: checking whether or not to look for Athena" >&5
8286 +echo "configure:3395: checking whether or not to look for Athena" >&5
8287    # Check whether --enable-athena-check or --disable-athena-check was given.
8288  if test "${enable_athena_check+set}" = set; then
8289    enableval="$enable_athena_check"
8290 @@ -3396,7 +3418,7 @@ fi
8291  if test -z "$SKIP_GTK"; then
8292  
8293    echo $ac_n "checking --with-gtk-prefix argument""... $ac_c" 1>&6
8294 -echo "configure:3385: checking --with-gtk-prefix argument" >&5
8295 +echo "configure:3422: checking --with-gtk-prefix argument" >&5
8296    # Check whether --with-gtk-prefix or --without-gtk-prefix was given.
8297  if test "${with_gtk_prefix+set}" = set; then
8298    withval="$with_gtk_prefix"
8299 @@ -3407,7 +3429,7 @@ fi
8300  
8301  
8302    echo $ac_n "checking --with-gtk-exec-prefix argument""... $ac_c" 1>&6
8303 -echo "configure:3396: checking --with-gtk-exec-prefix argument" >&5
8304 +echo "configure:3433: checking --with-gtk-exec-prefix argument" >&5
8305    # Check whether --with-gtk-exec-prefix or --without-gtk-exec-prefix was given.
8306  if test "${with_gtk_exec_prefix+set}" = set; then
8307    withval="$with_gtk_exec_prefix"
8308 @@ -3418,7 +3440,7 @@ fi
8309  
8310  
8311    echo $ac_n "checking --disable-gtktest argument""... $ac_c" 1>&6
8312 -echo "configure:3407: checking --disable-gtktest argument" >&5
8313 +echo "configure:3444: checking --disable-gtktest argument" >&5
8314    # Check whether --enable-gtktest or --disable-gtktest was given.
8315  if test "${enable_gtktest+set}" = set; then
8316    enableval="$enable_gtktest"
8317 @@ -3445,7 +3467,7 @@ fi
8318      # Extract the first word of "gtk-config", so it can be a program name with args.
8319  set dummy gtk-config; ac_word=$2
8320  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
8321 -echo "configure:3434: checking for $ac_word" >&5
8322 +echo "configure:3471: checking for $ac_word" >&5
8323  if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
8324    echo $ac_n "(cached) $ac_c" 1>&6
8325  else
8326 @@ -3482,7 +3504,7 @@ fi
8327              # Extract the first word of "gtk12-config", so it can be a program name with args.
8328  set dummy gtk12-config; ac_word=$2
8329  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
8330 -echo "configure:3471: checking for $ac_word" >&5
8331 +echo "configure:3508: checking for $ac_word" >&5
8332  if eval "test \"`echo '$''{'ac_cv_path_GTK12_CONFIG'+set}'`\" = set"; then
8333    echo $ac_n "(cached) $ac_c" 1>&6
8334  else
8335 @@ -3520,38 +3542,96 @@ fi
8336    else
8337      echo "$ac_t""Using GTK configuration program $GTK_CONFIG" 1>&6
8338    fi
8339 +  if test "X$PKG_CONFIG" = "X"; then
8340 +    # Extract the first word of "pkg-config", so it can be a program name with args.
8341 +set dummy pkg-config; ac_word=$2
8342 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
8343 +echo "configure:3550: checking for $ac_word" >&5
8344 +if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
8345 +  echo $ac_n "(cached) $ac_c" 1>&6
8346 +else
8347 +  case "$PKG_CONFIG" in
8348 +  /*)
8349 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
8350 +  ;;
8351 +  ?:/*)                         
8352 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path.
8353 +  ;;
8354 +  *)
8355 +  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
8356 +  ac_dummy="$PATH"
8357 +  for ac_dir in $ac_dummy; do 
8358 +    test -z "$ac_dir" && ac_dir=.
8359 +    if test -f $ac_dir/$ac_word; then
8360 +      ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
8361 +      break
8362 +    fi
8363 +  done
8364 +  IFS="$ac_save_ifs"
8365 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
8366 +  ;;
8367 +esac
8368 +fi
8369 +PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
8370 +if test -n "$PKG_CONFIG"; then
8371 +  echo "$ac_t""$PKG_CONFIG" 1>&6
8372 +else
8373 +  echo "$ac_t""no" 1>&6
8374 +fi
8375  
8376 -      if test "X$GTK_CONFIG" != "X"; then
8377 -    
8378 -  if test "X$GTK_CONFIG" != "X"; then
8379 +  fi
8380  
8381 +      if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
8382 +    
8383 +  if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
8384 +  {
8385      min_gtk_version=1.1.16
8386      echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
8387 -echo "configure:3516: checking for GTK - version >= $min_gtk_version" >&5
8388 +echo "configure:3591: checking for GTK - version >= $min_gtk_version" >&5
8389      no_gtk=""
8390 -    if test "$GTK_CONFIG" = "no" ; then
8391 -      no_gtk=yes
8392 -    else
8393 +    if test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno"; then
8394 +    {
8395 +                        if $PKG_CONFIG --exists gtk+-2.0; then
8396 +        GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
8397 +        GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
8398 +        gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
8399 +               sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'`
8400 +        gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
8401 +               sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'`
8402 +        gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
8403 +               sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'`
8404 +      else
8405 +        no_gtk=yes
8406 +      fi
8407 +    }
8408 +    elif test "X$GTK_CONFIG" != "Xno"; then
8409 +    {
8410        GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
8411        GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
8412 -      gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
8413 -            sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'`
8414 -      gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
8415 -            sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'`
8416 -      gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
8417 -            sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'`
8418 -      if test "x$enable_gtktest" = "xyes" ; then
8419 -       ac_save_CFLAGS="$CFLAGS"
8420 -       ac_save_LIBS="$LIBS"
8421 -       CFLAGS="$CFLAGS $GTK_CFLAGS"
8422 -       LIBS="$LIBS $GTK_LIBS"
8423 +      gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
8424 +            sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'`
8425 +      gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
8426 +            sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'`
8427 +      gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
8428 +            sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'`
8429 +    }
8430 +    else
8431 +      no_gtk=yes
8432 +    fi
8433 +
8434 +    if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
8435 +    {
8436 +      ac_save_CFLAGS="$CFLAGS"
8437 +      ac_save_LIBS="$LIBS"
8438 +      CFLAGS="$CFLAGS $GTK_CFLAGS"
8439 +      LIBS="$LIBS $GTK_LIBS"
8440  
8441 -                                       rm -f conf.gtktest
8442 -       if test "$cross_compiling" = yes; then
8443 +                              rm -f conf.gtktest
8444 +      if test "$cross_compiling" = yes; then
8445    echo $ac_n "cross compiling; assumed OK... $ac_c"
8446  else
8447    cat > conftest.$ac_ext <<EOF
8448 -#line 3540 "configure"
8449 +#line 3635 "configure"
8450  #include "confdefs.h"
8451  
8452  #include <gtk/gtk.h>
8453 @@ -3560,30 +3640,30 @@ else
8454  int
8455  main ()
8456  {
8457 -  int major, minor, micro;
8458 -  char *tmp_version;
8459 +int major, minor, micro;
8460 +char *tmp_version;
8461  
8462 -  system ("touch conf.gtktest");
8463 +system ("touch conf.gtktest");
8464  
8465 -  /* HP/UX 9 (%@#!) writes to sscanf strings */
8466 -  tmp_version = g_strdup("$min_gtk_version");
8467 -  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
8468 -     printf("%s, bad version string\n", "$min_gtk_version");
8469 -     exit(1);
8470 -   }
8471 -
8472 -  if ((gtk_major_version > major) ||
8473 -      ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
8474 -      ((gtk_major_version == major) && (gtk_minor_version == minor) &&
8475 -                                      (gtk_micro_version >= micro)))
8476 -  {
8477 -      return 0;
8478 -  }
8479 -  return 1;
8480 +/* HP/UX 9 (%@#!) writes to sscanf strings */
8481 +tmp_version = g_strdup("$min_gtk_version");
8482 +if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
8483 +   printf("%s, bad version string\n", "$min_gtk_version");
8484 +   exit(1);
8485 + }
8486 +
8487 +if ((gtk_major_version > major) ||
8488 +    ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
8489 +    ((gtk_major_version == major) && (gtk_minor_version == minor) &&
8490 +                                     (gtk_micro_version >= micro)))
8491 +{
8492 +    return 0;
8493 +}
8494 +return 1;
8495  }
8496  
8497  EOF
8498 -if { (eval echo configure:3572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
8499 +if { (eval echo configure:3667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
8500  then
8501    :
8502  else
8503 @@ -3595,17 +3675,18 @@ fi
8504  rm -fr conftest*
8505  fi
8506  
8507 -       CFLAGS="$ac_save_CFLAGS"
8508 -       LIBS="$ac_save_LIBS"
8509 -      fi
8510 +      CFLAGS="$ac_save_CFLAGS"
8511 +      LIBS="$ac_save_LIBS"
8512 +    }
8513      fi
8514      if test "x$no_gtk" = x ; then
8515 -      echo "$ac_t""yes" 1>&6
8516 +      echo "$ac_t""yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version" 1>&6
8517        GTK_LIBNAME="$GTK_LIBS"
8518                 GUI_INC_LOC="$GTK_CFLAGS"
8519      else
8520 +    {
8521        echo "$ac_t""no" 1>&6
8522 -      if test "$GTK_CONFIG" = "no" ; then
8523 +      if test "X$GTK_CONFIG" = "Xno" ; then
8524         :
8525        else
8526         if test -f conf.gtktest ; then
8527 @@ -3616,7 +3697,9 @@ fi
8528        GTK_CFLAGS=""
8529        GTK_LIBS=""
8530        :
8531 +    }
8532      fi
8533 +  }
8534    else
8535      GTK_CFLAGS=""
8536      GTK_LIBS=""
8537 @@ -3634,10 +3717,18 @@ fi
8538      fi
8539    fi
8540      if test "x$GUITYPE" = "xGTK"; then
8541 -    if test $gtk_config_major_version = 1 -a $gtk_config_minor_version -lt 2 -o $gtk_config_major_version = 1 -a $gtk_config_minor_version = 2 -a $gtk_config_micro_version -lt 3; then
8542 +    if test $gtk_major_version = 1 -a $gtk_minor_version -lt 2 -o $gtk_major_version = 1 -a $gtk_minor_version = 2 -a $gtk_micro_version -lt 3; then
8543        echo "$ac_t""this GTK version is old; version 1.2.3 or later is recommended" 1>&6
8544      else
8545 +    {
8546 +      if test $gtk_major_version -ge 2; then
8547 +       cat >> confdefs.h <<\EOF
8548 +#define HAVE_GTK2 1
8549 +EOF
8550 +
8551 +      fi
8552                          if test -z "$SKIP_GNOME"; then
8553 +      {
8554         
8555    
8556    
8557 @@ -3680,11 +3771,29 @@ else
8558  fi
8559  
8560  
8561 -  if test "x$want_gnome" = xyes; then
8562 +  if test "x$want_gnome" = xyes -a $gtk_major_version -ge 2; then
8563 +  {
8564 +    echo $ac_n "checking for libgnomeui-2.0""... $ac_c" 1>&6
8565 +echo "configure:3778: checking for libgnomeui-2.0" >&5
8566 +    if $PKG_CONFIG --exists libgnomeui-2.0; then
8567 +      echo "$ac_t""yes" 1>&6
8568 +      GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
8569 +      GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
8570 +      GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
8571 +      have_gnome=yes
8572 +    else
8573 +      echo "$ac_t""not found" 1>&6
8574 +      if test "x" = xfail; then
8575 +       { echo "configure: error: Could not find libgnomeui-2.0 via pkg-config" 1>&2; exit 1; }
8576 +      fi
8577 +    fi
8578 +  }
8579 +  elif test "x$want_gnome" = xyes; then
8580 +  {
8581      # Extract the first word of "gnome-config", so it can be a program name with args.
8582  set dummy gnome-config; ac_word=$2
8583  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
8584 -echo "configure:3673: checking for $ac_word" >&5
8585 +echo "configure:3797: checking for $ac_word" >&5
8586  if eval "test \"`echo '$''{'ac_cv_path_GNOME_CONFIG'+set}'`\" = set"; then
8587    echo $ac_n "(cached) $ac_c" 1>&6
8588  else
8589 @@ -3721,7 +3830,7 @@ fi
8590        no_gnome_config="yes"
8591      else
8592        echo $ac_n "checking if $GNOME_CONFIG works""... $ac_c" 1>&6
8593 -echo "configure:3710: checking if $GNOME_CONFIG works" >&5
8594 +echo "configure:3834: checking if $GNOME_CONFIG works" >&5
8595        if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
8596         echo "$ac_t""yes" 1>&6
8597         GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
8598 @@ -3746,7 +3855,7 @@ echo "configure:3710: checking if $GNOME
8599  
8600      if test "$no_gnome_config" = "yes"; then
8601        echo $ac_n "checking for gnomeConf.sh file in $gnome_prefix""... $ac_c" 1>&6
8602 -echo "configure:3735: checking for gnomeConf.sh file in $gnome_prefix" >&5
8603 +echo "configure:3859: checking for gnomeConf.sh file in $gnome_prefix" >&5
8604        if test -f $gnome_prefix/gnomeConf.sh; then
8605         echo "$ac_t""found" 1>&6
8606         echo "loading gnome configuration from" \
8607 @@ -3760,6 +3869,7 @@ echo "configure:3735: checking for gnome
8608         fi
8609        fi
8610      fi
8611 +  }
8612    fi
8613  
8614         if test x$have_gnome = xyes ; then
8615 @@ -3770,7 +3880,9 @@ EOF
8616           GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
8617           GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
8618         fi
8619 +      }
8620        fi
8621 +    }
8622      fi
8623    fi
8624  fi
8625 @@ -3781,7 +3893,7 @@ if test -z "$SKIP_MOTIF"; then
8626      GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
8627  
8628    echo $ac_n "checking for location of Motif GUI includes""... $ac_c" 1>&6
8629 -echo "configure:3770: checking for location of Motif GUI includes" >&5
8630 +echo "configure:3897: checking for location of Motif GUI includes" >&5
8631    gui_includes="`echo $x_includes|sed 's%/^/^/*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
8632    GUI_INC_LOC=
8633    for try in $gui_includes; do
8634 @@ -3805,7 +3917,7 @@ fi
8635  
8636  if test -z "$SKIP_MOTIF"; then
8637    echo $ac_n "checking --with-motif-lib argument""... $ac_c" 1>&6
8638 -echo "configure:3794: checking --with-motif-lib argument" >&5
8639 +echo "configure:3921: checking --with-motif-lib argument" >&5
8640    # Check whether --with-motif-lib or --without-motif-lib was given.
8641  if test "${with_motif_lib+set}" = set; then
8642    withval="$with_motif_lib"
8643 @@ -3822,7 +3934,7 @@ fi
8644          GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
8645  
8646      echo $ac_n "checking for location of Motif GUI libs""... $ac_c" 1>&6
8647 -echo "configure:3811: checking for location of Motif GUI libs" >&5
8648 +echo "configure:3938: checking for location of Motif GUI libs" >&5
8649      gui_libs="`echo $x_libraries|sed 's%/^/^/*$%%'` `echo "$gui_XXX" | sed s/XXX/lib/g` `echo "$GUI_INC_LOC" | sed s/include/lib/` $GUI_LIB_LOC"
8650      GUI_LIB_LOC=
8651      for try in $gui_libs; do
8652 @@ -3864,11 +3976,11 @@ GUI_X_LIBS=
8653  
8654  if test -z "$SKIP_ATHENA"; then
8655    echo $ac_n "checking if Athena header files can be found""... $ac_c" 1>&6
8656 -echo "configure:3853: checking if Athena header files can be found" >&5
8657 +echo "configure:3980: checking if Athena header files can be found" >&5
8658    cflags_save=$CFLAGS
8659    CFLAGS="$CFLAGS $X_CFLAGS"
8660    cat > conftest.$ac_ext <<EOF
8661 -#line 3857 "configure"
8662 +#line 3984 "configure"
8663  #include "confdefs.h"
8664  
8665  #include <X11/Intrinsic.h>
8666 @@ -3877,7 +3989,7 @@ int main() {
8667  
8668  ; return 0; }
8669  EOF
8670 -if { (eval echo configure:3866: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8671 +if { (eval echo configure:3993: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8672    rm -rf conftest*
8673    echo "$ac_t""yes" 1>&6
8674  else
8675 @@ -3905,7 +4017,7 @@ if test -z "$SKIP_ATHENA" -o -z "$SKIP_M
8676      ldflags_save=$LDFLAGS
8677    LDFLAGS="$X_LIBS $LDFLAGS"
8678    echo $ac_n "checking for XShapeQueryExtension in -lXext""... $ac_c" 1>&6
8679 -echo "configure:3894: checking for XShapeQueryExtension in -lXext" >&5
8680 +echo "configure:4021: checking for XShapeQueryExtension in -lXext" >&5
8681  ac_lib_var=`echo Xext'_'XShapeQueryExtension | sed 'y%./+-%__p_%'`
8682  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8683    echo $ac_n "(cached) $ac_c" 1>&6
8684 @@ -3913,7 +4025,7 @@ else
8685    ac_save_LIBS="$LIBS"
8686  LIBS="-lXext -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS"
8687  cat > conftest.$ac_ext <<EOF
8688 -#line 3902 "configure"
8689 +#line 4029 "configure"
8690  #include "confdefs.h"
8691  /* Override any gcc2 internal prototype to avoid an error.  */
8692  /* We use char because int might match the return type of a gcc2
8693 @@ -3924,7 +4036,7 @@ int main() {
8694  XShapeQueryExtension()
8695  ; return 0; }
8696  EOF
8697 -if { (eval echo configure:3913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8698 +if { (eval echo configure:4040: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8699    rm -rf conftest*
8700    eval "ac_cv_lib_$ac_lib_var=yes"
8701  else
8702 @@ -3945,7 +4057,7 @@ else
8703  fi
8704  
8705    echo $ac_n "checking for XmuCreateStippledPixmap in -lXmu""... $ac_c" 1>&6
8706 -echo "configure:3934: checking for XmuCreateStippledPixmap in -lXmu" >&5
8707 +echo "configure:4061: checking for XmuCreateStippledPixmap in -lXmu" >&5
8708  ac_lib_var=`echo Xmu'_'XmuCreateStippledPixmap | sed 'y%./+-%__p_%'`
8709  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8710    echo $ac_n "(cached) $ac_c" 1>&6
8711 @@ -3953,7 +4065,7 @@ else
8712    ac_save_LIBS="$LIBS"
8713  LIBS="-lXmu $GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS"
8714  cat > conftest.$ac_ext <<EOF
8715 -#line 3942 "configure"
8716 +#line 4069 "configure"
8717  #include "confdefs.h"
8718  /* Override any gcc2 internal prototype to avoid an error.  */
8719  /* We use char because int might match the return type of a gcc2
8720 @@ -3964,7 +4076,7 @@ int main() {
8721  XmuCreateStippledPixmap()
8722  ; return 0; }
8723  EOF
8724 -if { (eval echo configure:3953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8725 +if { (eval echo configure:4080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8726    rm -rf conftest*
8727    eval "ac_cv_lib_$ac_lib_var=yes"
8728  else
8729 @@ -3986,7 +4098,7 @@ fi
8730  
8731    if test -z "$SKIP_MOTIF"; then
8732      echo $ac_n "checking for XpEndJob in -lXp""... $ac_c" 1>&6
8733 -echo "configure:3975: checking for XpEndJob in -lXp" >&5
8734 +echo "configure:4102: checking for XpEndJob in -lXp" >&5
8735  ac_lib_var=`echo Xp'_'XpEndJob | sed 'y%./+-%__p_%'`
8736  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8737    echo $ac_n "(cached) $ac_c" 1>&6
8738 @@ -3994,7 +4106,7 @@ else
8739    ac_save_LIBS="$LIBS"
8740  LIBS="-lXp $GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS"
8741  cat > conftest.$ac_ext <<EOF
8742 -#line 3983 "configure"
8743 +#line 4110 "configure"
8744  #include "confdefs.h"
8745  /* Override any gcc2 internal prototype to avoid an error.  */
8746  /* We use char because int might match the return type of a gcc2
8747 @@ -4005,7 +4117,7 @@ int main() {
8748  XpEndJob()
8749  ; return 0; }
8750  EOF
8751 -if { (eval echo configure:3994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8752 +if { (eval echo configure:4121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8753    rm -rf conftest*
8754    eval "ac_cv_lib_$ac_lib_var=yes"
8755  else
8756 @@ -4029,7 +4141,7 @@ fi
8757    LDFLAGS=$ldflags_save
8758  
8759      echo $ac_n "checking for extra X11 defines""... $ac_c" 1>&6
8760 -echo "configure:4018: checking for extra X11 defines" >&5
8761 +echo "configure:4145: checking for extra X11 defines" >&5
8762    NARROW_PROTO=
8763    rm -fr conftestdir
8764    if mkdir conftestdir; then
8765 @@ -4059,17 +4171,17 @@ if test -z "$SKIP_ATHENA" -o -z "$SKIP_M
8766  do
8767  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
8768  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
8769 -echo "configure:4048: checking for $ac_hdr" >&5
8770 +echo "configure:4175: checking for $ac_hdr" >&5
8771  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
8772    echo $ac_n "(cached) $ac_c" 1>&6
8773  else
8774    cat > conftest.$ac_ext <<EOF
8775 -#line 4053 "configure"
8776 +#line 4180 "configure"
8777  #include "confdefs.h"
8778  #include <$ac_hdr>
8779  EOF
8780  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
8781 -{ (eval echo configure:4058: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
8782 +{ (eval echo configure:4185: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
8783  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
8784  if test -z "$ac_err"; then
8785    rm -rf conftest*
8786 @@ -4098,9 +4210,9 @@ done
8787  
8788      if test ! "$enable_xim" = "no"; then
8789      echo $ac_n "checking for XIMText in X11/Xlib.h""... $ac_c" 1>&6
8790 -echo "configure:4087: checking for XIMText in X11/Xlib.h" >&5
8791 +echo "configure:4214: checking for XIMText in X11/Xlib.h" >&5
8792      cat > conftest.$ac_ext <<EOF
8793 -#line 4089 "configure"
8794 +#line 4216 "configure"
8795  #include "confdefs.h"
8796  #include <X11/Xlib.h>
8797  EOF
8798 @@ -4117,6 +4229,8 @@ rm -f conftest*
8799    fi
8800    CPPFLAGS=$cppflags_save
8801  
8802 +                
8803 +
8804      if test "$enable_xim" = "auto" -a ! "$enable_hangulinput" = "yes" \
8805                 -a ! "x$GUITYPE" = "xNONE" ; then
8806      echo "$ac_t""X GUI selected; xim has been enabled" 1>&6
8807 @@ -4131,17 +4245,17 @@ if test -z "$SKIP_ATHENA" -o -z "$SKIP_M
8808  do
8809  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
8810  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
8811 -echo "configure:4120: checking for $ac_hdr" >&5
8812 +echo "configure:4249: checking for $ac_hdr" >&5
8813  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
8814    echo $ac_n "(cached) $ac_c" 1>&6
8815  else
8816    cat > conftest.$ac_ext <<EOF
8817 -#line 4125 "configure"
8818 +#line 4254 "configure"
8819  #include "confdefs.h"
8820  #include <$ac_hdr>
8821  EOF
8822  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
8823 -{ (eval echo configure:4130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
8824 +{ (eval echo configure:4259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
8825  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
8826  if test -z "$ac_err"; then
8827    rm -rf conftest*
8828 @@ -4177,17 +4291,17 @@ if test -z "$SKIP_MOTIF"; then
8829  do
8830  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
8831  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
8832 -echo "configure:4166: checking for $ac_hdr" >&5
8833 +echo "configure:4295: checking for $ac_hdr" >&5
8834  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
8835    echo $ac_n "(cached) $ac_c" 1>&6
8836  else
8837    cat > conftest.$ac_ext <<EOF
8838 -#line 4171 "configure"
8839 +#line 4300 "configure"
8840  #include "confdefs.h"
8841  #include <$ac_hdr>
8842  EOF
8843  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
8844 -{ (eval echo configure:4176: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
8845 +{ (eval echo configure:4305: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
8846  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
8847  if test -z "$ac_err"; then
8848    rm -rf conftest*
8849 @@ -4273,17 +4387,17 @@ fi
8850  
8851  
8852  echo $ac_n "checking quality of toupper""... $ac_c" 1>&6
8853 -echo "configure:4262: checking quality of toupper" >&5
8854 +echo "configure:4391: checking quality of toupper" >&5
8855  if test "$cross_compiling" = yes; then
8856    { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
8857  else
8858    cat > conftest.$ac_ext <<EOF
8859 -#line 4267 "configure"
8860 +#line 4396 "configure"
8861  #include "confdefs.h"
8862  #include <ctype.h>
8863  main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
8864  EOF
8865 -if { (eval echo configure:4272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
8866 +if { (eval echo configure:4401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
8867  then
8868    cat >> confdefs.h <<\EOF
8869  #define BROKEN_TOUPPER 1
8870 @@ -4300,16 +4414,16 @@ fi
8871  
8872  
8873  echo $ac_n "checking whether __DATE__ and __TIME__ work""... $ac_c" 1>&6
8874 -echo "configure:4289: checking whether __DATE__ and __TIME__ work" >&5
8875 +echo "configure:4418: checking whether __DATE__ and __TIME__ work" >&5
8876  cat > conftest.$ac_ext <<EOF
8877 -#line 4291 "configure"
8878 +#line 4420 "configure"
8879  #include "confdefs.h"
8880  
8881  int main() {
8882  printf("(" __DATE__ " " __TIME__ ")");
8883  ; return 0; }
8884  EOF
8885 -if { (eval echo configure:4298: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8886 +if { (eval echo configure:4427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8887    rm -rf conftest*
8888    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
8889  #define HAVE_DATE_TIME 1
8890 @@ -4325,17 +4439,17 @@ rm -f conftest*
8891  
8892  ac_safe=`echo "elf.h" | sed 'y%./+-%__p_%'`
8893  echo $ac_n "checking for elf.h""... $ac_c" 1>&6
8894 -echo "configure:4314: checking for elf.h" >&5
8895 +echo "configure:4443: checking for elf.h" >&5
8896  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
8897    echo $ac_n "(cached) $ac_c" 1>&6
8898  else
8899    cat > conftest.$ac_ext <<EOF
8900 -#line 4319 "configure"
8901 +#line 4448 "configure"
8902  #include "confdefs.h"
8903  #include <elf.h>
8904  EOF
8905  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
8906 -{ (eval echo configure:4324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
8907 +{ (eval echo configure:4453: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
8908  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
8909  if test -z "$ac_err"; then
8910    rm -rf conftest*
8911 @@ -4358,7 +4472,7 @@ fi
8912  
8913  if test "$HAS_ELF" = 1; then
8914    echo $ac_n "checking for main in -lelf""... $ac_c" 1>&6
8915 -echo "configure:4347: checking for main in -lelf" >&5
8916 +echo "configure:4476: checking for main in -lelf" >&5
8917  ac_lib_var=`echo elf'_'main | sed 'y%./+-%__p_%'`
8918  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8919    echo $ac_n "(cached) $ac_c" 1>&6
8920 @@ -4366,14 +4480,14 @@ else
8921    ac_save_LIBS="$LIBS"
8922  LIBS="-lelf  $LIBS"
8923  cat > conftest.$ac_ext <<EOF
8924 -#line 4355 "configure"
8925 +#line 4484 "configure"
8926  #include "confdefs.h"
8927  
8928  int main() {
8929  main()
8930  ; return 0; }
8931  EOF
8932 -if { (eval echo configure:4362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8933 +if { (eval echo configure:4491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8934    rm -rf conftest*
8935    eval "ac_cv_lib_$ac_lib_var=yes"
8936  else
8937 @@ -4407,12 +4521,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/di
8938  do
8939  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
8940  echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
8941 -echo "configure:4396: checking for $ac_hdr that defines DIR" >&5
8942 +echo "configure:4525: checking for $ac_hdr that defines DIR" >&5
8943  if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
8944    echo $ac_n "(cached) $ac_c" 1>&6
8945  else
8946    cat > conftest.$ac_ext <<EOF
8947 -#line 4401 "configure"
8948 +#line 4530 "configure"
8949  #include "confdefs.h"
8950  #include <sys/types.h>
8951  #include <$ac_hdr>
8952 @@ -4420,7 +4534,7 @@ int main() {
8953  DIR *dirp = 0;
8954  ; return 0; }
8955  EOF
8956 -if { (eval echo configure:4409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8957 +if { (eval echo configure:4538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
8958    rm -rf conftest*
8959    eval "ac_cv_header_dirent_$ac_safe=yes"
8960  else
8961 @@ -4445,7 +4559,7 @@ done
8962  # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
8963  if test $ac_header_dirent = dirent.h; then
8964  echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
8965 -echo "configure:4434: checking for opendir in -ldir" >&5
8966 +echo "configure:4563: checking for opendir in -ldir" >&5
8967  ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
8968  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8969    echo $ac_n "(cached) $ac_c" 1>&6
8970 @@ -4453,7 +4567,7 @@ else
8971    ac_save_LIBS="$LIBS"
8972  LIBS="-ldir  $LIBS"
8973  cat > conftest.$ac_ext <<EOF
8974 -#line 4442 "configure"
8975 +#line 4571 "configure"
8976  #include "confdefs.h"
8977  /* Override any gcc2 internal prototype to avoid an error.  */
8978  /* We use char because int might match the return type of a gcc2
8979 @@ -4464,7 +4578,7 @@ int main() {
8980  opendir()
8981  ; return 0; }
8982  EOF
8983 -if { (eval echo configure:4453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8984 +if { (eval echo configure:4582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
8985    rm -rf conftest*
8986    eval "ac_cv_lib_$ac_lib_var=yes"
8987  else
8988 @@ -4486,7 +4600,7 @@ fi
8989  
8990  else
8991  echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
8992 -echo "configure:4475: checking for opendir in -lx" >&5
8993 +echo "configure:4604: checking for opendir in -lx" >&5
8994  ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
8995  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
8996    echo $ac_n "(cached) $ac_c" 1>&6
8997 @@ -4494,7 +4608,7 @@ else
8998    ac_save_LIBS="$LIBS"
8999  LIBS="-lx  $LIBS"
9000  cat > conftest.$ac_ext <<EOF
9001 -#line 4483 "configure"
9002 +#line 4612 "configure"
9003  #include "confdefs.h"
9004  /* Override any gcc2 internal prototype to avoid an error.  */
9005  /* We use char because int might match the return type of a gcc2
9006 @@ -4505,7 +4619,7 @@ int main() {
9007  opendir()
9008  ; return 0; }
9009  EOF
9010 -if { (eval echo configure:4494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9011 +if { (eval echo configure:4623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9012    rm -rf conftest*
9013    eval "ac_cv_lib_$ac_lib_var=yes"
9014  else
9015 @@ -4529,12 +4643,12 @@ fi
9016  
9017  
9018  echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
9019 -echo "configure:4518: checking for ANSI C header files" >&5
9020 +echo "configure:4647: checking for ANSI C header files" >&5
9021  if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
9022    echo $ac_n "(cached) $ac_c" 1>&6
9023  else
9024    cat > conftest.$ac_ext <<EOF
9025 -#line 4523 "configure"
9026 +#line 4652 "configure"
9027  #include "confdefs.h"
9028  #include <stdlib.h>
9029  #include <stdarg.h>
9030 @@ -4542,7 +4656,7 @@ else
9031  #include <float.h>
9032  EOF
9033  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
9034 -{ (eval echo configure:4531: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
9035 +{ (eval echo configure:4660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
9036  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
9037  if test -z "$ac_err"; then
9038    rm -rf conftest*
9039 @@ -4559,7 +4673,7 @@ rm -f conftest*
9040  if test $ac_cv_header_stdc = yes; then
9041    # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
9042  cat > conftest.$ac_ext <<EOF
9043 -#line 4548 "configure"
9044 +#line 4677 "configure"
9045  #include "confdefs.h"
9046  #include <string.h>
9047  EOF
9048 @@ -4577,7 +4691,7 @@ fi
9049  if test $ac_cv_header_stdc = yes; then
9050    # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
9051  cat > conftest.$ac_ext <<EOF
9052 -#line 4566 "configure"
9053 +#line 4695 "configure"
9054  #include "confdefs.h"
9055  #include <stdlib.h>
9056  EOF
9057 @@ -4598,7 +4712,7 @@ if test "$cross_compiling" = yes; then
9058    :
9059  else
9060    cat > conftest.$ac_ext <<EOF
9061 -#line 4587 "configure"
9062 +#line 4716 "configure"
9063  #include "confdefs.h"
9064  #include <ctype.h>
9065  #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
9066 @@ -4609,7 +4723,7 @@ if (XOR (islower (i), ISLOWER (i)) || to
9067  exit (0); }
9068  
9069  EOF
9070 -if { (eval echo configure:4598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9071 +if { (eval echo configure:4727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9072  then
9073    :
9074  else
9075 @@ -4633,12 +4747,12 @@ EOF
9076  fi
9077  
9078  echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
9079 -echo "configure:4622: checking for sys/wait.h that is POSIX.1 compatible" >&5
9080 +echo "configure:4751: checking for sys/wait.h that is POSIX.1 compatible" >&5
9081  if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
9082    echo $ac_n "(cached) $ac_c" 1>&6
9083  else
9084    cat > conftest.$ac_ext <<EOF
9085 -#line 4627 "configure"
9086 +#line 4756 "configure"
9087  #include "confdefs.h"
9088  #include <sys/types.h>
9089  #include <sys/wait.h>
9090 @@ -4654,7 +4768,7 @@ wait (&s);
9091  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
9092  ; return 0; }
9093  EOF
9094 -if { (eval echo configure:4643: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9095 +if { (eval echo configure:4772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9096    rm -rf conftest*
9097    ac_cv_header_sys_wait_h=yes
9098  else
9099 @@ -4677,16 +4791,16 @@ fi
9100  
9101  if test $ac_cv_header_sys_wait_h = no; then
9102    echo $ac_n "checking for sys/wait.h that defines union wait""... $ac_c" 1>&6
9103 -echo "configure:4666: checking for sys/wait.h that defines union wait" >&5
9104 +echo "configure:4795: checking for sys/wait.h that defines union wait" >&5
9105    cat > conftest.$ac_ext <<EOF
9106 -#line 4668 "configure"
9107 +#line 4797 "configure"
9108  #include "confdefs.h"
9109  #include <sys/wait.h>
9110  int main() {
9111  union wait xx, yy; xx = yy
9112  ; return 0; }
9113  EOF
9114 -if { (eval echo configure:4675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9115 +if { (eval echo configure:4804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9116    rm -rf conftest*
9117    echo "$ac_t""yes" 1>&6
9118                         cat >> confdefs.h <<\EOF
9119 @@ -4717,17 +4831,17 @@ for ac_hdr in stdarg.h stdlib.h string.h
9120  do
9121  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
9122  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
9123 -echo "configure:4706: checking for $ac_hdr" >&5
9124 +echo "configure:4835: checking for $ac_hdr" >&5
9125  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
9126    echo $ac_n "(cached) $ac_c" 1>&6
9127  else
9128    cat > conftest.$ac_ext <<EOF
9129 -#line 4711 "configure"
9130 +#line 4840 "configure"
9131  #include "confdefs.h"
9132  #include <$ac_hdr>
9133  EOF
9134  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
9135 -{ (eval echo configure:4716: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
9136 +{ (eval echo configure:4845: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
9137  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
9138  if test -z "$ac_err"; then
9139    rm -rf conftest*
9140 @@ -4755,11 +4869,11 @@ done
9141  
9142  
9143  echo $ac_n "checking if strings.h can be included after string.h""... $ac_c" 1>&6
9144 -echo "configure:4744: checking if strings.h can be included after string.h" >&5
9145 +echo "configure:4873: checking if strings.h can be included after string.h" >&5
9146  cppflags_save=$CPPFLAGS
9147  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
9148  cat > conftest.$ac_ext <<EOF
9149 -#line 4748 "configure"
9150 +#line 4877 "configure"
9151  #include "confdefs.h"
9152  
9153  #if defined(_AIX) && !defined(_NO_PROTO)
9154 @@ -4779,7 +4893,7 @@ int main() {
9155  int i; i = 0;
9156  ; return 0; }
9157  EOF
9158 -if { (eval echo configure:4768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9159 +if { (eval echo configure:4897: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9160    rm -rf conftest*
9161    echo "$ac_t""yes" 1>&6
9162  else
9163 @@ -4797,13 +4911,13 @@ CPPFLAGS=$cppflags_save
9164  
9165  if test $ac_cv_prog_gcc = yes; then
9166      echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
9167 -echo "configure:4786: checking whether ${CC-cc} needs -traditional" >&5
9168 +echo "configure:4915: checking whether ${CC-cc} needs -traditional" >&5
9169  if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
9170    echo $ac_n "(cached) $ac_c" 1>&6
9171  else
9172      ac_pattern="Autoconf.*'x'"
9173    cat > conftest.$ac_ext <<EOF
9174 -#line 4792 "configure"
9175 +#line 4921 "configure"
9176  #include "confdefs.h"
9177  #include <sgtty.h>
9178  Autoconf TIOCGETP
9179 @@ -4821,7 +4935,7 @@ rm -f conftest*
9180  
9181    if test $ac_cv_prog_gcc_traditional = no; then
9182      cat > conftest.$ac_ext <<EOF
9183 -#line 4810 "configure"
9184 +#line 4939 "configure"
9185  #include "confdefs.h"
9186  #include <termio.h>
9187  Autoconf TCGETA
9188 @@ -4843,12 +4957,12 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional
9189  fi
9190  
9191  echo $ac_n "checking for working const""... $ac_c" 1>&6
9192 -echo "configure:4832: checking for working const" >&5
9193 +echo "configure:4961: checking for working const" >&5
9194  if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
9195    echo $ac_n "(cached) $ac_c" 1>&6
9196  else
9197    cat > conftest.$ac_ext <<EOF
9198 -#line 4837 "configure"
9199 +#line 4966 "configure"
9200  #include "confdefs.h"
9201  
9202  int main() {
9203 @@ -4897,7 +5011,7 @@ ccp = (char const *const *) p;
9204  
9205  ; return 0; }
9206  EOF
9207 -if { (eval echo configure:4886: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9208 +if { (eval echo configure:5015: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9209    rm -rf conftest*
9210    ac_cv_c_const=yes
9211  else
9212 @@ -4918,12 +5032,12 @@ EOF
9213  fi
9214  
9215  echo $ac_n "checking for mode_t""... $ac_c" 1>&6
9216 -echo "configure:4907: checking for mode_t" >&5
9217 +echo "configure:5036: checking for mode_t" >&5
9218  if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
9219    echo $ac_n "(cached) $ac_c" 1>&6
9220  else
9221    cat > conftest.$ac_ext <<EOF
9222 -#line 4912 "configure"
9223 +#line 5041 "configure"
9224  #include "confdefs.h"
9225  #include <sys/types.h>
9226  #if STDC_HEADERS
9227 @@ -4951,12 +5065,12 @@ EOF
9228  fi
9229  
9230  echo $ac_n "checking for off_t""... $ac_c" 1>&6
9231 -echo "configure:4940: checking for off_t" >&5
9232 +echo "configure:5069: checking for off_t" >&5
9233  if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
9234    echo $ac_n "(cached) $ac_c" 1>&6
9235  else
9236    cat > conftest.$ac_ext <<EOF
9237 -#line 4945 "configure"
9238 +#line 5074 "configure"
9239  #include "confdefs.h"
9240  #include <sys/types.h>
9241  #if STDC_HEADERS
9242 @@ -4984,12 +5098,12 @@ EOF
9243  fi
9244  
9245  echo $ac_n "checking for pid_t""... $ac_c" 1>&6
9246 -echo "configure:4973: checking for pid_t" >&5
9247 +echo "configure:5102: checking for pid_t" >&5
9248  if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
9249    echo $ac_n "(cached) $ac_c" 1>&6
9250  else
9251    cat > conftest.$ac_ext <<EOF
9252 -#line 4978 "configure"
9253 +#line 5107 "configure"
9254  #include "confdefs.h"
9255  #include <sys/types.h>
9256  #if STDC_HEADERS
9257 @@ -5017,12 +5131,12 @@ EOF
9258  fi
9259  
9260  echo $ac_n "checking for size_t""... $ac_c" 1>&6
9261 -echo "configure:5006: checking for size_t" >&5
9262 +echo "configure:5135: checking for size_t" >&5
9263  if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
9264    echo $ac_n "(cached) $ac_c" 1>&6
9265  else
9266    cat > conftest.$ac_ext <<EOF
9267 -#line 5011 "configure"
9268 +#line 5140 "configure"
9269  #include "confdefs.h"
9270  #include <sys/types.h>
9271  #if STDC_HEADERS
9272 @@ -5050,12 +5164,12 @@ EOF
9273  fi
9274  
9275  echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
9276 -echo "configure:5039: checking for uid_t in sys/types.h" >&5
9277 +echo "configure:5168: checking for uid_t in sys/types.h" >&5
9278  if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
9279    echo $ac_n "(cached) $ac_c" 1>&6
9280  else
9281    cat > conftest.$ac_ext <<EOF
9282 -#line 5044 "configure"
9283 +#line 5173 "configure"
9284  #include "confdefs.h"
9285  #include <sys/types.h>
9286  EOF
9287 @@ -5084,12 +5198,12 @@ EOF
9288  fi
9289  
9290  echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
9291 -echo "configure:5073: checking whether time.h and sys/time.h may both be included" >&5
9292 +echo "configure:5202: checking whether time.h and sys/time.h may both be included" >&5
9293  if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
9294    echo $ac_n "(cached) $ac_c" 1>&6
9295  else
9296    cat > conftest.$ac_ext <<EOF
9297 -#line 5078 "configure"
9298 +#line 5207 "configure"
9299  #include "confdefs.h"
9300  #include <sys/types.h>
9301  #include <sys/time.h>
9302 @@ -5098,7 +5212,7 @@ int main() {
9303  struct tm *tp;
9304  ; return 0; }
9305  EOF
9306 -if { (eval echo configure:5087: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9307 +if { (eval echo configure:5216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9308    rm -rf conftest*
9309    ac_cv_header_time=yes
9310  else
9311 @@ -5119,12 +5233,12 @@ EOF
9312  fi
9313  
9314  echo $ac_n "checking for ino_t""... $ac_c" 1>&6
9315 -echo "configure:5108: checking for ino_t" >&5
9316 +echo "configure:5237: checking for ino_t" >&5
9317  if eval "test \"`echo '$''{'ac_cv_type_ino_t'+set}'`\" = set"; then
9318    echo $ac_n "(cached) $ac_c" 1>&6
9319  else
9320    cat > conftest.$ac_ext <<EOF
9321 -#line 5113 "configure"
9322 +#line 5242 "configure"
9323  #include "confdefs.h"
9324  #include <sys/types.h>
9325  #if STDC_HEADERS
9326 @@ -5152,12 +5266,12 @@ EOF
9327  fi
9328  
9329  echo $ac_n "checking for dev_t""... $ac_c" 1>&6
9330 -echo "configure:5141: checking for dev_t" >&5
9331 +echo "configure:5270: checking for dev_t" >&5
9332  if eval "test \"`echo '$''{'ac_cv_type_dev_t'+set}'`\" = set"; then
9333    echo $ac_n "(cached) $ac_c" 1>&6
9334  else
9335    cat > conftest.$ac_ext <<EOF
9336 -#line 5146 "configure"
9337 +#line 5275 "configure"
9338  #include "confdefs.h"
9339  #include <sys/types.h>
9340  #if STDC_HEADERS
9341 @@ -5186,12 +5300,12 @@ fi
9342  
9343  
9344  echo $ac_n "checking for rlim_t""... $ac_c" 1>&6
9345 -echo "configure:5175: checking for rlim_t" >&5
9346 +echo "configure:5304: checking for rlim_t" >&5
9347  if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
9348    echo "$ac_t""(cached) $ac_cv_type_rlim_t" 1>&6
9349  else
9350    cat > conftest.$ac_ext <<EOF
9351 -#line 5180 "configure"
9352 +#line 5309 "configure"
9353  #include "confdefs.h"
9354  
9355  #include <sys/types.h>
9356 @@ -5223,12 +5337,12 @@ EOF
9357  fi
9358  
9359  echo $ac_n "checking for stack_t""... $ac_c" 1>&6
9360 -echo "configure:5212: checking for stack_t" >&5
9361 +echo "configure:5341: checking for stack_t" >&5
9362  if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
9363    echo "$ac_t""(cached) $ac_cv_type_stack_t" 1>&6
9364  else
9365    cat > conftest.$ac_ext <<EOF
9366 -#line 5217 "configure"
9367 +#line 5346 "configure"
9368  #include "confdefs.h"
9369  
9370  #include <sys/types.h>
9371 @@ -5258,9 +5372,9 @@ EOF
9372  fi
9373  
9374  echo $ac_n "checking whether stack_t has an ss_base field""... $ac_c" 1>&6
9375 -echo "configure:5255: checking whether stack_t has an ss_base field" >&5
9376 +echo "configure:5376: checking whether stack_t has an ss_base field" >&5
9377  cat > conftest.$ac_ext <<EOF
9378 -#line 5257 "configure"
9379 +#line 5378 "configure"
9380  #include "confdefs.h"
9381  
9382  #include <sys/types.h>
9383 @@ -5275,7 +5389,7 @@ int main() {
9384  stack_t sigstk; sigstk.ss_base = 0; 
9385  ; return 0; }
9386  EOF
9387 -if { (eval echo configure:5272: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9388 +if { (eval echo configure:5393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9389    rm -rf conftest*
9390    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9391  #define HAVE_SS_BASE 1
9392 @@ -5291,7 +5405,7 @@ rm -f conftest*
9393  
9394  olibs="$LIBS"
9395  echo $ac_n "checking --with-tlib argument""... $ac_c" 1>&6
9396 -echo "configure:5288: checking --with-tlib argument" >&5
9397 +echo "configure:5409: checking --with-tlib argument" >&5
9398  # Check whether --with-tlib or --without-tlib was given.
9399  if test "${with_tlib+set}" = set; then
9400    withval="$with_tlib"
9401 @@ -5309,7 +5423,7 @@ else
9402    esac
9403    for libname in $tlibs; do
9404      echo $ac_n "checking for tgetent in -l${libname}""... $ac_c" 1>&6
9405 -echo "configure:5266: checking for tgetent in -l${libname}" >&5
9406 +echo "configure:5427: checking for tgetent in -l${libname}" >&5
9407  ac_lib_var=`echo ${libname}'_'tgetent | sed 'y%./+-%__p_%'`
9408  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
9409    echo $ac_n "(cached) $ac_c" 1>&6
9410 @@ -5317,7 +5431,7 @@ else
9411    ac_save_LIBS="$LIBS"
9412  LIBS="-l${libname}  $LIBS"
9413  cat > conftest.$ac_ext <<EOF
9414 -#line 5274 "configure"
9415 +#line 5435 "configure"
9416  #include "confdefs.h"
9417  /* Override any gcc2 internal prototype to avoid an error.  */
9418  /* We use char because int might match the return type of a gcc2
9419 @@ -5328,7 +5442,7 @@ int main() {
9420  tgetent()
9421  ; return 0; }
9422  EOF
9423 -if { (eval echo configure:5285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9424 +if { (eval echo configure:5446: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9425    rm -rf conftest*
9426    eval "ac_cv_lib_$ac_lib_var=yes"
9427  else
9428 @@ -5360,7 +5474,7 @@ fi
9429    res="FAIL"
9430  else
9431    cat > conftest.$ac_ext <<EOF
9432 -#line 5317 "configure"
9433 +#line 5478 "configure"
9434  #include "confdefs.h"
9435  
9436  #ifdef HAVE_TERMCAP_H
9437 @@ -5368,7 +5482,7 @@ else
9438  #endif
9439  main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }
9440  EOF
9441 -if { (eval echo configure:5325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9442 +if { (eval echo configure:5486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9443  then
9444    res="OK"
9445  else
9446 @@ -5390,12 +5504,12 @@ fi
9447  fi
9448  if test "x$olibs" != "x$LIBS"; then
9449    echo $ac_n "checking whether we talk terminfo""... $ac_c" 1>&6
9450 -echo "configure:5347: checking whether we talk terminfo" >&5
9451 +echo "configure:5508: checking whether we talk terminfo" >&5
9452    if test "$cross_compiling" = yes; then
9453    { echo "configure: error: failed to compile test program." 1>&2; exit 1; }
9454  else
9455    cat > conftest.$ac_ext <<EOF
9456 -#line 5352 "configure"
9457 +#line 5513 "configure"
9458  #include "confdefs.h"
9459  
9460  #ifdef HAVE_TERMCAP_H
9461 @@ -5404,7 +5518,7 @@ else
9462  main()
9463  {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
9464  EOF
9465 -if { (eval echo configure:5361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9466 +if { (eval echo configure:5522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9467  then
9468    echo "$ac_t""no -- we are in termcap land" 1>&6
9469  else
9470 @@ -5424,9 +5538,9 @@ else
9471  fi
9472  
9473  echo $ac_n "checking whether termcap.h contains ospeed""... $ac_c" 1>&6
9474 -echo "configure:5381: checking whether termcap.h contains ospeed" >&5
9475 +echo "configure:5542: checking whether termcap.h contains ospeed" >&5
9476  cat > conftest.$ac_ext <<EOF
9477 -#line 5383 "configure"
9478 +#line 5544 "configure"
9479  #include "confdefs.h"
9480  
9481  #ifdef HAVE_TERMCAP_H
9482 @@ -5437,7 +5551,7 @@ int main() {
9483  ospeed = 20000
9484  ; return 0; }
9485  EOF
9486 -if { (eval echo configure:5394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9487 +if { (eval echo configure:5555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9488    rm -rf conftest*
9489    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9490  #define HAVE_OSPEED 1
9491 @@ -5449,9 +5563,9 @@ else
9492    rm -rf conftest*
9493    echo "$ac_t""no" 1>&6
9494         echo $ac_n "checking whether ospeed can be extern""... $ac_c" 1>&6
9495 -echo "configure:5406: checking whether ospeed can be extern" >&5
9496 +echo "configure:5567: checking whether ospeed can be extern" >&5
9497         cat > conftest.$ac_ext <<EOF
9498 -#line 5408 "configure"
9499 +#line 5569 "configure"
9500  #include "confdefs.h"
9501  
9502  #ifdef HAVE_TERMCAP_H
9503 @@ -5463,7 +5577,7 @@ int main() {
9504  ospeed = 20000
9505  ; return 0; }
9506  EOF
9507 -if { (eval echo configure:5420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9508 +if { (eval echo configure:5581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9509    rm -rf conftest*
9510    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9511  #define OSPEED_EXTERN 1
9512 @@ -5481,9 +5595,9 @@ fi
9513  rm -f conftest*
9514  
9515  echo $ac_n "checking whether termcap.h contains UP, BC and PC""... $ac_c" 1>&6
9516 -echo "configure:5438: checking whether termcap.h contains UP, BC and PC" >&5
9517 +echo "configure:5599: checking whether termcap.h contains UP, BC and PC" >&5
9518  cat > conftest.$ac_ext <<EOF
9519 -#line 5440 "configure"
9520 +#line 5601 "configure"
9521  #include "confdefs.h"
9522  
9523  #ifdef HAVE_TERMCAP_H
9524 @@ -5494,7 +5608,7 @@ int main() {
9525  if (UP == 0 && BC == 0) PC = 1
9526  ; return 0; }
9527  EOF
9528 -if { (eval echo configure:5451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9529 +if { (eval echo configure:5612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9530    rm -rf conftest*
9531    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9532  #define HAVE_UP_BC_PC 1
9533 @@ -5506,9 +5620,9 @@ else
9534    rm -rf conftest*
9535    echo "$ac_t""no" 1>&6
9536         echo $ac_n "checking whether UP, BC and PC can be extern""... $ac_c" 1>&6
9537 -echo "configure:5463: checking whether UP, BC and PC can be extern" >&5
9538 +echo "configure:5624: checking whether UP, BC and PC can be extern" >&5
9539         cat > conftest.$ac_ext <<EOF
9540 -#line 5465 "configure"
9541 +#line 5626 "configure"
9542  #include "confdefs.h"
9543  
9544  #ifdef HAVE_TERMCAP_H
9545 @@ -5520,7 +5634,7 @@ int main() {
9546  if (UP == 0 && BC == 0) PC = 1
9547  ; return 0; }
9548  EOF
9549 -if { (eval echo configure:5477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9550 +if { (eval echo configure:5638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9551    rm -rf conftest*
9552    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9553  #define UP_BC_PC_EXTERN 1
9554 @@ -5538,9 +5652,9 @@ fi
9555  rm -f conftest*
9556  
9557  echo $ac_n "checking whether tputs() uses outfuntype""... $ac_c" 1>&6
9558 -echo "configure:5495: checking whether tputs() uses outfuntype" >&5
9559 +echo "configure:5656: checking whether tputs() uses outfuntype" >&5
9560  cat > conftest.$ac_ext <<EOF
9561 -#line 5497 "configure"
9562 +#line 5658 "configure"
9563  #include "confdefs.h"
9564  
9565  #ifdef HAVE_TERMCAP_H
9566 @@ -5551,7 +5665,7 @@ int main() {
9567  extern int xx(); tputs("test", 1, (outfuntype)xx)
9568  ; return 0; }
9569  EOF
9570 -if { (eval echo configure:5508: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9571 +if { (eval echo configure:5669: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9572    rm -rf conftest*
9573    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9574  #define HAVE_OUTFUNTYPE 1
9575 @@ -5566,9 +5680,9 @@ fi
9576  rm -f conftest*
9577  
9578  echo $ac_n "checking whether sys/select.h and sys/time.h may both be included""... $ac_c" 1>&6
9579 -echo "configure:5523: checking whether sys/select.h and sys/time.h may both be included" >&5
9580 +echo "configure:5684: checking whether sys/select.h and sys/time.h may both be included" >&5
9581  cat > conftest.$ac_ext <<EOF
9582 -#line 5525 "configure"
9583 +#line 5686 "configure"
9584  #include "confdefs.h"
9585  
9586  #include <sys/types.h>
9587 @@ -5578,7 +5692,7 @@ int main() {
9588  
9589  ; return 0; }
9590  EOF
9591 -if { (eval echo configure:5535: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9592 +if { (eval echo configure:5696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9593    rm -rf conftest*
9594    echo "$ac_t""yes" 1>&6
9595                         cat >> confdefs.h <<\EOF
9596 @@ -5595,7 +5709,7 @@ rm -f conftest*
9597  
9598  
9599  echo $ac_n "checking for /dev/ptc""... $ac_c" 1>&6
9600 -echo "configure:5552: checking for /dev/ptc" >&5
9601 +echo "configure:5713: checking for /dev/ptc" >&5
9602  if test -r /dev/ptc; then
9603    cat >> confdefs.h <<\EOF
9604  #define HAVE_DEV_PTC 1
9605 @@ -5607,17 +5721,17 @@ else
9606  fi
9607  
9608  echo $ac_n "checking for SVR4 ptys""... $ac_c" 1>&6
9609 -echo "configure:5564: checking for SVR4 ptys" >&5
9610 +echo "configure:5725: checking for SVR4 ptys" >&5
9611  if test -c /dev/ptmx ; then
9612    cat > conftest.$ac_ext <<EOF
9613 -#line 5567 "configure"
9614 +#line 5728 "configure"
9615  #include "confdefs.h"
9616  
9617  int main() {
9618  ptsname(0);grantpt(0);unlockpt(0);
9619  ; return 0; }
9620  EOF
9621 -if { (eval echo configure:5574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9622 +if { (eval echo configure:5735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9623    rm -rf conftest*
9624    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9625  #define HAVE_SVR4_PTYS 1
9626 @@ -5635,14 +5749,14 @@ else
9627  fi
9628  
9629  echo $ac_n "checking for ptyranges""... $ac_c" 1>&6
9630 -echo "configure:5592: checking for ptyranges" >&5
9631 +echo "configure:5753: checking for ptyranges" >&5
9632  if test -d /dev/ptym ; then
9633    pdir='/dev/ptym'
9634  else
9635    pdir='/dev'
9636  fi
9637  cat > conftest.$ac_ext <<EOF
9638 -#line 5599 "configure"
9639 +#line 5760 "configure"
9640  #include "confdefs.h"
9641  #ifdef M_UNIX
9642     yes;
9643 @@ -5676,13 +5790,13 @@ else
9644  fi
9645  
9646  echo $ac_n "checking default tty permissions/group""... $ac_c" 1>&6
9647 -echo "configure:5633: checking default tty permissions/group" >&5
9648 +echo "configure:5794: checking default tty permissions/group" >&5
9649  rm -f conftest_grp
9650  if test "$cross_compiling" = yes; then
9651    { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
9652  else
9653    cat > conftest.$ac_ext <<EOF
9654 -#line 5639 "configure"
9655 +#line 5800 "configure"
9656  #include "confdefs.h"
9657  
9658  #include <sys/types.h>
9659 @@ -5714,7 +5828,7 @@ main()
9660  }
9661  
9662  EOF
9663 -if { (eval echo configure:5671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9664 +if { (eval echo configure:5832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9665  then
9666    
9667      if test -f conftest_grp; then
9668 @@ -5745,12 +5859,12 @@ rm -f conftest_grp
9669  
9670  
9671  echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
9672 -echo "configure:5702: checking return type of signal handlers" >&5
9673 +echo "configure:5863: checking return type of signal handlers" >&5
9674  if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
9675    echo $ac_n "(cached) $ac_c" 1>&6
9676  else
9677    cat > conftest.$ac_ext <<EOF
9678 -#line 5707 "configure"
9679 +#line 5868 "configure"
9680  #include "confdefs.h"
9681  #include <sys/types.h>
9682  #include <signal.h>
9683 @@ -5767,7 +5881,7 @@ int main() {
9684  int i;
9685  ; return 0; }
9686  EOF
9687 -if { (eval echo configure:5724: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9688 +if { (eval echo configure:5885: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9689    rm -rf conftest*
9690    ac_cv_type_signal=void
9691  else
9692 @@ -5799,9 +5913,9 @@ EOF
9693  fi
9694  
9695  echo $ac_n "checking for struct sigcontext""... $ac_c" 1>&6
9696 -echo "configure:5756: checking for struct sigcontext" >&5
9697 +echo "configure:5917: checking for struct sigcontext" >&5
9698  cat > conftest.$ac_ext <<EOF
9699 -#line 5758 "configure"
9700 +#line 5919 "configure"
9701  #include "confdefs.h"
9702  
9703  #include <signal.h>
9704 @@ -5815,7 +5929,7 @@ int main() {
9705  
9706  ; return 0; }
9707  EOF
9708 -if { (eval echo configure:5772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9709 +if { (eval echo configure:5933: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9710    rm -rf conftest*
9711    echo "$ac_t""yes" 1>&6
9712                 cat >> confdefs.h <<\EOF
9713 @@ -5831,12 +5945,12 @@ fi
9714  rm -f conftest*
9715  
9716  echo $ac_n "checking getcwd implementation""... $ac_c" 1>&6
9717 -echo "configure:5788: checking getcwd implementation" >&5
9718 +echo "configure:5949: checking getcwd implementation" >&5
9719  if test "$cross_compiling" = yes; then
9720    { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
9721  else
9722    cat > conftest.$ac_ext <<EOF
9723 -#line 5793 "configure"
9724 +#line 5954 "configure"
9725  #include "confdefs.h"
9726  
9727  char *dagger[] = { "IFS=pwd", 0 };
9728 @@ -5848,7 +5962,7 @@ main()
9729    return getcwd(buffer, 500) ? 0 : 1;
9730  }
9731  EOF
9732 -if { (eval echo configure:5805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9733 +if { (eval echo configure:5966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9734  then
9735    echo "$ac_t""it is usable" 1>&6
9736  else
9737 @@ -5873,12 +5987,12 @@ for ac_func in bcmp fchdir fchown fseeko
9738         strpbrk strtol tgetent towlower towupper usleep utime utimes
9739  do
9740  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
9741 -echo "configure:5875: checking for $ac_func" >&5
9742 +echo "configure:5991: checking for $ac_func" >&5
9743  if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
9744    echo $ac_n "(cached) $ac_c" 1>&6
9745  else
9746    cat > conftest.$ac_ext <<EOF
9747 -#line 5880 "configure"
9748 +#line 5996 "configure"
9749  #include "confdefs.h"
9750  /* System header to define __stub macros and hopefully few prototypes,
9751      which can conflict with char $ac_func(); below.  */
9752 @@ -5901,7 +6015,7 @@ $ac_func();
9753  
9754  ; return 0; }
9755  EOF
9756 -if { (eval echo configure:5858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9757 +if { (eval echo configure:6019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9758    rm -rf conftest*
9759    eval "ac_cv_func_$ac_func=yes"
9760  else
9761 @@ -5927,9 +6041,9 @@ done
9762  
9763  
9764  echo $ac_n "checking for st_blksize""... $ac_c" 1>&6
9765 -echo "configure:5884: checking for st_blksize" >&5
9766 +echo "configure:6045: checking for st_blksize" >&5
9767  cat > conftest.$ac_ext <<EOF
9768 -#line 5886 "configure"
9769 +#line 6047 "configure"
9770  #include "confdefs.h"
9771  #include <sys/types.h>
9772  #include <sys/stat.h>
9773 @@ -5941,7 +6055,7 @@ int main() {
9774         n = (int)st.st_blksize;
9775  ; return 0; }
9776  EOF
9777 -if { (eval echo configure:5898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9778 +if { (eval echo configure:6059: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
9779    rm -rf conftest*
9780    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9781  #define HAVE_ST_BLKSIZE 1
9782 @@ -5956,18 +6070,18 @@ fi
9783  rm -f conftest*
9784  
9785  echo $ac_n "checking whether stat() ignores a trailing slash""... $ac_c" 1>&6
9786 -echo "configure:5958: checking whether stat() ignores a trailing slash" >&5
9787 +echo "configure:6074: checking whether stat() ignores a trailing slash" >&5
9788  if test "$cross_compiling" = yes; then
9789    { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
9790  else
9791    cat > conftest.$ac_ext <<EOF
9792 -#line 5963 "configure"
9793 +#line 6079 "configure"
9794  #include "confdefs.h"
9795  #include <sys/types.h>
9796  #include <sys/stat.h>
9797  main() {struct stat st;  exit(stat("configure/", &st) != 0); }
9798  EOF
9799 -if { (eval echo configure:5969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9800 +if { (eval echo configure:6085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
9801  then
9802    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9803  #define STAT_IGNORES_SLASH 1
9804 @@ -5984,11 +6098,11 @@ fi
9805  
9806  
9807  echo $ac_n "checking for iconv_open()""... $ac_c" 1>&6
9808 -echo "configure:5986: checking for iconv_open()" >&5
9809 +echo "configure:6102: checking for iconv_open()" >&5
9810  save_LIBS="$LIBS"
9811  LIBS="$LIBS -liconv"
9812  cat > conftest.$ac_ext <<EOF
9813 -#line 5990 "configure"
9814 +#line 6106 "configure"
9815  #include "confdefs.h"
9816  
9817  #ifdef HAVE_ICONV_H
9818 @@ -5999,7 +6113,7 @@ int main() {
9819  iconv_open("fr", "to");
9820  ; return 0; }
9821  EOF
9822 -if { (eval echo configure:5928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9823 +if { (eval echo configure:6117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9824    rm -rf conftest*
9825    echo "$ac_t""yes; with -liconv" 1>&6; cat >> confdefs.h <<\EOF
9826  #define HAVE_ICONV 1
9827 @@ -6011,7 +6125,7 @@ else
9828    rm -rf conftest*
9829    LIBS="$save_LIBS"
9830      cat > conftest.$ac_ext <<EOF
9831 -#line 5940 "configure"
9832 +#line 6129 "configure"
9833  #include "confdefs.h"
9834  
9835  #ifdef HAVE_ICONV_H
9836 @@ -6022,7 +6136,7 @@ int main() {
9837  iconv_open("fr", "to");
9838  ; return 0; }
9839  EOF
9840 -if { (eval echo configure:5951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9841 +if { (eval echo configure:6140: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9842    rm -rf conftest*
9843    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9844  #define HAVE_ICONV 1
9845 @@ -6040,9 +6154,9 @@ rm -f conftest*
9846  
9847  
9848  echo $ac_n "checking for nl_langinfo(CODESET)""... $ac_c" 1>&6
9849 -echo "configure:5969: checking for nl_langinfo(CODESET)" >&5
9850 +echo "configure:6158: checking for nl_langinfo(CODESET)" >&5
9851  cat > conftest.$ac_ext <<EOF
9852 -#line 5971 "configure"
9853 +#line 6160 "configure"
9854  #include "confdefs.h"
9855  
9856  #ifdef HAVE_LANGINFO_H
9857 @@ -6053,7 +6167,7 @@ int main() {
9858  char *cs = nl_langinfo(CODESET);
9859  ; return 0; }
9860  EOF
9861 -if { (eval echo configure:5982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9862 +if { (eval echo configure:6171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9863    rm -rf conftest*
9864    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9865  #define HAVE_NL_LANGINFO_CODESET 1
9866 @@ -6068,7 +6182,7 @@ fi
9867  rm -f conftest*
9868  
9869  echo $ac_n "checking --disable-acl argument""... $ac_c" 1>&6
9870 -echo "configure:6072: checking --disable-acl argument" >&5
9871 +echo "configure:6186: checking --disable-acl argument" >&5
9872  # Check whether --enable-acl or --disable-acl was given.
9873  if test "${enable_acl+set}" = set; then
9874    enableval="$enable_acl"
9875 @@ -6080,7 +6194,7 @@ fi
9876  if test "$enable_acl" = "yes"; then
9877  
9878  echo $ac_n "checking for acl_get_file in -lposix1e""... $ac_c" 1>&6
9879 -echo "configure:6084: checking for acl_get_file in -lposix1e" >&5
9880 +echo "configure:6198: checking for acl_get_file in -lposix1e" >&5
9881  ac_lib_var=`echo posix1e'_'acl_get_file | sed 'y%./+-%__p_%'`
9882  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
9883    echo $ac_n "(cached) $ac_c" 1>&6
9884 @@ -6088,7 +6202,7 @@ else
9885    ac_save_LIBS="$LIBS"
9886  LIBS="-lposix1e  $LIBS"
9887  cat > conftest.$ac_ext <<EOF
9888 -#line 6005 "configure"
9889 +#line 6206 "configure"
9890  #include "confdefs.h"
9891  /* Override any gcc2 internal prototype to avoid an error.  */
9892  /* We use char because int might match the return type of a gcc2
9893 @@ -6099,7 +6213,7 @@ int main() {
9894  acl_get_file()
9895  ; return 0; }
9896  EOF
9897 -if { (eval echo configure:6016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9898 +if { (eval echo configure:6217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9899    rm -rf conftest*
9900    eval "ac_cv_lib_$ac_lib_var=yes"
9901  else
9902 @@ -6118,7 +6232,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_l
9903  else
9904    echo "$ac_t""no" 1>&6
9905  echo $ac_n "checking for acl_get_file in -lacl""... $ac_c" 1>&6
9906 -echo "configure:6035: checking for acl_get_file in -lacl" >&5
9907 +echo "configure:6236: checking for acl_get_file in -lacl" >&5
9908  ac_lib_var=`echo acl'_'acl_get_file | sed 'y%./+-%__p_%'`
9909  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
9910    echo $ac_n "(cached) $ac_c" 1>&6
9911 @@ -6126,7 +6240,7 @@ else
9912    ac_save_LIBS="$LIBS"
9913  LIBS="-lacl  $LIBS"
9914  cat > conftest.$ac_ext <<EOF
9915 -#line 6043 "configure"
9916 +#line 6244 "configure"
9917  #include "confdefs.h"
9918  /* Override any gcc2 internal prototype to avoid an error.  */
9919  /* We use char because int might match the return type of a gcc2
9920 @@ -6137,7 +6251,7 @@ int main() {
9921  acl_get_file()
9922  ; return 0; }
9923  EOF
9924 -if { (eval echo configure:6054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9925 +if { (eval echo configure:6255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9926    rm -rf conftest*
9927    eval "ac_cv_lib_$ac_lib_var=yes"
9928  else
9929 @@ -6154,7 +6268,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_l
9930    echo "$ac_t""yes" 1>&6
9931    LIBS="$LIBS -lacl"
9932                   echo $ac_n "checking for fgetxattr in -lattr""... $ac_c" 1>&6
9933 -echo "configure:6071: checking for fgetxattr in -lattr" >&5
9934 +echo "configure:6272: checking for fgetxattr in -lattr" >&5
9935  ac_lib_var=`echo attr'_'fgetxattr | sed 'y%./+-%__p_%'`
9936  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
9937    echo $ac_n "(cached) $ac_c" 1>&6
9938 @@ -6162,7 +6276,7 @@ else
9939    ac_save_LIBS="$LIBS"
9940  LIBS="-lattr  $LIBS"
9941  cat > conftest.$ac_ext <<EOF
9942 -#line 6079 "configure"
9943 +#line 6280 "configure"
9944  #include "confdefs.h"
9945  /* Override any gcc2 internal prototype to avoid an error.  */
9946  /* We use char because int might match the return type of a gcc2
9947 @@ -6173,7 +6287,7 @@ int main() {
9948  fgetxattr()
9949  ; return 0; }
9950  EOF
9951 -if { (eval echo configure:6090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9952 +if { (eval echo configure:6291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9953    rm -rf conftest*
9954    eval "ac_cv_lib_$ac_lib_var=yes"
9955  else
9956 @@ -6201,9 +6315,9 @@ fi
9957  
9958  
9959  echo $ac_n "checking for POSIX ACL support""... $ac_c" 1>&6
9960 -echo "configure:6078: checking for POSIX ACL support" >&5
9961 +echo "configure:6319: checking for POSIX ACL support" >&5
9962  cat > conftest.$ac_ext <<EOF
9963 -#line 6080 "configure"
9964 +#line 6321 "configure"
9965  #include "confdefs.h"
9966  
9967  #include <sys/types.h>
9968 @@ -6217,7 +6331,7 @@ acl = acl_get_file("foo", ACL_TYPE_ACCES
9969         acl_free(acl);
9970  ; return 0; }
9971  EOF
9972 -if { (eval echo configure:6094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9973 +if { (eval echo configure:6335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9974    rm -rf conftest*
9975    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9976  #define HAVE_POSIX_ACL 1
9977 @@ -6232,9 +6346,9 @@ fi
9978  rm -f conftest*
9979  
9980  echo $ac_n "checking for Solaris ACL support""... $ac_c" 1>&6
9981 -echo "configure:6109: checking for Solaris ACL support" >&5
9982 +echo "configure:6350: checking for Solaris ACL support" >&5
9983  cat > conftest.$ac_ext <<EOF
9984 -#line 6111 "configure"
9985 +#line 6352 "configure"
9986  #include "confdefs.h"
9987  
9988  #ifdef HAVE_SYS_ACL_H
9989 @@ -6245,7 +6359,7 @@ acl("foo", GETACLCNT, 0, NULL);
9990         
9991  ; return 0; }
9992  EOF
9993 -if { (eval echo configure:6122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9994 +if { (eval echo configure:6363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
9995    rm -rf conftest*
9996    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9997  #define HAVE_SOLARIS_ACL 1
9998 @@ -6260,9 +6374,9 @@ fi
9999  rm -f conftest*
10000  
10001  echo $ac_n "checking for AIX ACL support""... $ac_c" 1>&6
10002 -echo "configure:6137: checking for AIX ACL support" >&5
10003 +echo "configure:6378: checking for AIX ACL support" >&5
10004  cat > conftest.$ac_ext <<EOF
10005 -#line 6139 "configure"
10006 +#line 6380 "configure"
10007  #include "confdefs.h"
10008  
10009  #ifdef HAVE_SYS_ACL_H
10010 @@ -6284,7 +6398,7 @@ aclsize = sizeof(struct acl);
10011         
10012  ; return 0; }
10013  EOF
10014 -if { (eval echo configure:6161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10015 +if { (eval echo configure:6402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10016    rm -rf conftest*
10017    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10018  #define HAVE_AIX_ACL 1
10019 @@ -6300,7 +6414,7 @@ rm -f conftest*
10020  fi
10021  
10022  echo $ac_n "checking --disable-gpm argument""... $ac_c" 1>&6
10023 -echo "configure:6304: checking --disable-gpm argument" >&5
10024 +echo "configure:6418: checking --disable-gpm argument" >&5
10025  # Check whether --enable-gpm or --disable-gpm was given.
10026  if test "${enable_gpm+set}" = set; then
10027    enableval="$enable_gpm"
10028 @@ -6313,13 +6427,13 @@ fi
10029  if test "$enable_gpm" = "yes"; then
10030    echo "$ac_t""no" 1>&6
10031      echo $ac_n "checking for gpm""... $ac_c" 1>&6
10032 -echo "configure:6189: checking for gpm" >&5
10033 +echo "configure:6431: checking for gpm" >&5
10034  if eval "test \"`echo '$''{'vi_cv_have_gpm'+set}'`\" = set"; then
10035    echo $ac_n "(cached) $ac_c" 1>&6
10036  else
10037    olibs="$LIBS" ; LIBS="-lgpm"
10038         cat > conftest.$ac_ext <<EOF
10039 -#line 6195 "configure"
10040 +#line 6437 "configure"
10041  #include "confdefs.h"
10042  #include <gpm.h>
10043             #include <linux/keyboard.h>
10044 @@ -6327,7 +6441,7 @@ int main() {
10045  Gpm_GetLibVersion(NULL);
10046  ; return 0; }
10047  EOF
10048 -if { (eval echo configure:6203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10049 +if { (eval echo configure:6445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10050    rm -rf conftest*
10051                     vi_cv_have_gpm=yes
10052  else
10053 @@ -6354,16 +6468,16 @@ else
10054  fi
10055  
10056  echo $ac_n "checking for rename""... $ac_c" 1>&6
10057 -echo "configure:6230: checking for rename" >&5
10058 +echo "configure:6472: checking for rename" >&5
10059  cat > conftest.$ac_ext <<EOF
10060 -#line 6232 "configure"
10061 +#line 6474 "configure"
10062  #include "confdefs.h"
10063  #include <stdio.h>
10064  int main() {
10065  rename("this", "that")
10066  ; return 0; }
10067  EOF
10068 -if { (eval echo configure:6239: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10069 +if { (eval echo configure:6481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10070    rm -rf conftest*
10071    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10072  #define HAVE_RENAME 1
10073 @@ -6378,9 +6492,9 @@ fi
10074  rm -f conftest*
10075  
10076  echo $ac_n "checking for sysctl""... $ac_c" 1>&6
10077 -echo "configure:6254: checking for sysctl" >&5
10078 +echo "configure:6496: checking for sysctl" >&5
10079  cat > conftest.$ac_ext <<EOF
10080 -#line 6256 "configure"
10081 +#line 6498 "configure"
10082  #include "confdefs.h"
10083  #include <sys/types.h>
10084  #include <sys/sysctl.h>
10085 @@ -6395,7 +6509,7 @@ int main() {
10086         
10087  ; return 0; }
10088  EOF
10089 -if { (eval echo configure:6271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
10090 +if { (eval echo configure:6513: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
10091    rm -rf conftest*
10092    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10093  #define HAVE_SYSCTL 1
10094 @@ -6410,9 +6524,9 @@ fi
10095  rm -f conftest*
10096  
10097  echo $ac_n "checking for sysinfo""... $ac_c" 1>&6
10098 -echo "configure:6286: checking for sysinfo" >&5
10099 +echo "configure:6528: checking for sysinfo" >&5
10100  cat > conftest.$ac_ext <<EOF
10101 -#line 6288 "configure"
10102 +#line 6530 "configure"
10103  #include "confdefs.h"
10104  #include <sys/types.h>
10105  #include <sys/sysinfo.h>
10106 @@ -6425,7 +6539,7 @@ int main() {
10107         
10108  ; return 0; }
10109  EOF
10110 -if { (eval echo configure:6301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
10111 +if { (eval echo configure:6543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
10112    rm -rf conftest*
10113    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10114  #define HAVE_SYSINFO 1
10115 @@ -6440,9 +6554,9 @@ fi
10116  rm -f conftest*
10117  
10118  echo $ac_n "checking for sysconf""... $ac_c" 1>&6
10119 -echo "configure:6316: checking for sysconf" >&5
10120 +echo "configure:6558: checking for sysconf" >&5
10121  cat > conftest.$ac_ext <<EOF
10122 -#line 6318 "configure"
10123 +#line 6560 "configure"
10124  #include "confdefs.h"
10125  #include <unistd.h>
10126  int main() {
10127 @@ -6451,7 +6565,7 @@ int main() {
10128         
10129  ; return 0; }
10130  EOF
10131 -if { (eval echo configure:6327: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
10132 +if { (eval echo configure:6569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
10133    rm -rf conftest*
10134    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10135  #define HAVE_SYSCONF 1
10136 @@ -6467,7 +6581,7 @@ rm -f conftest*
10137  
10138  
10139  echo $ac_n "checking size of int""... $ac_c" 1>&6
10140 -echo "configure:6343: checking size of int" >&5
10141 +echo "configure:6585: checking size of int" >&5
10142  if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
10143    echo $ac_n "(cached) $ac_c" 1>&6
10144  else
10145 @@ -6475,7 +6589,7 @@ else
10146    { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
10147  else
10148    cat > conftest.$ac_ext <<EOF
10149 -#line 6351 "configure"
10150 +#line 6593 "configure"
10151  #include "confdefs.h"
10152  #include <stdio.h>
10153                 main()
10154 @@ -6486,7 +6600,7 @@ else
10155                   exit(0);
10156                 }
10157  EOF
10158 -if { (eval echo configure:6362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
10159 +if { (eval echo configure:6604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
10160  then
10161    ac_cv_sizeof_int=`cat conftestval`
10162  else
10163 @@ -6507,7 +6621,7 @@ EOF
10164  
10165  
10166  echo $ac_n "checking whether memmove/bcopy/memcpy handle overlaps""... $ac_c" 1>&6
10167 -echo "configure:6383: checking whether memmove/bcopy/memcpy handle overlaps" >&5
10168 +echo "configure:6625: checking whether memmove/bcopy/memcpy handle overlaps" >&5
10169  bcopy_test_prog='
10170  main() {
10171    char buf[10];
10172 @@ -6527,11 +6641,11 @@ if test "$cross_compiling" = yes; then
10173    { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
10174  else
10175    cat > conftest.$ac_ext <<EOF
10176 -#line 6403 "configure"
10177 +#line 6645 "configure"
10178  #include "confdefs.h"
10179  #define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog
10180  EOF
10181 -if { (eval echo configure:6407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
10182 +if { (eval echo configure:6649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
10183  then
10184    cat >> confdefs.h <<\EOF
10185  #define USEMEMMOVE 1
10186 @@ -6545,11 +6659,11 @@ else
10187    { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
10188  else
10189    cat > conftest.$ac_ext <<EOF
10190 -#line 6421 "configure"
10191 +#line 6663 "configure"
10192  #include "confdefs.h"
10193  #define mch_memmove(s,d,l) bcopy(d,s,l) $bcopy_test_prog
10194  EOF
10195 -if { (eval echo configure:6425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
10196 +if { (eval echo configure:6667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
10197  then
10198    cat >> confdefs.h <<\EOF
10199  #define USEBCOPY 1
10200 @@ -6563,11 +6677,11 @@ else
10201    { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
10202  else
10203    cat > conftest.$ac_ext <<EOF
10204 -#line 6439 "configure"
10205 +#line 6681 "configure"
10206  #include "confdefs.h"
10207  #define mch_memmove(s,d,l) memcpy(d,s,l) $bcopy_test_prog
10208  EOF
10209 -if { (eval echo configure:6443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
10210 +if { (eval echo configure:6685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
10211  then
10212    cat >> confdefs.h <<\EOF
10213  #define USEMEMCPY 1
10214 @@ -6599,19 +6713,19 @@ if test "$enable_multibyte" = "yes"; the
10215      CFLAGS="$CFLAGS -I$x_includes"
10216      LDFLAGS="$X_LIBS $LDFLAGS -lX11"
10217      echo $ac_n "checking whether X_LOCALE needed""... $ac_c" 1>&6
10218 -echo "configure:6475: checking whether X_LOCALE needed" >&5
10219 +echo "configure:6717: checking whether X_LOCALE needed" >&5
10220      cat > conftest.$ac_ext <<EOF
10221 -#line 6477 "configure"
10222 +#line 6719 "configure"
10223  #include "confdefs.h"
10224  #include <X11/Xlocale.h>
10225  int main() {
10226  
10227  ; return 0; }
10228  EOF
10229 -if { (eval echo configure:6484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
10230 +if { (eval echo configure:6726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
10231    rm -rf conftest*
10232    cat > conftest.$ac_ext <<EOF
10233 -#line 6487 "configure"
10234 +#line 6729 "configure"
10235  #include "confdefs.h"
10236  /* Override any gcc2 internal prototype to avoid an error.  */
10237  /* We use char because int might match the return type of a gcc2
10238 @@ -6622,7 +6736,7 @@ int main() {
10239  _Xsetlocale()
10240  ; return 0; }
10241  EOF
10242 -if { (eval echo configure:6498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10243 +if { (eval echo configure:6740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10244    rm -rf conftest*
10245    echo "$ac_t""yes" 1>&6
10246                 cat >> confdefs.h <<\EOF
10247 @@ -6649,7 +6763,7 @@ rm -f conftest*
10248  fi
10249  
10250  echo $ac_n "checking for _xpg4_setrunelocale in -lxpg4""... $ac_c" 1>&6
10251 -echo "configure:6525: checking for _xpg4_setrunelocale in -lxpg4" >&5
10252 +echo "configure:6767: checking for _xpg4_setrunelocale in -lxpg4" >&5
10253  ac_lib_var=`echo xpg4'_'_xpg4_setrunelocale | sed 'y%./+-%__p_%'`
10254  if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
10255    echo $ac_n "(cached) $ac_c" 1>&6
10256 @@ -6657,7 +6771,7 @@ else
10257    ac_save_LIBS="$LIBS"
10258  LIBS="-lxpg4  $LIBS"
10259  cat > conftest.$ac_ext <<EOF
10260 -#line 6533 "configure"
10261 +#line 6775 "configure"
10262  #include "confdefs.h"
10263  /* Override any gcc2 internal prototype to avoid an error.  */
10264  /* We use char because int might match the return type of a gcc2
10265 @@ -6668,7 +6782,7 @@ int main() {
10266  _xpg4_setrunelocale()
10267  ; return 0; }
10268  EOF
10269 -if { (eval echo configure:6544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10270 +if { (eval echo configure:6786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10271    rm -rf conftest*
10272    eval "ac_cv_lib_$ac_lib_var=yes"
10273  else
10274 @@ -6690,7 +6804,7 @@ fi
10275  
10276  
10277  echo $ac_n "checking how to create tags""... $ac_c" 1>&6
10278 -echo "configure:6566: checking how to create tags" >&5
10279 +echo "configure:6808: checking how to create tags" >&5
10280  test -f tags && mv tags tags.save
10281  if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
10282    TAGPRG="ctags"
10283 @@ -6707,7 +6821,7 @@ test -f tags.save && mv tags.save tags
10284  echo "$ac_t""$TAGPRG" 1>&6 
10285  
10286  echo $ac_n "checking how to run man with a section nr""... $ac_c" 1>&6
10287 -echo "configure:6583: checking how to run man with a section nr" >&5
10288 +echo "configure:6825: checking how to run man with a section nr" >&5
10289  MANDEF="man"
10290  (eval man -s 2 read) < /dev/null > /dev/null 2>&5 && MANDEF="man -s"
10291  echo "$ac_t""$MANDEF" 1>&6
10292 @@ -6719,7 +6833,7 @@ EOF
10293  fi
10294  
10295  echo $ac_n "checking --disable-nls argument""... $ac_c" 1>&6
10296 -echo "configure:6595: checking --disable-nls argument" >&5
10297 +echo "configure:6837: checking --disable-nls argument" >&5
10298  # Check whether --enable-nls or --disable-nls was given.
10299  if test "${enable_nls+set}" = set; then
10300    enableval="$enable_nls"
10301 @@ -6734,7 +6848,7 @@ if test "$enable_nls" = "yes"; then
10302    # Extract the first word of "msgfmt", so it can be a program name with args.
10303  set dummy msgfmt; ac_word=$2
10304  echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
10305 -echo "configure:6610: checking for $ac_word" >&5
10306 +echo "configure:6852: checking for $ac_word" >&5
10307  if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
10308    echo $ac_n "(cached) $ac_c" 1>&6
10309  else
10310 @@ -6761,19 +6875,19 @@ else
10311  fi
10312  
10313    echo $ac_n "checking for NLS""... $ac_c" 1>&6
10314 -echo "configure:6637: checking for NLS" >&5
10315 +echo "configure:6879: checking for NLS" >&5
10316    if test -d po; then
10317      have_gettext="no"
10318      if test -n "$MSGFMT"; then
10319        cat > conftest.$ac_ext <<EOF
10320 -#line 6642 "configure"
10321 +#line 6884 "configure"
10322  #include "confdefs.h"
10323  #include <libintl.h>
10324  int main() {
10325  gettext("Test");
10326  ; return 0; }
10327  EOF
10328 -if { (eval echo configure:6649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10329 +if { (eval echo configure:6891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10330    rm -rf conftest*
10331    echo "$ac_t""gettext() works" 1>&6; have_gettext="yes"
10332  else
10333 @@ -6783,14 +6897,14 @@ else
10334    olibs=$LIBS
10335           LIBS="$LIBS -lintl"
10336           cat > conftest.$ac_ext <<EOF
10337 -#line 6659 "configure"
10338 +#line 6901 "configure"
10339  #include "confdefs.h"
10340  #include <libintl.h>
10341  int main() {
10342  gettext("Test");
10343  ; return 0; }
10344  EOF
10345 -if { (eval echo configure:6666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10346 +if { (eval echo configure:6908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10347    rm -rf conftest*
10348    echo "$ac_t""gettext() works with -lintl" 1>&6; have_gettext="yes"
10349  else
10350 @@ -6816,12 +6930,12 @@ EOF
10351              for ac_func in bind_textdomain_codeset
10352  do
10353  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
10354 -echo "configure:6692: checking for $ac_func" >&5
10355 +echo "configure:6934: checking for $ac_func" >&5
10356  if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
10357    echo $ac_n "(cached) $ac_c" 1>&6
10358  else
10359    cat > conftest.$ac_ext <<EOF
10360 -#line 6697 "configure"
10361 +#line 6939 "configure"
10362  #include "confdefs.h"
10363  /* System header to define __stub macros and hopefully few prototypes,
10364      which can conflict with char $ac_func(); below.  */
10365 @@ -6844,7 +6958,7 @@ $ac_func();
10366  
10367  ; return 0; }
10368  EOF
10369 -if { (eval echo configure:6720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10370 +if { (eval echo configure:6962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10371    rm -rf conftest*
10372    eval "ac_cv_func_$ac_func=yes"
10373  else
10374 @@ -6869,9 +6983,9 @@ fi
10375  done
10376  
10377              echo $ac_n "checking for _nl_msg_cat_cntr""... $ac_c" 1>&6
10378 -echo "configure:6745: checking for _nl_msg_cat_cntr" >&5
10379 +echo "configure:6987: checking for _nl_msg_cat_cntr" >&5
10380        cat > conftest.$ac_ext <<EOF
10381 -#line 6747 "configure"
10382 +#line 6989 "configure"
10383  #include "confdefs.h"
10384  #include <libintl.h>
10385                 extern int _nl_msg_cat_cntr;
10386 @@ -6879,7 +6993,7 @@ int main() {
10387  ++_nl_msg_cat_cntr;
10388  ; return 0; }
10389  EOF
10390 -if { (eval echo configure:6755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10391 +if { (eval echo configure:6997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10392    rm -rf conftest*
10393    echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10394  #define HAVE_NL_MSG_CAT_CNTR 1
10395 @@ -6902,17 +7016,17 @@ fi
10396  
10397  ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
10398  echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
10399 -echo "configure:6778: checking for dlfcn.h" >&5
10400 +echo "configure:7020: checking for dlfcn.h" >&5
10401  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
10402    echo $ac_n "(cached) $ac_c" 1>&6
10403  else
10404    cat > conftest.$ac_ext <<EOF
10405 -#line 6783 "configure"
10406 +#line 7025 "configure"
10407  #include "confdefs.h"
10408  #include <dlfcn.h>
10409  EOF
10410  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
10411 -{ (eval echo configure:6788: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
10412 +{ (eval echo configure:7030: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
10413  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
10414  if test -z "$ac_err"; then
10415    rm -rf conftest*
10416 @@ -6933,17 +7047,17 @@ else
10417    echo "$ac_t""no" 1>&6
10418  ac_safe=`echo "dl.h" | sed 'y%./+-%__p_%'`
10419  echo $ac_n "checking for dl.h""... $ac_c" 1>&6
10420 -echo "configure:6809: checking for dl.h" >&5
10421 +echo "configure:7051: checking for dl.h" >&5
10422  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
10423    echo $ac_n "(cached) $ac_c" 1>&6
10424  else
10425    cat > conftest.$ac_ext <<EOF
10426 -#line 6814 "configure"
10427 +#line 7056 "configure"
10428  #include "confdefs.h"
10429  #include <dl.h>
10430  EOF
10431  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
10432 -{ (eval echo configure:6819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
10433 +{ (eval echo configure:7061: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
10434  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
10435  if test -z "$ac_err"; then
10436    rm -rf conftest*
10437 @@ -6972,9 +7086,9 @@ if test x${DLL} = xdlfcn.h; then
10438  EOF
10439  
10440    echo $ac_n "checking for dlopen()""... $ac_c" 1>&6
10441 -echo "configure:6848: checking for dlopen()" >&5
10442 +echo "configure:7090: checking for dlopen()" >&5
10443    cat > conftest.$ac_ext <<EOF
10444 -#line 6850 "configure"
10445 +#line 7092 "configure"
10446  #include "confdefs.h"
10447  
10448  int main() {
10449 @@ -6984,7 +7098,7 @@ int main() {
10450        
10451  ; return 0; }
10452  EOF
10453 -if { (eval echo configure:6860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10454 +if { (eval echo configure:7102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10455    rm -rf conftest*
10456    echo "$ac_t""yes" 1>&6;
10457               cat >> confdefs.h <<\EOF
10458 @@ -6997,11 +7111,11 @@ else
10459    rm -rf conftest*
10460    echo "$ac_t""no" 1>&6;
10461               echo $ac_n "checking for dlopen() in -ldl""... $ac_c" 1>&6
10462 -echo "configure:6873: checking for dlopen() in -ldl" >&5
10463 +echo "configure:7115: checking for dlopen() in -ldl" >&5
10464               olibs=$LIBS
10465               LIBS="$LIBS -ldl"
10466               cat > conftest.$ac_ext <<EOF
10467 -#line 6877 "configure"
10468 +#line 7119 "configure"
10469  #include "confdefs.h"
10470  
10471  int main() {
10472 @@ -7011,7 +7125,7 @@ int main() {
10473                  
10474  ; return 0; }
10475  EOF
10476 -if { (eval echo configure:6887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10477 +if { (eval echo configure:7129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10478    rm -rf conftest*
10479    echo "$ac_t""yes" 1>&6;
10480                           cat >> confdefs.h <<\EOF
10481 @@ -7029,9 +7143,9 @@ rm -f conftest*
10482  fi
10483  rm -f conftest*
10484        echo $ac_n "checking for dlsym()""... $ac_c" 1>&6
10485 -echo "configure:6905: checking for dlsym()" >&5
10486 +echo "configure:7147: checking for dlsym()" >&5
10487    cat > conftest.$ac_ext <<EOF
10488 -#line 6907 "configure"
10489 +#line 7149 "configure"
10490  #include "confdefs.h"
10491  
10492  int main() {
10493 @@ -7041,7 +7155,7 @@ int main() {
10494        
10495  ; return 0; }
10496  EOF
10497 -if { (eval echo configure:6917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10498 +if { (eval echo configure:7159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10499    rm -rf conftest*
10500    echo "$ac_t""yes" 1>&6;
10501               cat >> confdefs.h <<\EOF
10502 @@ -7054,11 +7168,11 @@ else
10503    rm -rf conftest*
10504    echo "$ac_t""no" 1>&6;
10505               echo $ac_n "checking for dlsym() in -ldl""... $ac_c" 1>&6
10506 -echo "configure:6930: checking for dlsym() in -ldl" >&5
10507 +echo "configure:7172: checking for dlsym() in -ldl" >&5
10508               olibs=$LIBS
10509               LIBS="$LIBS -ldl"
10510               cat > conftest.$ac_ext <<EOF
10511 -#line 6934 "configure"
10512 +#line 7176 "configure"
10513  #include "confdefs.h"
10514  
10515  int main() {
10516 @@ -7068,7 +7182,7 @@ int main() {
10517                  
10518  ; return 0; }
10519  EOF
10520 -if { (eval echo configure:6944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10521 +if { (eval echo configure:7186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10522    rm -rf conftest*
10523    echo "$ac_t""yes" 1>&6;
10524                           cat >> confdefs.h <<\EOF
10525 @@ -7091,9 +7205,9 @@ elif test x${DLL} = xdl.h; then
10526  EOF
10527  
10528    echo $ac_n "checking for shl_load()""... $ac_c" 1>&6
10529 -echo "configure:6967: checking for shl_load()" >&5
10530 +echo "configure:7209: checking for shl_load()" >&5
10531    cat > conftest.$ac_ext <<EOF
10532 -#line 6969 "configure"
10533 +#line 7211 "configure"
10534  #include "confdefs.h"
10535  
10536  int main() {
10537 @@ -7103,7 +7217,7 @@ int main() {
10538       
10539  ; return 0; }
10540  EOF
10541 -if { (eval echo configure:6979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10542 +if { (eval echo configure:7221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10543    rm -rf conftest*
10544    echo "$ac_t""yes" 1>&6;
10545           cat >> confdefs.h <<\EOF
10546 @@ -7116,11 +7230,11 @@ else
10547    rm -rf conftest*
10548    echo "$ac_t""no" 1>&6;
10549           echo $ac_n "checking for shl_load() in -ldld""... $ac_c" 1>&6
10550 -echo "configure:6992: checking for shl_load() in -ldld" >&5
10551 +echo "configure:7234: checking for shl_load() in -ldld" >&5
10552           olibs=$LIBS
10553           LIBS="$LIBS -ldld"
10554           cat > conftest.$ac_ext <<EOF
10555 -#line 6996 "configure"
10556 +#line 7238 "configure"
10557  #include "confdefs.h"
10558  
10559  int main() {
10560 @@ -7130,7 +7244,7 @@ int main() {
10561              
10562  ; return 0; }
10563  EOF
10564 -if { (eval echo configure:7006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10565 +if { (eval echo configure:7248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
10566    rm -rf conftest*
10567    echo "$ac_t""yes" 1>&6;
10568                   cat >> confdefs.h <<\EOF
10569 @@ -7152,17 +7266,17 @@ for ac_hdr in setjmp.h
10570  do
10571  ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
10572  echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
10573 -echo "configure:7028: checking for $ac_hdr" >&5
10574 +echo "configure:7270: checking for $ac_hdr" >&5
10575  if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
10576    echo $ac_n "(cached) $ac_c" 1>&6
10577  else
10578    cat > conftest.$ac_ext <<EOF
10579 -#line 7033 "configure"
10580 +#line 7275 "configure"
10581  #include "confdefs.h"
10582  #include <$ac_hdr>
10583  EOF
10584  ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
10585 -{ (eval echo configure:7038: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
10586 +{ (eval echo configure:7280: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
10587  ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
10588  if test -z "$ac_err"; then
10589    rm -rf conftest*
10590 @@ -7269,7 +7383,7 @@ cat > $CONFIG_STATUS <<EOF
10591  # $0 $ac_configure_args
10592  #
10593  # Compiler output produced by configure, useful for debugging
10594 -# configure, is in auto/config.log if it exists.
10595 +# configure, is in ./config.log if it exists.
10596  
10597  ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
10598  for ac_option
10599 @@ -7376,6 +7490,7 @@ s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
10600  s%@X_LIB@%$X_LIB%g
10601  s%@GTK_CONFIG@%$GTK_CONFIG%g
10602  s%@GTK12_CONFIG@%$GTK12_CONFIG%g
10603 +s%@PKG_CONFIG@%$PKG_CONFIG%g
10604  s%@GTK_CFLAGS@%$GTK_CFLAGS%g
10605  s%@GTK_LIBS@%$GTK_LIBS%g
10606  s%@GTK_LIBNAME@%$GTK_LIBNAME%g
10607 Index: src/proto/gui_gtk.pro
10608 ===================================================================
10609 RCS file: /cvsroot/vim/vim/src/proto/gui_gtk.pro,v
10610 retrieving revision 1.8
10611 diff -u -3 -p -r1.8 gui_gtk.pro
10612 --- src/proto/gui_gtk.pro       30 Apr 2001 08:48:04 -0000      1.8
10613 +++ src/proto/gui_gtk.pro       6 Feb 2003 17:52:46 -0000
10614 @@ -1,9 +1,11 @@
10615  /* gui_gtk.c */
10616 +void gui_gtk_register_stock_icons __ARGS((void));
10617  void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
10618  void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
10619  void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
10620  void gui_gtk_set_mnemonics __ARGS((int enable));
10621  void gui_mch_toggle_tearoffs __ARGS((int enable));
10622 +void gui_mch_menu_set_tip __ARGS((vimmenu_T *menu));
10623  void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
10624  void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
10625  void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
10626 Index: src/proto/gui_gtk_x11.pro
10627 ===================================================================
10628 RCS file: /cvsroot/vim/vim/src/proto/gui_gtk_x11.pro,v
10629 retrieving revision 1.12
10630 diff -u -3 -p -r1.12 gui_gtk_x11.pro
10631 --- src/proto/gui_gtk_x11.pro   11 Feb 2002 11:04:47 -0000      1.12
10632 +++ src/proto/gui_gtk_x11.pro   6 Feb 2003 17:52:46 -0000
10633 @@ -5,6 +5,7 @@ void gui_mch_stop_blink __ARGS((void));
10634  void gui_mch_start_blink __ARGS((void));
10635  int gui_mch_init_check __ARGS((void));
10636  int gui_mch_init __ARGS((void));
10637 +void gui_mch_forked __ARGS((void));
10638  void gui_mch_new_colors __ARGS((void));
10639  int gui_mch_open __ARGS((void));
10640  void gui_mch_exit __ARGS((int rc));
10641 @@ -12,6 +13,7 @@ int gui_mch_get_winpos __ARGS((int *x, i
10642  void gui_mch_set_winpos __ARGS((int x, int y));
10643  void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
10644  void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
10645 +void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
10646  void gui_mch_enable_menu __ARGS((int flag));
10647  void gui_mch_show_toolbar __ARGS((int showit));
10648  int gui_mch_adjust_charsize __ARGS((void));
10649 --- /dev/null   Wed Aug 14 22:00:49 2002
10650 +++ pixmaps/gen-inline-pixbufs.sh       Wed Jan 29 22:53:50 2003
10651 @@ -0,0 +1,13 @@
10652 +#! /bin/sh
10653 +
10654 +prefix=stock_
10655 +list=
10656 +
10657 +for file in "$@"
10658 +do
10659 +    name=`echo "$file" | sed 's|-|_|g; s|^.*/||; s|\..*$||'`
10660 +    list="$list $prefix$name $file"
10661 +done
10662 +
10663 +gdk-pixbuf-csource --raw --static --build-list $list
10664 +
10665 --- /dev/null   Wed Aug 14 22:00:49 2002
10666 +++ pixmaps/stock_icons.h       Mon Feb  3 00:28:32 2003
10667 @@ -0,0 +1,1700 @@
10668 +/* GdkPixbuf RGBA C-Source image dump */
10669 +
10670 +static const guint8 stock_vim_build_tags[] = 
10671 +{ ""
10672 +  /* Pixbuf magic (0x47646b50) */
10673 +  "GdkP"
10674 +  /* length: header (24) + pixel_data (2304) */
10675 +  "\0\0\11\30"
10676 +  /* pixdata_type (0x1010002) */
10677 +  "\1\1\0\2"
10678 +  /* rowstride (96) */
10679 +  "\0\0\0`"
10680 +  /* width (24) */
10681 +  "\0\0\0\30"
10682 +  /* height (24) */
10683 +  "\0\0\0\30"
10684 +  /* pixel_data: */
10685 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10686 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10687 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10688 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10689 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10690 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10691 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10692 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10693 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0"
10694 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\370\0\0\0\366\0\0\0\363"
10695 +  "\0\0\0\361\0\0\0\357\0\0\0\355\0\0\0\353\0\0\0\351\0\0\0\347\0\0\0\345"
10696 +  "\0\0\0\374\0\0\0\374\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10697 +  "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377"
10698 +  "\377\377\377\377\377\377\377\377\261\261\261\377\377\377\377\377\377"
10699 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\272\272"
10700 +  "\272\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10701 +  "\377\344\344\344\377\0\0\0\341\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10702 +  "\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354"
10703 +  "\354\377\354\354\354\377\250\250\250\377\354\354\354\377\354\354\354"
10704 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\255\255\255\377"
10705 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\271"
10706 +  "\271\271\377\0\0\0\341\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10707 +  "\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377"
10708 +  "\354\354\354\377\253\253\253\377\354\354\354\377\354\354\354\377\354"
10709 +  "\354\354\377\354\354\354\377\354\354\354\377\253\253\253\377\354\354"
10710 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270"
10711 +  "\377\0\0\0\341\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\265"
10712 +  "\265\265\377\250\250\250\377\252\252\252\377\252\252\252\377\250\250"
10713 +  "\250\377\205\205\205\377\250\250\250\377\253\253\253\377\253\253\253"
10714 +  "\377\253\253\253\377\253\253\253\377\202\202\202\377\250\250\250\377"
10715 +  "\253\253\253\377\253\253\253\377\253\253\253\377ppp\377\0\0\0\343\0\0"
10716 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354"
10717 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\253\253\253"
10718 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
10719 +  "\354\354\354\377\253\253\253\377\354\354\354\377\354\354\354\377\354"
10720 +  "\354\354\377\354\354\354\377\274\274\274\377\0\0\0\341\0\0\0\0\0\0\0"
10721 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377"
10722 +  "\354\354\354\377\354\354\354\377\354\354\354\377\253\253\253\377\354"
10723 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
10724 +  "\354\377\253\253\253\377\354\354\354\377\354\354\354\377\354\354\354"
10725 +  "\377\354\354\354\377\274\274\274\377\0\0\0\341\0\0\0\0\0\0\0\0\0\0\0"
10726 +  "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354"
10727 +  "\354\377\354\354\354\377\354\354\354\377\253\253\253\377\354\354\354"
10728 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
10729 +  "\253\253\253\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
10730 +  "\354\354\377\274\274\274\377\0\0\0\341\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10731 +  "\0\0\0\0\0\0\0\0\377\272\272\272\377\247\247\247\377\253\253\253\377"
10732 +  "\253\253\253\377\253\253\253\377\205\205\205\377\253\253\253\377\253"
10733 +  "\253\253\377\253\253\253\377\253\253\253\377\253\253\253\377\215\215"
10734 +  "\215\377\255\255\255\377\253\253\253\377\253\253\253\377\253\253\253"
10735 +  "\377sss\377\0\0\0\335\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
10736 +  "\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
10737 +  "\354\354\377\253\253\253\377\354\354\354\377\354\354\354\377\354\354"
10738 +  "\354\377\354\354\354\377\354\354\354\377\253\253\253\377\354\354\354"
10739 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\274\274\274\377"
10740 +  "\0\0\0\335\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
10741 +  "\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
10742 +  "\377\253\253\253\377\354\354\354\377\354\354\354\377\354\354\354\377"
10743 +  "\354\354\354\377\354\354\354\377\253\253\253\377\354\354\354\377\354"
10744 +  "\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\373"
10745 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354"
10746 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\253\253"
10747 +  "\253\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
10748 +  "\377\354\354\354\377\253\253\253\377\354\354\354\377\354\354\354\377"
10749 +  "\354\354\354\377\354\354\354\377\274\274\274\377\0\0\0\373\0\0\0\0\0"
10750 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\270\270\270\377\250\250\250"
10751 +  "\377\253\253\253\377\253\253\253\377\254\254\254\377\207\207\207\377"
10752 +  "\250\250\250\377\247\247\247\377\253\253\253\377\253\253\253\377\250"
10753 +  "\250\250\377\205\205\205\377\250\250\250\377\253\253\253\377\253\253"
10754 +  "\253\377\253\253\253\377ttt\377\0\0\0\373\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10755 +  "\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377"
10756 +  "\354\354\354\377\354\354\354\377\253\253\253\377\354\354\354\377\354"
10757 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\253\253"
10758 +  "\253\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
10759 +  "\377\270\270\270\377\0\0\0\373\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10760 +  "\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354"
10761 +  "\354\377\354\354\354\377\250\250\250\377\354\354\354\377\354\354\354"
10762 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\251\251\251\377"
10763 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\274"
10764 +  "\274\274\377\0\0\0\373\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10765 +  "\377\351\351\351\377\303\303\303\377\303\303\303\377\303\303\303\377"
10766 +  "\277\277\277\377uuu\377\274\274\274\377\274\274\274\377\274\274\274\377"
10767 +  "\274\274\274\377\274\274\274\377~~~\377\270\270\270\377\274\274\274\377"
10768 +  "\274\274\274\377\273\273\273\377\243\243\243\377\0\0\0\373\0\0\0\0\0"
10769 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
10770 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\376\0\0\0\373\0\0\0\373\0\0\0\373"
10771 +  "\0\0\0\373\0\0\0\373\0\0\0\373\0\0\0\373\0\0\0\377\0\0\0\377\0\0\0\377"
10772 +  "\0\0\0\373\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10773 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10774 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10775 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10776 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10777 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10778 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10779 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10780 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10781 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10782 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10783 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
10784 +
10785 +
10786 +/* GdkPixbuf RGBA C-Source image dump */
10787 +
10788 +static const guint8 stock_vim_find_help[] = 
10789 +{ ""
10790 +  /* Pixbuf magic (0x47646b50) */
10791 +  "GdkP"
10792 +  /* length: header (24) + pixel_data (2304) */
10793 +  "\0\0\11\30"
10794 +  /* pixdata_type (0x1010002) */
10795 +  "\1\1\0\2"
10796 +  /* rowstride (96) */
10797 +  "\0\0\0`"
10798 +  /* width (24) */
10799 +  "\0\0\0\30"
10800 +  /* height (24) */
10801 +  "\0\0\0\30"
10802 +  /* pixel_data: */
10803 +  "\0\0\0\0\0\0\0g\0\0\0\257\0\0\0\247\0\0\0K\0\0\0\0\205\203\177\25mli"
10804 +  "pEDB\266\35\35\34\344\4\4\4\373\4\4\4\373\33\33\33\345=<:\270][Yucb`"
10805 +  "\32\0\0\0\4\0\0\0\15\0\0\0S\0\0\0[\0\0\0\27\0\0\0\0\0\0\0\0\0\0\0\0\0"
10806 +  "\0\0S\0\0\0\373\0\0\0\223\0\0\0\243\0\0\0\353MLK\227\4\4\4\373//-\377"
10807 +  "\301\277\273\377\354\352\347\377\365\363\360\377\362\360\354\377\341"
10808 +  "\337\334\377\257\255\252\377''&\377\2\2\2\373\77>>\227\0\0\0\335\0\0"
10809 +  "\0\340\0\0\0\357\0\0\0\347\0\0\0\27\0\0\0\0\0\0\0\0\0\0\0\243\0\0\0\213"
10810 +  "\0\0\0\0\207\205\201+60-\317\30\30\30\377\373\370\365\377\376\374\370"
10811 +  "\377\372\370\365\377\365\364\361\377\362\361\355\377\362\360\354\377"
10812 +  "\361\357\353\377\361\356\353\377\352\351\346\377\332\330\324\377\0\0"
10813 +  "\0\377\20\16\16\346CC\77<\0\0\0\22\0\0\0\303\0\0\0\203\0\0\0\0\0\0\0"
10814 +  "\0\0\0\0s\0\0\0\233\206\202~+\37\20\16\344\257:\36\377\373\253\223\377"
10815 +  "\372\351\343\377\360\357\353\377\354\352\347\377\351\350\345\377\352"
10816 +  "\350\346\377\354\352\350\377\355\353\351\377\355\353\351\377\355\353"
10817 +  "\350\377\352\317\306\377\3254\12\377u\31\4\377\20\10\6\347;;7;\0\0\0"
10818 +  "l\0\0\0\317\0\0\0\0\0\0\0\0\0\0\0'\0\0\0\2274\26\15\314\257<\40\377\374"
10819 +  "\314\276\377\367\277\256\377\346uT\377\337\335\333\377\333\331\326\377"
10820 +  "\330\327\323\377\333\332\326\377\343\342\336\377\352\351\346\377\354"
10821 +  "\353\350\377\355\353\350\377\345W-\377\343:\13\377\3244\12\377i\25\4"
10822 +  "\377\20\5\4\324\0\0\0\225\0\0\0\301\0\0\0\1\0\0\0\0\0\0\0\0X,\"\214\17"
10823 +  "\17\17\377\375\324\310\377\367\277\257\377\350uT\377\325Q+\377\306\202"
10824 +  "p\377\276\275\272\377\245\243\240\377\234\232\225\377\271\267\262\377"
10825 +  "\327\326\322\377\347\345\342\377\347\232\205\377\346F\30\377\344<\13"
10826 +  "\377\342:\13\377\3110\11\377\0\0\0\377\1\0\0\352\0\0\0=\0\0\0\4\0\0\0"
10827 +  "\0\216\177z\27\4\1\0\373\372\261\234\377\372\314\276\377GG\77\377\12"
10828 +  "\12\11\377\12\12\11\377KKC\377\0\0\0\377\0\0\0\377\4\4\4\377\0\0\0\377"
10829 +  "\24\24\22\377\205yt\377\3327\13\377\354|[\377\351[2\377\344<\13\377\336"
10830 +  "8\13\377\235#\6\377\0\0\0\374\4\2\2""1\0\0\0\13\0\0\0\2mljpbba\377\355"
10831 +  "\342\337\37744.\377\235\235\215\377\317\317\271\377\304\304\257\377\215"
10832 +  "\215\177\377**&\377\0\0\0b\0\0\0""8\0\0\0""1\0\0\0U\0\0\0\377b\24\4\377"
10833 +  "\342R+\377\362\246\220\377\347N!\377\342;\13\377\311\221\201\377\2\2"
10834 +  "\2\377\0\0\0\210\0\0\0\24\0\0\0\5ECB\267\345\344\342\377FF\77\377\234"
10835 +  "\234\214\377\342\342\320\377\355\355\347\377\300\300\254\377\262\262"
10836 +  "\237\377\202\202t\377LLD\377\0\0\0\35\0\0\0\25\0\0\0\24\"\40\40&\0\0"
10837 +  "\0\377\236-\22\377\357\215q\377\360\233\203\377\352\335\327\377\333\332"
10838 +  "\326\377''$\377\0\0\0\304\0\0\0\36\0\0\0\11\35\35\34\344\360\356\354"
10839 +  "\377\11\11\10\377\325\325\277\377\373\373\372\377\303\303\256\377\265"
10840 +  "\265\242\377\246\246\225\377\234\234\217\377\10\10\7\377\0\0\0\11\0\0"
10841 +  "\0\4\226\225\224\13\0\0\0\11YYVB\77\15\2\377\360\271\251\377\366\365"
10842 +  "\364\377\350\347\344\377\332\330\325\377XVR\377\0\0\0\351\0\0\0%\0\0"
10843 +  "\0\15\4\4\4\373\365\363\360\377\11\11\11\377\312\312\265\377\335\335"
10844 +  "\320\377\267\267\244\377\252\252\230\377\233\233\213\377\256\256\243"
10845 +  "\377\12\12\11\377\0\0\0\2\0\0\0\0\350\347\345\24\0\0\0\2\31\30\30\12"
10846 +  "\12\12\10\377\366\364\362\377\364\363\361\377\344\343\340\377\323\322"
10847 +  "\316\377cb]\377\0\0\0\374\0\0\0+\0\0\0\20\4\4\4\373\362\360\354\377G"
10848 +  "G@\377\222\222\203\377\272\272\247\377\255\255\233\377\237\237\216\377"
10849 +  "\254\254\241\377\317\317\313\377LLE\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10850 +  "\0""0/.\5\12\12\12\377\372\370\366\377\357\355\352\377\335\334\330\377"
10851 +  "\306\304\302\377>>9\377\0\0\0\374\0\0\0-\0\0\0\21\33\33\31\345\341\337"
10852 +  "\334\377\331\327\324\37744/\377\207\207y\377\240\240\220\377\256\256"
10853 +  "\242\377\303\303\276\377\1\1\1\377\1\1\1\377\261\260\257\77\0\0\0\0\0"
10854 +  "\0\0\0\0\0\0\0\211\207\2064kjg\377\374\372\370\377\354\352\350\377\326"
10855 +  "\324\322\377\274\272\267\377\0\0\0\377\0\0\0\352\0\0\0-\0\0\0\21<<:\271"
10856 +  "\257\255\252\377\361\356\353\377\351\350\345\377KKC\377\12\12\11\377"
10857 +  "\12\12\11\377AAA\377srq\377\1\1\1\377\1\1\1\377\244\243\241\315\337\336"
10858 +  "\333\10\316\314\312*(((\377\316\233\217\377\372\372\367\377\346\346\342"
10859 +  "\377\315\314\312\377\260\260\254\377\0\0\0\377\0\0\0\306\0\0\0+\0\0\0"
10860 +  "\20][Yu''&\377\352\351\346\377\355\353\351\377\355\343\337\377\347\204"
10861 +  "h\377\337]:\377c\31\11\377\237\237\235\377\1\1\1\377\1\1\1\377\1\1\1"
10862 +  "\377\241\237\235a)))\377\272\177q\377\367\306\267\377\361\246\221\377"
10863 +  "\334\322\314\377\310\306\303\377~|x\377\0\0\0\377\0\0\0\216\0\0\0%\0"
10864 +  "\0\0\15a`^\33\2\2\2\373\332\330\324\377\350\255\234\377\351a9\377\353"
10865 +  "tR\377\357\216r\377\352\200c\377\236.\23\377\77\30\21\377\0\0\0\377\1"
10866 +  "\1\1\377\1\1\1\377\276\236\224\377\371\323\310\377\363\255\231\377\336"
10867 +  "S+\377\3104\11\377\264\202t\377\0\0\0\377\0\0\0\375\0\0\0D\0\0\0\36\0"
10868 +  "\0\0\11\0\0\0\4""854\236\0\0\0\377\3264\12\377\344=\17\377\350X.\377"
10869 +  "\355yW\377\364\266\244\377\364\260\235\377\360\345\340\377\364\363\357"
10870 +  "\377\1\1\1\377\1\1\1\377\1\1\1\377\354\225|\377\343O%\377\3237\12\377"
10871 +  "\277/\11\377&\10\0\377\0\0\0\377\0\0\0\354\0\0\0-\0\0\0\24\0\0\0\5LK"
10872 +  "J\3\0\0\0\220\31\17\13\332u\31\4\377\3255\12\377\342:\13\377\344=\14"
10873 +  "\377\347L\37\377\357\273\253\377\365\364\363\377\357\355\352\377\365"
10874 +  "\363\361\377\1\1\1\377\1\1\1\377\336C\26\377\3237\12\377\3042\14\377"
10875 +  "Y\22\2\377\0\0\0\377\0\0\0\333\0\0\0\377\0\0\0;\0\0\0\13\0\0\0\2\0\0"
10876 +  "\0\7\0\0\0\260JJG7\16\5\4\347i\25\4\377\3100\11\377\3368\13\377\340S"
10877 +  "+\377\347\346\343\377\347\346\342\377\343\342\336\377\335\334\331\377"
10878 +  "\327\326\323\377\317\316\312\377\274[>\377\256)\7\3774\26\15\377\0\0"
10879 +  "\0\377\0\0\0\352\0\0\0b\0\0\0\374\0\0\0A\0\0\0\4\0\0\0\0\0\0\0\13\0\0"
10880 +  "\0\217\0\0\0\12;;7;\17\7\5\325\0\0\0\377\233\"\5\377\301\250\237\377"
10881 +  "\321\320\314\377\320\316\313\377\307\306\303\377\273\272\267\377\265"
10882 +  "\264\261\377\247\246\242\377rd^\377\0\0\0\377\0\0\0\377\0\0\0\331\0\0"
10883 +  "\0Y\0\0\0l\0\0\0\370\0\0\0\22\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0_\0\0\0\230"
10884 +  "\0\0\0\242\0\0\0\253\13\11\10\230\0\0\0\374\1\1\0\377\"\"!\377QPK\377"
10885 +  "]\\W\377;;7\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\375\0\0\0\323\0\0"
10886 +  "\0E\0\0\0H\0\0\0\310\0\0\0\246\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10887 +  "\0\0\0\0\37\0\0\0-\0\0\0\12\0\0\0\21\2\2\2""1\0\0\0\215\0\0\0\305\0\0"
10888 +  "\0\351\0\0\0\374\0\0\0\374\0\0\0\353\0\0\0\307\0\0\0\226\0\0\0K\0\0\0"
10889 +  "\307\0\0\0\377\0\0\0\377\0\0\0\311\0\0\0%\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10890 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\13\0\0\0\24\0\0\0"
10891 +  "\35\0\0\0%\0\0\0+\0\0\0-\0\0\0-\0\0\0+\0\0\0%\0\0\0\36\0\0\0\27\0\0\0"
10892 +  "0\0\0\0\33\0\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
10893 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0\11\0\0\0\15\0\0"
10894 +  "\0\20\0\0\0\21\0\0\0\21\0\0\0\20\0\0\0\15\0\0\0\11\0\0\0\5\0\0\0\2\0"
10895 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
10896 +
10897 +
10898 +/* GdkPixbuf RGBA C-Source image dump */
10899 +
10900 +static const guint8 stock_vim_save_all[] = 
10901 +{ ""
10902 +  /* Pixbuf magic (0x47646b50) */
10903 +  "GdkP"
10904 +  /* length: header (24) + pixel_data (2304) */
10905 +  "\0\0\11\30"
10906 +  /* pixdata_type (0x1010002) */
10907 +  "\1\1\0\2"
10908 +  /* rowstride (96) */
10909 +  "\0\0\0`"
10910 +  /* width (24) */
10911 +  "\0\0\0\30"
10912 +  /* height (24) */
10913 +  "\0\0\0\30"
10914 +  /* pixel_data: */
10915 +  "\0\0\0U\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
10916 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
10917 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0Y\0"
10918 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\303\327\364\377\251\315\345\377uuz\377"
10919 +  "\357\305\273\377\361\310\276\377\360\306\274\377\356\274\262\377\356"
10920 +  "\276\265\377\356\301\270\377\355\277\266\377\351\267\255\377\351\270"
10921 +  "\257\377\351\267\255\377\351\270\257\377\351\271\261\377\345\277\272"
10922 +  "\377srw\377\263\315\343\377\241\276\326\377\0\0\0\377\0\0\0\0\0\0\0\4"
10923 +  "\0\0\0\1\0\0\0\377\273\326\350\377\212\252\305\377`_h\377\340\215~\377"
10924 +  "\340\202n\377\340\200n\377\334zh\377\334\201q\377\332xh\377\324\201s"
10925 +  "\377\324}n\377\316re\377\317rd\377\316ug\377\304g[\377\303eX\377bai\377"
10926 +  "\207\243\267\377Vq\207\377\0\0\0\377\0\0\0\0\0\0\0\15\0\0\0\4\0\0\0\377"
10927 +  "\272\325\351\377\210\247\303\377EDJ\377\0\0\0\377\0\0\0\377\0\0\0\377"
10928 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
10929 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
10930 +  "\0\0\0\377\0\0\0\377\0\0\0_\0\0\0\377\266\323\347\377\207\253\301\377"
10931 +  "\0\0\0\377\303\327\364\377\251\315\345\377uuz\377\357\305\273\377\361"
10932 +  "\310\276\377\360\306\274\377\356\274\262\377\356\276\265\377\356\301"
10933 +  "\270\377\355\277\266\377\351\267\255\377\351\270\257\377\351\267\255"
10934 +  "\377\351\270\257\377\351\271\261\377\345\277\272\377srw\377\263\315\343"
10935 +  "\377\241\276\326\377\0\0\0\377\0\0\0\377\271\323\347\377\205\244\277"
10936 +  "\377\0\0\0\377\273\326\350\377\212\252\305\377`_h\377\340\215~\377\340"
10937 +  "\202n\377\340\200n\377\334zh\377\334\201q\377\332xh\377\324\201s\377"
10938 +  "\324}n\377\316re\377\317rd\377\316ug\377\304g[\377\303eX\377bai\377\207"
10939 +  "\243\267\377Vq\207\377\0\0\0\377\0\0\0\377\271\323\346\377\204\243\277"
10940 +  "\377\0\0\0\377\272\325\351\377\210\247\303\377hfp\377\310\201{\377\313"
10941 +  "|t\377\313zs\377\313{s\377\314|r\377\313}s\377\277kd\377\314zp\377\301"
10942 +  "jb\377\314|s\377\302e[\377\303dY\377\272lj\377hfp\377\201\236\266\377"
10943 +  "Tp\206\377\0\0\0\377\0\0\0\377\267\322\347\377\202\240\273\377\0\0\0"
10944 +  "\377\266\323\347\377\207\253\301\377sss\377\377\377\377\377\377\377\377"
10945 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10946 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10947 +  "\377\377\377\377\377\377\377\377\377\377\377sss\377\203\240\270\377R"
10948 +  "l\200\377\0\0\0\377\0\0\0\377\265\312\345\377\177\242\271\377\0\0\0\377"
10949 +  "\271\323\347\377\205\244\277\377sss\377\377\377\377\377\377\377\377\377"
10950 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10951 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10952 +  "\377\377\377\377\377\377\377\377\377\377sss\377\203\240\270\377Oi|\377"
10953 +  "\0\0\0\377\0\0\0\377\256\314\345\377}\240\266\377\0\0\0\377\271\323\346"
10954 +  "\377\204\243\277\377sss\377\316\316\316\377\315\315\315\377\315\315\315"
10955 +  "\377\315\315\315\377\315\315\315\377\315\315\315\377\315\315\315\377"
10956 +  "\315\315\315\377\315\315\315\377\315\315\315\377\315\315\315\377\315"
10957 +  "\315\315\377\277\277\277\377sss\377\210\244\273\377Hbv\377\0\0\0\377"
10958 +  "\0\0\0\377\260\321\344\377\203\241\266\377\0\0\0\377\267\322\347\377"
10959 +  "\202\240\273\377ccc\377\377\377\377\377\377\377\377\377\377\377\377\377"
10960 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10961 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10962 +  "\377\377\377\377\377\377sss\377\210\244\273\377F^p\377\0\0\0\377\0\0"
10963 +  "\0\377\252\316\343\377{\233\262\377\0\0\0\377\265\312\345\377\177\242"
10964 +  "\271\377sss\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10965 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10966 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10967 +  "\377\377\377\377sss\377\207\243\272\377E\\m\377\0\0\0\377\0\0\0\377\251"
10968 +  "\311\342\377t\224\257\377\0\0\0\377\256\314\345\377}\240\266\377sss\377"
10969 +  "\316\316\316\377\315\315\315\377\315\315\315\377\315\315\315\377\315"
10970 +  "\315\315\377\315\315\315\377\315\315\315\377\315\315\315\377\315\315"
10971 +  "\315\377\315\315\315\377\315\315\315\377\315\315\315\377\305\305\305"
10972 +  "\377sss\377\207\243\272\377T`i\377\0\0\0\377\0\0\0\377\253\304\342\377"
10973 +  "r\224\255\377\0\0\0\377\260\321\344\377\203\241\266\377s[[\377\377\377"
10974 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10975 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
10976 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377sss\377"
10977 +  "\203\240\270\377Q\\d\377\0\0\0\377\0\0\0\377\252\311\342\377p\221\252"
10978 +  "\377\0\0\0\377\252\316\343\377{\233\262\377z\216\232\377zzz\377sss\377"
10979 +  "sss\377sss\377sss\377sss\377kor\377ooo\377sss\377sss\377sss\377sss\377"
10980 +  "iii\377ow~\377\206\242\271\377:Q]\377\0\0\0\377\0\0\0\377\252\311\341"
10981 +  "\377l\216\246\377\0\0\0\377\251\311\342\377t\224\257\377\201\236\266"
10982 +  "\377\203\240\270\377\206\242\271\377\202\237\267\377\177\235\266\377"
10983 +  "~\234\265\377\202\237\267\377y\230\262\377\206\242\271\377\205\241\270"
10984 +  "\377\205\241\270\377\207\243\272\377\202\237\267\377\214\247\275\377"
10985 +  "\203\240\270\377\212\245\273\3776JY\377\0\0\0\377\0\0\0\377\250\310\341"
10986 +  "\377k\215\246\377\0\0\0\377\253\304\342\377r\224\255\377o\220\254\377"
10987 +  "q\222\256\377AJN\377BJQ\377R[c\377boy\377_lv\377\\iq\377Zfo\377Xck\377"
10988 +  "Wcj\377R[c\377;S`\3779BK\377x\227\263\377\244\271\313\3776HS\377\0\0"
10989 +  "\0\377\0\0\0\377\244\304\336\377i\213\243\377\0\0\0\377\252\311\342\377"
10990 +  "p\221\252\377o\217\247\377JSY\377\227\223\214\377\337\335\332\377\343"
10991 +  "\341\336\377\353\352\350\377\353\352\350\377\352\351\347\377\337\335"
10992 +  "\332\377\317\316\311\377\311\306\300\377\233\226\216\377Vah\377Kez\377"
10993 +  "Ts\214\377\252\306\335\3774FN\377\0\0\0\377\0\0\0\377w\211\231\377n\211"
10994 +  "\236\377\0\0\0\377\252\311\341\377l\216\246\377l\214\244\377@GM\377\332"
10995 +  "\330\323\377\347\346\342\377ge^\377ROG\377ROG\377\331\327\324\377\307"
10996 +  "\305\277\377\300\274\265\377\270\263\253\377\317\316\311\377CLT\377M"
10997 +  "i\177\377Oo\204\377\263\312\334\3771>I\377\0\0\0\377\0\0\0""5\14\15\17"
10998 +  "\377N^j\377\0\0\0\377\250\310\341\377k\215\246\377r\217\244\377@GM\377"
10999 +  "\342\341\335\377\360\357\354\377ge^\377ROG\377ROG\377\315\312\306\377"
11000 +  "\302\277\271\377\300\274\265\377\312\306\300\377\334\332\327\377KU]\377"
11001 +  "Ni\177\377Oo\204\377\272\314\334\3771>I\377\0\0\0\377\0\0\0\4\0\0\0""9"
11002 +  "\0\0\0\377\0\0\0\377\244\304\336\377i\213\243\377p\212\241\3778>C\377"
11003 +  "\340\336\332\377\353\352\350\377QNF\377OLD\377OLD\377\307\304\276\377"
11004 +  "\300\274\265\377\313\310\302\377\341\340\334\377\351\350\346\377GQX\377"
11005 +  "Nhy\377Ml\200\377\243\303\333\3778\77C\377\0\0\0\377\0\0\0\1\0\0\0\4"
11006 +  "\0\0\0\16\0\0\0\377w\211\231\377n\211\236\377e\205\234\37738<\377\327"
11007 +  "\324\320\377\326\324\320\377NJC\377MIB\377MIB\377\300\274\265\377\321"
11008 +  "\316\311\377\346\345\342\377\355\354\352\377\346\345\342\377EOU\377H"
11009 +  "as\377Mfx\377\241\301\332\3777<@\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
11010 +  "\0\0\0\0""5\14\15\17\377N^j\377[n|\377O[b\377\244\240\231\377\300\274"
11011 +  "\265\377\270\263\253\377\314\311\303\377\314\311\303\377\327\325\321"
11012 +  "\377\344\342\340\377\352\351\347\377\335\333\327\377\270\265\260\377"
11013 +  ">GM\377Jav\377J`p\377\233\303\330\3776<A\377\0\0\0\377\0\0\0\0\0\0\0"
11014 +  "\0\0\0\0\1\0\0\0\10\0\0\0\77\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11015 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11016 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377(2>\377\0\0\0\377\0"
11017 +  "\0\0^"};
11018 +
11019 +
11020 +/* GdkPixbuf RGBA C-Source image dump */
11021 +
11022 +static const guint8 stock_vim_session_load[] = 
11023 +{ ""
11024 +  /* Pixbuf magic (0x47646b50) */
11025 +  "GdkP"
11026 +  /* length: header (24) + pixel_data (2304) */
11027 +  "\0\0\11\30"
11028 +  /* pixdata_type (0x1010002) */
11029 +  "\1\1\0\2"
11030 +  /* rowstride (96) */
11031 +  "\0\0\0`"
11032 +  /* width (24) */
11033 +  "\0\0\0\30"
11034 +  /* height (24) */
11035 +  "\0\0\0\30"
11036 +  /* pixel_data: */
11037 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11038 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11039 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11040 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11041 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11042 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\37\0\0\0\306"
11043 +  "\0\0\0\342\0\0\0\356\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0.\0"
11044 +  "\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11045 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\310\265\270"
11046 +  "\245\377\344\347\322\377\344\347\322\377\344\347\322\377\344\347\322"
11047 +  "\377\344\347\322\377\207\212v\37734+\377\22\22\22\6\0\0\0\0\0\0\0\0\0"
11048 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11049 +  "\0\0\0\0\0\0\0\0\0./%O\13\13\13\345\342\345\317\377\317\324\257\377\317"
11050 +  "\324\257\377\317\324\257\377\316\323\256\377\316\323\256\377\262\266"
11051 +  "\226\377--%\377\5\5\4A\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11052 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\"#\34\241"
11053 +  "\235\237\220\377\342\345\317\377\306\312\246\377\304\311\245\377\306"
11054 +  "\313\247\377\307\314\250\377\311\316\251\377\311\316\251\377UXG\377\31"
11055 +  "\32\25\242**\25\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11056 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\40\40\32\356\324\326\302"
11057 +  "\377\276\302\240\377\263\270\226\377\260\265\225\377\263\267\227\377"
11058 +  "\266\273\231\377\273\300\236\377\274\301\237\377\201\205l\377>\77""2"
11059 +  "\345\0\0\0\302\0\0\0\324\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
11060 +  "\0\377\0\0\0\377\0\0\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0#$\35\373\332"
11061 +  "\335\310\377\257\264\224\377\252\257\217\377\243\247\211\377\246\252"
11062 +  "\213\377\252\257\217\377\251\255\216\377\247\253\215\377\244\250\212"
11063 +  "\377\241\245\210\377\252\255\226\377\263\265\245\377\270\273\252\377"
11064 +  "\272\274\253\377\301\303\262\377\307\312\267\377\312\315\273\377\272"
11065 +  "\275\250\377\0\0\0\377\34\34\34\3\0\0\0\0\0\0\0\0\0\0\0\0\14\14\11\377"
11066 +  "\335\337\313\377\226\233~\377\235\242\206\377\225\230|\377\226\231~\377"
11067 +  "\232\235\201\377\231\235\200\377\226\231~\377\235\241\204\377\245\252"
11068 +  "\213\377\244\251\212\377\243\250\211\377\242\245\210\377\243\247\211"
11069 +  "\377\242\245\207\377\237\243\206\377\233\236\203\377\211\215t\377\0\0"
11070 +  "\0\377//'\14\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\377\330\333\311\377\204\206"
11071 +  "n\377}\201i\377\25\26\22\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11072 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11073 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\327\0\0\0\301\0\0\0W\0"
11074 +  "\0\0\5\0\0\0\377\327\332\311\377y}g\377=\77""4\377\340\340\331\377\353"
11075 +  "\355\335\377\350\353\331\377\350\353\331\377\350\353\331\377\350\353"
11076 +  "\331\377\350\353\331\377\350\353\331\377\350\353\331\377\350\353\331"
11077 +  "\377\350\353\331\377\350\353\331\377\350\353\331\377\347\352\330\377"
11078 +  "\343\346\324\377\336\341\320\377\332\334\314\377\332\334\321\377+,(\377"
11079 +  ",,#\23\0\0\0\377\327\332\306\377os^\377\15\15\15\377\364\364\354\377"
11080 +  "\317\324\257\377\317\324\257\377\317\324\257\377\317\324\257\377\317"
11081 +  "\324\257\377\317\324\257\377\317\324\257\377\317\324\257\377\317\324"
11082 +  "\257\377\316\323\256\377\1\1\1\377\1\1\1\377\1\1\1\377\306\313\250\377"
11083 +  "\302\306\244\377\273\300\236\377\253\260\221\377#%\36\37722'5\0\0\0\377"
11084 +  "\327\332\306\377IK=\377\334\334\324\377\352\354\335\377\315\322\255\377"
11085 +  "\316\323\256\377\316\323\256\377\315\322\255\377\316\323\256\377\315"
11086 +  "\322\255\377\260\265\225\377\12\12\10\377\12\12\10\377\244\250\212\377"
11087 +  "\5\5\4\377\272\271\266\377\5\5\4\377\233\236\203\377\11\11\10\377\11"
11088 +  "\11\7\377oq]\377\10\10\6\27712(J\0\0\0\377\325\330\304\377\26\26\26\377"
11089 +  "\362\362\352\377\312\317\253\377\312\317\252\377\312\317\253\377\312"
11090 +  "\317\252\377\311\316\252\377\312\317\252\377\311\316\252\377\12\12\10"
11091 +  "\377\207\210\203\377rrp\377\12\12\10\377HFA\377\237\235\226\377HFA\377"
11092 +  "\11\11\7\377\210\207\201\377#$\36\377\4\4\3\377\15\15\12\24123)>\0\0"
11093 +  "\0\377\266\270\247\377ttp\377\354\354\342\377\303\310\245\377\302\307"
11094 +  "\244\377\302\307\244\377\302\306\244\377\300\305\242\377\302\306\244"
11095 +  "\377\277\304\241\377\11\11\10\377\310\307\302\377\266\265\257\377\237"
11096 +  "\235\226\377\237\235\226\377\237\235\226\377\220\216\206\377\227\225"
11097 +  "\216\377\200}t\377HFA\377\0\0\0\376\34\34\26e33&'\0\0\0\377\246\251\230"
11098 +  "\377\334\334\324\377\270\274\233\377\270\274\233\377\265\271\231\377"
11099 +  "\263\267\227\377\263\267\227\377\260\265\225\377\260\265\225\377\257"
11100 +  "\263\224\377\214\217v\377\10\11\7\377\237\235\226\377\237\235\226\377"
11101 +  "YXT\377`^W\377\211\210\203\377\200}t\377vtk\377\3\3\3\376\5\5\4\3073"
11102 +  "3'200&\24\0\0\0\377\236\237\221\377\345\346\332\377\255\261\222\377\251"
11103 +  "\255\217\377\246\252\214\377\245\251\214\377\243\247\212\377\243\247"
11104 +  "\212\377\241\245\210\377\1\1\1\377\1\1\1\377HFA\377\237\235\226\377`"
11105 +  "^W\377CB\77\377('$\377640\377\237\235\226\377mkc\377HFA\377\1\1\1\357"
11106 +  "\0\0\0\356,,!\10\0\0\0\377\343\345\331\377\300\303\257\377\224\230|\377"
11107 +  "\217\223y\377\213\217u\377\212\216t\377\210\214s\377\210\214s\377\205"
11108 +  "\211p\377\1\1\0\377\214\213\211\377\266\265\257\377\237\235\226\377Y"
11109 +  "XT\377!\40\36\377\12\11\10\377\30\30\26\377\346\346\344\377\200}t\377"
11110 +  "ec\\\377`^W\377\0\0\0\354\34\34\34\3""34)[\0\0\0\377\0\0\0\377\0\0\0"
11111 +  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
11112 +  "\0\377\0\0\0\377HFA\377\237\235\226\377\211\210\203\377640\377\26\26"
11113 +  "\24\377\214\213\211\377\337\336\334\377ec\\\377HFA\377\0\0\0\354\0\0"
11114 +  "\0\352\0\0\0\1""34(J34)T34)Y34(Z45)Z45)Z45)Z45)Z45)Z45)Z45)Z\36\37\30"
11115 +  "{\1\1\0\367\260\257\251\377\200}t\377\266\265\257\377\346\346\344\377"
11116 +  "\325\324\321\377\223\221\213\377ec\\\377\0\0\0\364\12\12\7A\34\34\34"
11117 +  "\3\0\0\0\0""22(%24(834)B23(C34)D34)D34)D34)D34)D34)D34)D\0\0\0\365\266"
11118 +  "\265\257\377\253\251\243\377\237\235\226\377\200}t\377\200}t\377vtk\377"
11119 +  "vtk\377]\\U\377HFA\377\0\0\0\362\0\0\0\1\0\0\0\0""33\36\11""00&\24""1"
11120 +  "1&\31""00$\31""33(\32""33(\32""33(\32""33(\32""33(\32""33(\32""33(\32"
11121 +  "\0\0\0\363\1\1\1\313YXT\377\0\0\0\366HFA\377vtk\377HFA\377\0\0\0\363"
11122 +  "IIC\377\0\0\0\307\0\0\0\362\0\0\0\0\0\0\0\0\0\0\0\1**\0\2\37\37\0\3\37"
11123 +  "\37\0\3""88\34\3""88\34\3""88\34\3""88\34\3""88\34\3""88\34\3""88\34"
11124 +  "\3\4\4\2&\0\0\0\362\0\0\0\362\2\2\1""5\0\0\0\343BA<\377\0\0\0\343\1\1"
11125 +  "\0""5\0\0\0\362\0\0\0\362\0\0\0#\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11126 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11127 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\351\0\0\0\353\0\0\0\353\0\0\0"
11128 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
11129 +
11130 +
11131 +/* GdkPixbuf RGBA C-Source image dump */
11132 +
11133 +static const guint8 stock_vim_session_new[] = 
11134 +{ ""
11135 +  /* Pixbuf magic (0x47646b50) */
11136 +  "GdkP"
11137 +  /* length: header (24) + pixel_data (2304) */
11138 +  "\0\0\11\30"
11139 +  /* pixdata_type (0x1010002) */
11140 +  "\1\1\0\2"
11141 +  /* rowstride (96) */
11142 +  "\0\0\0`"
11143 +  /* width (24) */
11144 +  "\0\0\0\30"
11145 +  /* height (24) */
11146 +  "\0\0\0\30"
11147 +  /* pixel_data: */
11148 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11149 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11150 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11151 +  "\0\0\0\0\0Y\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11152 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\202"
11153 +  "\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11154 +  "\0\0\0\0\0\0\0\0\0\377\323\323\323\377\366\366\366\377\377\377\377\377"
11155 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11156 +  "\377\377\377\377\377\377\377\377\377\377\377\371\371\371\377\332\332"
11157 +  "\332\377XXX\377\0\0\0\301\0\0\0\6\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11158 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\366\366\366\377\377\377\377\377"
11159 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11160 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11161 +  "\377\377\307\307\307\377\321\321\321\377\326\326\326\377\0\0\0\377\0"
11162 +  "\0\0\10\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11163 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11164 +  "\377\377\377\377\377\377\377\377\377\377\377\377\376\376\376\377\377"
11165 +  "\377\377\377\376\376\376\377\375\375\375\377\300\300\300\377\341\341"
11166 +  "\341\377\360\360\360\377\233\233\233\377\0\0\0\377\0\0\0\11\0\0\0\1\0"
11167 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377"
11168 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\376\376"
11169 +  "\376\377\375\375\375\377\374\374\373\377\375\375\375\377\374\374\373"
11170 +  "\377\373\373\373\377\257\257\256\377\351\351\351\377\377\377\377\377"
11171 +  "\337\337\337\377\217\217\217\377\0\0\0\377\0\0\0\11\0\0\0\1\0\0\0\0\0"
11172 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377"
11173 +  "\377\377\377\376\376\376\377\375\375\375\377\374\374\373\377\373\373"
11174 +  "\373\377\372\372\371\377\373\373\373\377\372\372\371\377\371\371\370"
11175 +  "\377\244\244\243\377\360\360\360\377\377\377\377\377\364\364\364\377"
11176 +  "\317\317\317\377\242\242\242\377\0\0\0\264\0\0\0\10\0\0\0\1\0\0\0\0\0"
11177 +  "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\376\376\376\377\375\375\375"
11178 +  "\377\374\374\373\377\373\373\373\377\372\372\371\377\371\371\370\377"
11179 +  "\370\370\367\377\371\371\370\377\370\370\367\377\370\367\366\377\236"
11180 +  "\236\236\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
11181 +  "\377\0\0\0\201\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377"
11182 +  "\377\374\374\373\377\373\373\373\377\372\372\371\377\371\371\370\377"
11183 +  "\370\370\367\377\370\367\366\377\367\366\365\377\370\367\366\377\367"
11184 +  "\366\365\377\366\366\364\377\364\363\362\377\336\335\334\377\323\322"
11185 +  "\320\377\267\267\265\377\237\236\235\377poo\377ebZ\377\0\0\0\377\0\0"
11186 +  "\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\372\372\371\377"
11187 +  "\371\371\370\377\370\370\367\377\370\367\366\377\367\366\365\377\366"
11188 +  "\366\364\377\365\364\363\377\366\366\364\377\365\364\363\377\364\363"
11189 +  "\362\377\362\362\360\377\344\344\342\377\332\331\327\377\330\330\326"
11190 +  "\377\315\314\312\377\257\256\254\377\210\204{\377\0\0\0\377\0\0\0\35"
11191 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\370\370\367\377\370"
11192 +  "\367\366\377\367\366\365\377\366\366\364\377\365\364\363\377\364\363"
11193 +  "\362\377\363\363\361\377\364\363\362\377\363\363\361\377\362\362\360"
11194 +  "\377\357\357\355\377\356\355\353\377\355\354\352\377\351\350\346\377"
11195 +  "\325\324\323\377\304\303\302\377\217\212\201\377\0\0\0\377\0\0\0\40\0"
11196 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\366\365\364\377\1\1"
11197 +  "\1\377\1\1\1\377\1\1\1\377\363\363\361\377\362\362\360\377\361\361\357"
11198 +  "\377\362\362\360\377\361\361\357\377\361\360\356\377\356\355\353\377"
11199 +  "\354\353\351\377\352\351\347\377\345\344\342\377\344\343\340\377\322"
11200 +  "\321\316\377\215\210~\377\0\0\0\377\0\0\0\40\0\0\0\0\0\0\0\0\0\0\0#\0"
11201 +  "\0\0\377\15\15\15\377\303\302\301\377\6\6\6\377\335\334\332\377\6\6\6"
11202 +  "\377\277\277\275\377\14\14\14\377\14\14\14\377\317\317\315\377\360\357"
11203 +  "\355\377\357\356\354\377\354\353\351\377\350\347\345\377\345\344\341"
11204 +  "\377\344\343\340\377\342\341\336\377\341\337\334\377\227\222\210\377"
11205 +  "\0\0\0\377\0\0\0\40\0\0\0\0\0\0\0\0\0\0\0\362\352\352\352\377\262\262"
11206 +  "\260\377\14\14\14\377HFA\377\237\235\226\377HFA\377\14\14\14\377\210"
11207 +  "\207\201\377665\377\14\14\14\377\360\357\355\377\357\356\354\377\354"
11208 +  "\353\351\377\350\347\345\377\345\344\341\377\344\343\340\377\342\341"
11209 +  "\336\377\341\337\334\377\244\236\223\377\0\0\0\377\0\0\0\40\0\0\0\0\0"
11210 +  "\0\0\0\0\0\0\362\235\234\230\377\221\220\212\377\237\235\226\377\237"
11211 +  "\235\226\377\237\235\226\377\220\216\206\377\227\225\216\377\200}t\377"
11212 +  "HFA\377\14\14\13\377\355\354\352\377\354\353\351\377\350\347\344\377"
11213 +  "\347\346\343\377\343\342\337\377\342\340\335\377\341\340\334\377\340"
11214 +  "\337\333\377\241\234\220\377\0\0\0\377\0\0\0\40\0\0\0\0\0\0\0\0\0\0\0"
11215 +  "3\0\0\0\377\237\235\226\377\237\235\226\377YXT\377`^W\377\211\210\203"
11216 +  "\377\200}t\377vtk\377\13\13\13\377\274\273\271\377\351\350\345\377\351"
11217 +  "\350\345\377\345\344\341\377\346\344\341\377\343\342\336\377\337\336"
11218 +  "\332\377\336\335\331\377\335\334\330\377\241\233\220\377\0\0\0\377\0"
11219 +  "\0\0\40\0\0\0\0\0\0\0\375\0\0\0\375HFA\377\237\235\226\377`^W\377CB\77"
11220 +  "\377('$\377640\377\237\235\226\377mkc\377HFA\377\31\31\31\377\22\22\21"
11221 +  "\377\347\345\342\377\344\343\337\377\343\342\336\377\340\337\333\377"
11222 +  "\336\335\331\377\335\334\330\377\334\333\327\377\241\233\220\377\0\0"
11223 +  "\0\377\0\0\0\40\0\0\0\0\0\0\0\375\356\356\355\377\266\265\257\377\237"
11224 +  "\235\226\377YXT\377!\40\36\377\12\11\10\377\30\30\26\377\346\346\344"
11225 +  "\377\200}t\377ec\\\377`^W\377\21\21\21\377\344\343\337\377\342\341\335"
11226 +  "\377\340\337\333\377\336\335\331\377\334\333\327\377\333\331\325\377"
11227 +  "\331\327\323\377\237\231\215\377\0\0\0\377\0\0\0\40\0\0\0\0\0\0\0\375"
11228 +  "\0\0\0\370HFA\377\237\235\226\377\211\210\203\377640\377\26\26\24\377"
11229 +  "\214\213\211\377\337\336\334\377ec\\\377HFA\377\23\23\23\377\23\23\23"
11230 +  "\377\341\340\334\377\341\340\334\377\336\335\331\377\335\333\327\377"
11231 +  "\334\332\326\377\331\327\323\377\330\326\322\377\236\230\215\377\0\0"
11232 +  "\0\377\0\0\0\40\0\0\0\0\0\0\0\0\0\0\0""3\0\0\0\377\260\257\251\377\200"
11233 +  "}t\377\266\265\257\377\346\346\344\377\325\324\321\377\223\221\213\377"
11234 +  "ec\\\377\13\13\13\377\263\262\257\377\341\340\334\377\337\336\332\377"
11235 +  "\340\336\332\377\335\333\327\377\334\332\326\377\331\327\323\377\330"
11236 +  "\326\321\377\327\325\321\377\235\227\213\377\0\0\0\377\0\0\0\40\0\0\0"
11237 +  "\0\0\0\0\0\0\0\0\362\266\265\257\377\253\251\243\377\237\235\226\377"
11238 +  "\200}t\377\200}t\377vtk\377vtk\377]\\U\377HFA\377\13\13\13\377\340\336"
11239 +  "\332\377\336\334\330\377\336\334\330\377\334\332\326\377\334\332\326"
11240 +  "\377\330\326\322\377\327\326\321\377\325\323\316\377\233\225\212\377"
11241 +  "\0\0\0\377\0\0\0\40\0\0\0\0\0\0\0\0\0\0\0\362\0\0\0\377YXT\377\6\6\5"
11242 +  "\377HFA\377vtk\377HFA\377\10\10\7\377IIC\377$#\40\377\10\7\7\377\242"
11243 +  "\234\220\377\241\233\217\377\241\233\220\377\237\231\215\377\237\231"
11244 +  "\215\377\235\227\214\377\235\227\214\377\233\226\212\377gcY\377\0\0\0"
11245 +  "\377\0\0\0\40\0\0\0\0\0\0\0\0\0\0\0#\0\0\0\367\0\0\0\377\0\0\0\377\0"
11246 +  "\0\0\377BA<\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
11247 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
11248 +  "\0\0\377\0\0\0\377\0\0\0q\0\0\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0"
11249 +  "\0\0\17\0\0\0\35\0\0\0\354\0\0\0\356\0\0\0\356\0\0\0\40\0\0\0\40\0\0"
11250 +  "\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\40"
11251 +  "\0\0\0\40\0\0\0\40\0\0\0\40\0\0\0\30\0\0\0\10\0\0\0\0"};
11252 +
11253 +
11254 +/* GdkPixbuf RGBA C-Source image dump */
11255 +
11256 +static const guint8 stock_vim_session_save[] = 
11257 +{ ""
11258 +  /* Pixbuf magic (0x47646b50) */
11259 +  "GdkP"
11260 +  /* length: header (24) + pixel_data (2304) */
11261 +  "\0\0\11\30"
11262 +  /* pixdata_type (0x1010002) */
11263 +  "\1\1\0\2"
11264 +  /* rowstride (96) */
11265 +  "\0\0\0`"
11266 +  /* width (24) */
11267 +  "\0\0\0\30"
11268 +  /* height (24) */
11269 +  "\0\0\0\30"
11270 +  /* pixel_data: */
11271 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11272 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\375"
11273 +  "\0\0\0\375\0\0\0\375\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11274 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11275 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0#\0\0\0\362\0\0\0\362\0\0\0""3\0\0\0\370\272"
11276 +  "\271\266\377\0\0\0\370\0\0\0""3\0\0\0\362\0\0\0\362\0\0\0#\0\0\0\0\0"
11277 +  "\0\0\0\0\0\0U\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
11278 +  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377mmm\377rrp\377"
11279 +  "\0\0\0\377HFA\377\237\235\226\377HFA\377\0\0\0\377\210\207\201\377\0"
11280 +  "\0\0\331\0\0\0\362\0\0\0\1\0\0\0\0\0\0\0\377\303\327\364\377\251\315"
11281 +  "\345\377uuz\377\357\305\273\377\361\310\276\377\360\306\274\377\356\274"
11282 +  "\262\377\356\276\265\377\356\301\270\377\355\277\266\377\13\11\10\377"
11283 +  "\310\307\302\377\266\265\257\377\237\235\226\377\237\235\226\377\237"
11284 +  "\235\226\377\220\216\206\377\227\225\216\377\200}t\377HFA\377\0\0\0\363"
11285 +  "\0\0\0\4\0\0\0\0\0\0\0\377\273\326\350\377\212\252\305\377`_h\377\340"
11286 +  "\215~\377\340\202n\377\340\200n\377\334zh\377\334\201q\377\332xh\377"
11287 +  "\324\201s\377\251dX\377\12\5\5\377\237\235\226\377\237\235\226\377YX"
11288 +  "T\377`^W\377\211\210\203\377\200}t\377vtk\377\0\0\0\377\0\0\0F\0\0\0"
11289 +  "\11\0\0\0\0\0\0\0\377\272\325\351\377\210\247\303\377hfp\377\310\201"
11290 +  "{\377\313|t\377\313zs\377\313{s\377\314|r\377\313}s\377\1\0\0\377\1\0"
11291 +  "\0\377HFA\377\237\235\226\377`^W\377CB\77\377('$\377640\377\237\235\226"
11292 +  "\377mkc\377HFA\377\0\0\0\346\0\0\0\354\0\0\0\0\0\0\0\377\266\323\347"
11293 +  "\377\207\253\301\377sss\377\377\377\377\377\377\377\377\377\377\377\377"
11294 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\2\2\2\377\214\213"
11295 +  "\211\377\266\265\257\377\237\235\226\377YXT\377!\40\36\377\12\11\10\377"
11296 +  "\30\30\26\377\346\346\344\377\200}t\377ec\\\377`^W\377\0\0\0\354\0\0"
11297 +  "\0\0\0\0\0\377\271\323\347\377\205\244\277\377sss\377\377\377\377\377"
11298 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11299 +  "\377\377\377\2\2\2\377\7\7\7\377HFA\377\237\235\226\377\211\210\203\377"
11300 +  "640\377\26\26\24\377\214\213\211\377\337\336\334\377ec\\\377HFA\377\0"
11301 +  "\0\0\354\0\0\0\352\0\0\0\0\0\0\0\377\271\323\346\377\204\243\277\377"
11302 +  "sss\377\316\316\316\377\315\315\315\377\315\315\315\377\315\315\315\377"
11303 +  "\315\315\315\377\315\315\315\377\315\315\315\377\244\244\244\377\12\12"
11304 +  "\12\377\260\257\251\377\200}t\377\266\265\257\377\346\346\344\377\325"
11305 +  "\324\321\377\223\221\213\377ec\\\377\0\0\0\377\0\0\0K\0\0\0\13\0\0\0"
11306 +  "\0\0\0\0\377\267\322\347\377\202\240\273\377ccc\377\377\377\377\377\377"
11307 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11308 +  "\377\377\377\377\377\377\15\15\15\377\266\265\257\377\253\251\243\377"
11309 +  "\237\235\226\377\200}t\377\200}t\377vtk\377vtk\377]\\U\377HFA\377\0\0"
11310 +  "\0\364\0\0\0\13\0\0\0\0\0\0\0\377\265\312\345\377\177\242\271\377sss"
11311 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11312 +  "\377\377\377\377\377\377\377\377\377\377\377\377\15\15\15\377:::\377"
11313 +  "YXT\377\12\12\12\377HFA\377vtk\377HFA\377\6\10\11\377IIC\377\0\0\0\377"
11314 +  "\0\0\0\364\0\0\0\13\0\0\0\0\0\0\0\377\256\314\345\377}\240\266\377ss"
11315 +  "s\377\316\316\316\377\315\315\315\377\315\315\315\377\315\315\315\377"
11316 +  "\315\315\315\377\315\315\315\377\315\315\315\377\260\260\260\377\12\12"
11317 +  "\12\377\12\12\12\377\244\244\244\377\26\26\26\377BA<\377\14\14\14\377"
11318 +  "l\202\224\377\4\4\5\377\0\0\0\377\0\0\0=\0\0\0\13\0\0\0\0\0\0\0\377\260"
11319 +  "\321\344\377\203\241\266\377s[[\377\377\377\377\377\377\377\377\377\377"
11320 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11321 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11322 +  "\377\26\26\26\377\24\24\24\377\11\11\11\377\203\240\270\377Q\\d\377\0"
11323 +  "\0\0\377\0\0\0\36\0\0\0\13\0\0\0\0\0\0\0\377\252\316\343\377{\233\262"
11324 +  "\377z\216\232\377zzz\377sss\377sss\377sss\377sss\377sss\377kor\377oo"
11325 +  "o\377sss\377sss\377sss\377sss\377iii\377ow~\377\206\242\271\377:Q]\377"
11326 +  "\0\0\0\377\0\0\0\36\0\0\0\13\0\0\0\0\0\0\0\377\251\311\342\377t\224\257"
11327 +  "\377\201\236\266\377\203\240\270\377\206\242\271\377\202\237\267\377"
11328 +  "\177\235\266\377~\234\265\377\202\237\267\377y\230\262\377\206\242\271"
11329 +  "\377\205\241\270\377\205\241\270\377\207\243\272\377\202\237\267\377"
11330 +  "\214\247\275\377\203\240\270\377\212\245\273\3776JY\377\0\0\0\377\0\0"
11331 +  "\0\36\0\0\0\13\0\0\0\0\0\0\0\377\253\304\342\377r\224\255\377o\220\254"
11332 +  "\377q\222\256\377AJN\377BJQ\377R[c\377boy\377_lv\377\\iq\377Zfo\377X"
11333 +  "ck\377Wcj\377R[c\377;S`\3779BK\377x\227\263\377\244\271\313\3776HS\377"
11334 +  "\0\0\0\377\0\0\0\36\0\0\0\13\0\0\0\0\0\0\0\377\252\311\342\377p\221\252"
11335 +  "\377o\217\247\377JSY\377\227\223\214\377\337\335\332\377\343\341\336"
11336 +  "\377\353\352\350\377\353\352\350\377\352\351\347\377\337\335\332\377"
11337 +  "\317\316\311\377\311\306\300\377\233\226\216\377Vah\377Kez\377Ts\214"
11338 +  "\377\252\306\335\3774FN\377\0\0\0\377\0\0\0\36\0\0\0\13\0\0\0\0\0\0\0"
11339 +  "\377\252\311\341\377l\216\246\377l\214\244\377@GM\377\332\330\323\377"
11340 +  "\347\346\342\377ge^\377ROG\377ROG\377\331\327\324\377\307\305\277\377"
11341 +  "\300\274\265\377\270\263\253\377\317\316\311\377CLT\377Mi\177\377Oo\204"
11342 +  "\377\263\312\334\3771>I\377\0\0\0\377\0\0\0\36\0\0\0\13\0\0\0\0\0\0\0"
11343 +  "\377\250\310\341\377k\215\246\377r\217\244\377@GM\377\342\341\335\377"
11344 +  "\360\357\354\377ge^\377ROG\377ROG\377\315\312\306\377\302\277\271\377"
11345 +  "\300\274\265\377\312\306\300\377\334\332\327\377KU]\377Ni\177\377Oo\204"
11346 +  "\377\272\314\334\3771>I\377\0\0\0\377\0\0\0\36\0\0\0\13\0\0\0\0\0\0\0"
11347 +  "\377\244\304\336\377i\213\243\377p\212\241\3778>C\377\340\336\332\377"
11348 +  "\353\352\350\377QNF\377OLD\377OLD\377\307\304\276\377\300\274\265\377"
11349 +  "\313\310\302\377\341\340\334\377\351\350\346\377GQX\377Nhy\377Ml\200"
11350 +  "\377\243\303\333\3778\77C\377\0\0\0\377\0\0\0\36\0\0\0\13\0\0\0\0\0\0"
11351 +  "\0\377w\211\231\377n\211\236\377e\205\234\37738<\377\327\324\320\377"
11352 +  "\326\324\320\377NJC\377MIB\377MIB\377\300\274\265\377\321\316\311\377"
11353 +  "\346\345\342\377\355\354\352\377\346\345\342\377EOU\377Has\377Mfx\377"
11354 +  "\241\301\332\3777<@\377\0\0\0\377\0\0\0\36\0\0\0\13\0\0\0\0\0\0\0""5"
11355 +  "\14\15\17\377N^j\377[n|\377O[b\377\244\240\231\377\300\274\265\377\270"
11356 +  "\263\253\377\314\311\303\377\314\311\303\377\327\325\321\377\344\342"
11357 +  "\340\377\352\351\347\377\335\333\327\377\270\265\260\377>GM\377Jav\377"
11358 +  "J`p\377\233\303\330\3776<A\377\0\0\0\377\0\0\0\35\0\0\0\13\0\0\0\0\0"
11359 +  "\0\0\4\0\0\0""9\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
11360 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
11361 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377(2>\377\0\0\0\377\0\0\0]\0\0\0"
11362 +  "\30\0\0\0\11\0\0\0\0\0\0\0\1\0\0\0\4\0\0\0\16\0\0\0\30\0\0\0\35\0\0\0"
11363 +  "\35\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0"
11364 +  "\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\35\0\0\0\30"
11365 +  "\0\0\0\15\0\0\0\4"};
11366 +
11367 +
11368 +/* GdkPixbuf RGBA C-Source image dump */
11369 +
11370 +static const guint8 stock_vim_shell[] = 
11371 +{ ""
11372 +  /* Pixbuf magic (0x47646b50) */
11373 +  "GdkP"
11374 +  /* length: header (24) + pixel_data (9216) */
11375 +  "\0\0$\30"
11376 +  /* pixdata_type (0x1010002) */
11377 +  "\1\1\0\2"
11378 +  /* rowstride (192) */
11379 +  "\0\0\0\300"
11380 +  /* width (48) */
11381 +  "\0\0\0""0"
11382 +  /* height (48) */
11383 +  "\0\0\0""0"
11384 +  /* pixel_data: */
11385 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11386 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11387 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11388 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11389 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11390 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11391 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11392 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11393 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11394 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11395 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11396 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11397 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11398 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11399 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11400 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11401 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11402 +  "\0\0\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\7\0\0\0\11\0\0\0\12\0\0\0\13\0\0\0"
11403 +  "\13\0\0\0\13\0\0\0\13\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0"
11404 +  "\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14"
11405 +  "\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0"
11406 +  "\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\13\0"
11407 +  "\0\0\13\0\0\0\13\0\0\0\12\0\0\0\11\0\0\0\7\0\0\0\4\0\0\0\2\0\0\0\1\0"
11408 +  "\0\0\0\0\0\0\0\0\0\0\2\0\0\0""7\2\2\2\377\1\1\1\377\0\0\0\377\0\0\0\377"
11409 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11410 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11411 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11412 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11413 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11414 +  "\0\0\0\377\0\0\0K\0\0\0\14\0\0\0\7\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\4\0"
11415 +  "\0\0\377\340\336\334\332\352\351\346\377\357\356\354\377\360\357\355"
11416 +  "\377\361\360\356\377\362\361\357\377\360\360\355\377\361\360\355\377"
11417 +  "\362\362\357\377\362\362\357\377\362\362\357\377\362\362\357\377\362"
11418 +  "\362\357\377\362\362\357\377\362\362\357\377\361\361\356\377\356\356"
11419 +  "\353\377\355\354\350\377\354\353\350\377\353\352\347\377\352\351\346"
11420 +  "\377\351\350\344\377\350\347\344\377\346\345\341\377\346\344\340\377"
11421 +  "\341\337\333\377\331\327\323\377\326\324\316\377\323\320\313\377\320"
11422 +  "\315\307\377\314\311\304\377\311\306\301\377\306\303\276\377\302\300"
11423 +  "\273\377\277\275\270\377\272\270\261\377\270\265\256\377\266\262\254"
11424 +  "\377\260\254\246\377\215\211\202\340\0\0\0\377\0\0\0\32\0\0\0\16\0\0"
11425 +  "\0\6\0\0\0\2\0\0\0\0\0\0\0\7\0\0\0\377\357\356\355\377\325\322\312\377"
11426 +  "\327\324\314\377\331\326\316\377\332\327\317\377\333\330\321\377\334"
11427 +  "\332\322\377\335\333\323\377\336\333\324\377\336\334\324\377\336\334"
11428 +  "\324\377\336\333\323\377\336\334\324\377\336\334\324\377\336\333\324"
11429 +  "\377\336\333\323\377\335\332\323\377\334\332\322\377\333\330\321\377"
11430 +  "\332\326\316\377\331\325\315\377\327\323\313\377\324\321\311\377\322"
11431 +  "\316\306\377\320\314\304\377\316\312\302\377\312\306\276\377\307\303"
11432 +  "\273\377\303\277\266\377\300\273\263\377\273\267\257\377\267\263\253"
11433 +  "\377\264\257\247\377\260\254\243\377\255\250\240\377\246\243\231\377"
11434 +  "\244\237\227\377\241\234\224\377\236\231\220\377\202~w\377\0\0\0\377"
11435 +  "\0\0\0)\0\0\0\26\0\0\0\12\0\0\0\3\0\0\0\0\0\0\0\11\0\0\0\377\357\356"
11436 +  "\354\377\326\324\313\377\330\326\315\377\332\327\317\377\333\330\320"
11437 +  "\377\335\332\322\377\336\333\323\377\336\334\324\377\337\335\325\377"
11438 +  "\337\335\326\377\337\335\326\377\337\335\326\377\340\335\326\377\337"
11439 +  "\335\325\377\337\333\324\377\336\332\323\377\334\331\322\377\333\330"
11440 +  "\320\377\332\327\320\377\331\326\316\377\327\323\314\377\325\321\311"
11441 +  "\377\323\317\310\377\321\315\305\377\316\313\303\377\315\310\300\377"
11442 +  "\311\305\275\377\305\302\272\377\301\275\265\377\276\271\261\377\272"
11443 +  "\266\255\377\266\262\252\377\262\256\245\377\256\252\241\377\251\245"
11444 +  "\234\377\245\241\230\377\241\234\224\377\236\232\222\377\233\227\216"
11445 +  "\377{xq\377\0\0\0\377\0\0\0""7\0\0\0\37\0\0\0\15\0\0\0\5\0\0\0\0\0\0"
11446 +  "\0\12\0\0\0\377\360\357\355\377\327\324\315\377\331\326\316\377\310\306"
11447 +  "\276\377\270\266\257\377\272\267\260\377\273\270\261\377\274\271\262"
11448 +  "\377\274\271\263\377\274\271\263\377\274\271\262\377\273\270\262\377"
11449 +  "\273\270\261\377\273\267\261\377\271\266\260\377\271\265\256\377\267"
11450 +  "\264\255\377\266\263\254\377\265\262\252\377\263\260\250\377\261\257"
11451 +  "\247\377\257\254\244\377\256\252\243\377\254\250\241\377\251\246\237"
11452 +  "\377\247\243\234\377\244\240\230\377\241\235\225\377\235\231\221\377"
11453 +  "\230\225\216\377\224\221\212\377\221\216\206\377\216\213\202\377\212"
11454 +  "\207\200\377\206\202{\377\206\202{\377\237\232\221\377\233\230\216\377"
11455 +  "\230\224\213\377yvn\377\0\0\0\377\0\0\0A\0\0\0%\0\0\0\20\0\0\0\5\0\0"
11456 +  "\0\0\0\0\0\14\0\0\0\377\360\360\355\377\331\326\316\377\332\327\317\377"
11457 +  "\267\265\255\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
11458 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11459 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11460 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11461 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\254\250"
11462 +  "\236\377\230\225\213\377\225\221\210\377wtl\377\0\0\0\377\0\0\0G\0\0"
11463 +  "\0(\0\0\0\22\0\0\0\6\0\0\0\0\0\0\0\14\0\0\0\377\361\360\356\377\331\326"
11464 +  "\316\377\332\327\317\377\267\264\255\377\0\0\0\377>C>\377BGB\377EIE\377"
11465 +  "HMH\377JNJ\377LRL\377PTP\377QUQ\377RXR\377RXR\377SYS\377SXS\377SWS\377"
11466 +  "QWQ\377QWQ\377NTN\377MRM\377LQL\377KQK\377JNJ\377HKH\377EIE\377DHD\377"
11467 +  "\77D\77\377<A<\3777;7\377262\377/2/\377(+(\377$($\377\0\0\0\377\264\257"
11468 +  "\245\377\226\221\210\377\222\215\204\377tqi\377\0\0\0\377\0\0\0I\0\0"
11469 +  "\0*\0\0\0\23\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\360\360\355\377\327\324"
11470 +  "\315\377\331\325\316\377\265\262\253\377\0\0\0\377595\377\235\236\235"
11471 +  "\377\236\240\236\377\237\241\237\377\241\243\241\377\242\244\242\377"
11472 +  "\243\245\243\377\241\243\241\377\231\234\231\377\222\225\222\377\213"
11473 +  "\216\213\377\202\204\202\377y}y\377ptp\377ili\377^c^\377TYT\377KOK\377"
11474 +  "AFA\377@D@\377\77C\77\377=A=\377;>;\3776;6\377383\377/2/\377+/+\377$"
11475 +  "($\377!%!\377\35\40\35\377\0\0\0\377\261\254\242\377\222\215\204\377"
11476 +  "\216\212\201\377qng\377\0\0\0\377\0\0\0K\0\0\0+\0\0\0\24\0\0\0\7\0\0"
11477 +  "\0\0\0\0\0\14\0\0\0\377\355\354\351\377\325\321\312\377\327\323\314\377"
11478 +  "\263\260\251\377\0\0\0\377BHB\377\244\246\244\377\246\251\246\377\247"
11479 +  "\252\247\377\252\255\252\377\254\256\254\377\245\250\245\377\240\244"
11480 +  "\240\377\231\235\231\377\223\227\223\377\214\220\214\377\205\212\205"
11481 +  "\377|\201|\377u{u\377lpl\377did\377[_[\377X]X\377U[U\377SZS\377QUQ\377"
11482 +  "QUQ\377LQL\377JPJ\377CHC\377>C>\3777<7\377020\377+/+\377&)&\377\0\0\0"
11483 +  "\377\257\251\240\377\216\211\200\377\212\206~\377okd\377\0\0\0\377\0"
11484 +  "\0\0K\0\0\0+\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\354\353\351"
11485 +  "\377\323\317\307\377\323\321\311\377\261\256\246\377\0\0\0\377;>;\377"
11486 +  "\237\242\237\377\242\244\242\377\243\245\243\377\240\242\240\377\231"
11487 +  "\234\231\377\223\227\223\377\216\220\216\377\207\213\207\377\202\206"
11488 +  "\202\377z}z\377rvr\377ini\377afa\377Y_Y\377RVR\377QUQ\377NRN\377LRL\377"
11489 +  "KPK\377INI\377FKF\377DHD\377AFA\377:>:\3776;6\377040\377*.*\377%'%\377"
11490 +  "\37\"\37\377\0\0\0\377\254\247\234\377\212\205}\377\206\202z\377kha\377"
11491 +  "\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377"
11492 +  "\354\352\350\377\320\314\304\377\321\315\305\377\256\253\244\377\0\0"
11493 +  "\0\377JMJ\377\250\252\250\377\247\252\247\377\242\244\242\377\235\240"
11494 +  "\235\377\232\234\232\377\224\230\224\377\221\226\221\377\216\222\216"
11495 +  "\377\210\215\210\377\203\207\203\377{\200{\377sys\377mrm\377jpj\377i"
11496 +  "ni\377ele\377eje\377chc\377^d^\377\\c\\\377[`[\377W]W\377RYR\377KNK\377"
11497 +  "EKE\377=C=\3779<9\377/4/\377(*(\377\0\0\0\377\251\244\231\377\206\202"
11498 +  "y\377\203\177v\377hd]\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0"
11499 +  "\0\0\0\0\0\0\14\0\0\0\377\352\351\346\377\315\311\300\377\316\312\302"
11500 +  "\377\254\251\241\377\0\0\0\377@D@\377\232\234\232\377\224\227\224\377"
11501 +  "\217\222\217\377\212\215\212\377\206\212\206\377\201\205\201\377~\202"
11502 +  "~\377y~y\377uzu\377nsn\377gmg\377djd\377chc\377`e`\377^d^\377\\b\\\377"
11503 +  "Z_Z\377W]W\377VZV\377RXR\377PVP\377MRM\377GLG\377CGC\377:\77:\3775:5"
11504 +  "\377-2-\377(+(\377!%!\377\0\0\0\377\246\241\226\377\202~u\377\177|s\377"
11505 +  "eb[\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0"
11506 +  "\0\377\350\347\345\377\311\305\275\377\312\307\277\377\251\245\236\377"
11507 +  "\0\0\0\377QTQ\377\226\231\226\377\222\225\222\377\215\222\215\377\213"
11508 +  "\217\213\377\210\215\210\377\206\213\206\377\205\213\205\377\202\211"
11509 +  "\202\377\202\211\202\377\200\206\200\377}\204}\377z\201z\377y\200y\377"
11510 +  "x~x\377v|v\377tzt\377pup\377msm\377jqj\377hmh\377djd\377`f`\377Y_Y\377"
11511 +  "TYT\377INI\377CJC\377:>:\377262\377).)\377\0\0\0\377\243\236\223\377"
11512 +  "~zq\377{xo\377b_W\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0"
11513 +  "\0\0\0\0\14\0\0\0\377\346\344\342\377\304\300\267\377\307\303\273\377"
11514 +  "\245\241\232\377\0\0\0\377EJE\377\201\205\201\377}\200}\377z~z\377uz"
11515 +  "u\377rwr\377pup\377ntn\377ntn\377pvp\377pvp\377qwq\377qwq\377ntn\377"
11516 +  "kqk\377ipi\377ioi\377dkd\377aga\377^c^\377[a[\377X^X\377TYT\377MSM\377"
11517 +  "FJF\377@D@\3777<7\377/4/\377*-*\377\"&\"\377\0\0\0\377\240\232\217\377"
11518 +  "yvm\377xtk\377_\\U\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0"
11519 +  "\0\0\0\0\14\0\0\0\377\336\335\331\377\300\275\264\377\303\277\267\377"
11520 +  "\241\235\225\377\0\0\0\377WZW\377\201\205\201\377|\202|\377|\201|\377"
11521 +  "{\200{\377z\177z\377x~x\377|\203|\377\202\210\202\377\205\213\205\377"
11522 +  "\207\215\207\377\210\216\210\377\206\214\206\377\205\214\205\377\204"
11523 +  "\212\204\377\201\206\201\377|\203|\377y\200y\377w|w\377rxr\377ovo\377"
11524 +  "lql\377djd\377`f`\377W\\W\377NUN\377EIE\377>C>\377474\377+/+\377\0\0"
11525 +  "\0\377\234\226\213\377uri\377spg\377\\YQ\377\0\0\0\377\0\0\0K\0\0\0,"
11526 +  "\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\334\332\326\377\275\272"
11527 +  "\260\377\277\272\261\377\235\231\221\377\0\0\0\377GMG\377jnj\377fif\377"
11528 +  "cgc\377bfb\377bhb\377gmg\377lrl\377rxr\377u{u\377w}w\377x~x\377w~w\377"
11529 +  "w}w\377u|u\377sxs\377qvq\377lrl\377ioi\377eke\377bgb\377^d^\377X]X\377"
11530 +  "SWS\377IPI\377CHC\377:>:\377373\377+-+\377\"&\"\377\0\0\0\377\232\224"
11531 +  "\211\377rne\377plc\377YUN\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0"
11532 +  "\7\0\0\0\0\0\0\0\14\0\0\0\377\330\327\323\377\270\264\253\377\272\266"
11533 +  "\255\377\231\225\215\377\0\0\0\377W\\W\377ioi\377flf\377fmf\377nsn\377"
11534 +  "sys\377z\201z\377\200\206\200\377\204\212\204\377\211\217\211\377\213"
11535 +  "\221\213\377\214\223\214\377\214\222\214\377\213\221\213\377\211\220"
11536 +  "\211\377\207\215\207\377\204\212\204\377\201\207\201\377}\205}\377y\200"
11537 +  "y\377v{v\377qwq\377jqj\377bhb\377[`[\377PTP\377HNH\377;\77;\377272\377"
11538 +  "+/+\377\0\0\0\377\227\221\205\377nja\377mg_\377VRK\377\0\0\0\377\0\0"
11539 +  "\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\326\325\321\377"
11540 +  "\264\260\247\377\265\261\250\377\224\221\211\377\0\0\0\377HMH\377OTO"
11541 +  "\377QWQ\377W\\W\377^d^\377bhb\377ioi\377ouo\377sys\377v}v\377y\177y\377"
11542 +  "{\202{\377{\201{\377z\200z\377y\200y\377w~w\377szs\377qwq\377ntn\377"
11543 +  "jqj\377flf\377`e`\377Z`Z\377SYS\377KQK\377BGB\377;\77;\377161\377*,*"
11544 +  "\377#%#\377\0\0\0\377\223\216\203\377jf]\377ie\\\377SPI\377\0\0\0\377"
11545 +  "\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\323\322\317"
11546 +  "\377\260\253\242\377\261\255\243\377\221\216\205\377\0\0\0\377X^X\377"
11547 +  "[b[\377bfb\377fmf\377lrl\377rxr\377z\200z\377\200\205\200\377\205\213"
11548 +  "\205\377\207\216\207\377\212\221\212\377\214\222\214\377\215\222\215"
11549 +  "\377\213\222\213\377\212\221\212\377\210\217\210\377\207\214\207\377"
11550 +  "\203\212\203\377\200\207\200\377|\204|\377w|w\377qwq\377lpl\377cic\377"
11551 +  "Z_Z\377PUP\377GLG\377=B=\377171\377,/,\377\0\0\0\377\221\213\200\377"
11552 +  "gcZ\377ebY\377PNF\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0"
11553 +  "\0\0\0\0\14\0\0\0\377\321\317\313\377\253\246\235\377\255\250\236\377"
11554 +  "\215\211\201\377\0\0\0\377HMH\377KOK\377\331\333\331\377\241\243\241"
11555 +  "\377bgb\377`f`\377flf\377kqk\377pwp\377tzt\377w}w\377w~w\377y\177y\377"
11556 +  "x~x\377w}w\377u{u\377sys\377pwp\377nsn\377joj\377did\377_e_\377Y_Y\377"
11557 +  "RWR\377HOH\377AEA\3779>9\377373\377)-)\377#'#\377\0\0\0\377\216\211|"
11558 +  "\377d`W\377b^U\377NKD\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0"
11559 +  "\0\0\0\0\0\0\14\0\0\0\377\315\313\307\377\246\241\230\377\250\243\231"
11560 +  "\377\210\205}\377\0\0\0\377TZT\377Y^Y\377\377\377\377\377\377\377\377"
11561 +  "\377\360\361\360\377\277\301\277\377\206\213\206\377z\201z\377~\205~"
11562 +  "\377\203\211\203\377\204\213\204\377\206\215\206\377\207\216\207\377"
11563 +  "\207\215\207\377\205\214\205\377\205\214\205\377\203\211\203\377\201"
11564 +  "\207\201\377}\204}\377x\200x\377szs\377msm\377gog\377_f_\377X]X\377M"
11565 +  "TM\377DJD\377<A<\377272\377+/+\377\0\0\0\377\214\207z\377a]T\377_[R\377"
11566 +  "KHA\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0"
11567 +  "\0\377\312\311\304\377\240\233\222\377\242\236\224\377\204\200x\377\0"
11568 +  "\0\0\377DID\377IOI\377mpm\377\247\252\247\377\327\331\327\377\374\374"
11569 +  "\374\377\373\373\373\377\314\316\314\377\226\233\226\377lrl\377ouo\377"
11570 +  "pup\377pwp\377pwp\377pvp\377ouo\377nsn\377jqj\377fmf\377cic\377_c_\377"
11571 +  "X_X\377TZT\377MSM\377EJE\377=A=\3776;6\377040\377(+(\377\"%\"\377\0\0"
11572 +  "\0\377\212\204x\377^ZQ\377[XO\377HF\77\377\0\0\0\377\0\0\0K\0\0\0,\0"
11573 +  "\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\305\303\276\377\233\226\215"
11574 +  "\377\234\231\216\377\200|s\377\0\0\0\377QWQ\377UZU\377Z^Z\377]d]\377"
11575 +  "bhb\377{\201{\377\312\314\312\377\377\377\377\377\377\377\377\377w}w"
11576 +  "\377y~y\377y\201y\377{\202{\377z\202z\377z\202z\377y\200y\377x}x\377"
11577 +  "szs\377qwq\377mtm\377ipi\377did\377\\b\\\377X\\X\377PUP\377EKE\377\77"
11578 +  "D\77\377:=:\377151\377*.*\377\0\0\0\377\207\202u\377[WN\377YUL\377FC"
11579 +  "<\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0"
11580 +  "\377\274\270\262\377\226\222\210\377\230\224\212\377{xo\377\0\0\0\377"
11581 +  "BFB\377DJD\377dgd\377\223\226\223\377\272\275\272\377\367\367\367\377"
11582 +  "\373\373\373\377\304\306\304\377\177\204\177\377`e`\377aha\377bhb\377"
11583 +  "chc\377bhb\377bhb\377afa\377_d_\377[a[\377Y]Y\377TYT\377RWR\377MQM\377"
11584 +  "HNH\377BHB\377>C>\3777;7\377262\377+/+\377$'$\377\40\"\40\377\0\0\0\377"
11585 +  "\205\177r\377WTK\377URI\377DA:\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0"
11586 +  "\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\267\263\256\377\222\216\204\377\223"
11587 +  "\216\204\377vsj\377\0\0\0\377LSL\377PTP\377\377\377\377\377\377\377\377"
11588 +  "\377\351\351\351\377\244\250\244\377pvp\377eje\377fnf\377hoh\377jqj\377"
11589 +  "jpj\377ipi\377jpj\377hnh\377glg\377flf\377did\377_e_\377]c]\377Y^Y\377"
11590 +  "S[S\377MRM\377HLH\377CJC\377=B=\3777>7\377262\377.0.\377&*&\377\0\0\0"
11591 +  "\377\203}o\377TQH\377ROF\377B>7\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24"
11592 +  "\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\261\256\251\377\215\210\177\377\216"
11593 +  "\211\177\377sof\377\0\0\0\377:@:\377>C>\377\320\321\320\377\200\204\200"
11594 +  "\377KOK\377JOJ\377LQL\377NSN\377PTP\377QVQ\377RWR\377\322\324\322\377"
11595 +  "\365\365\365\377\372\373\372\377\372\372\372\377\372\372\372\377\307"
11596 +  "\311\307\377w{w\377FLF\377BHB\377@D@\377>B>\3779>9\377595\377272\377"
11597 +  "-2-\377).)\377&)&\377\"%\"\377\34\40\34\377\0\0\0\377\201|n\377QMD\377"
11598 +  "OLC\377\77<5\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0"
11599 +  "\0\14\0\0\0\377\253\250\242\377\207\203y\377\211\205z\377okc\377\0\0"
11600 +  "\0\377CIC\377EKE\377JPJ\377JPJ\377LSL\377PUP\377TYT\377T[T\377X]X\377"
11601 +  "X^X\377W]W\377X^X\377X]X\377U\\U\377RXR\377QWQ\377NSN\377MRM\377JPJ\377"
11602 +  "HKH\377BJB\377AEA\377=A=\3779=9\3776<6\377/5/\377.1.\377+.+\377&,&\377"
11603 +  "!$!\377\0\0\0\377\177yl\377MJA\377LI@\377=:3\377\0\0\0\377\0\0\0K\0\0"
11604 +  "\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\251\246\240\377\202~"
11605 +  "u\377\204\177u\377jf^\377\0\0\0\377585\3774:4\3776<6\3778=8\3779>9\377"
11606 +  "=A=\377>C>\377\77C\77\377>B>\377@D@\377@E@\377@C@\377>C>\377<A<\377="
11607 +  "B=\377:\77:\3779=9\3775:5\377393\377373\377030\377,0,\377*-*\377)+)\377"
11608 +  "'+'\377$'$\377\40$\40\377\35\"\35\377\33\36\33\377\30\34\30\377\0\0\0"
11609 +  "\377}xh\377KH\77\377KH>\377<:2\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0"
11610 +  "\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\244\241\232\377}yo\377\177{p\377fc"
11611 +  "Z\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
11612 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
11613 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11614 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11615 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377|wg\377KH>\377KH>\377"
11616 +  "<:2\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0"
11617 +  "\0\377\237\234\226\377ytj\377zuk\377\224\217\203\377\256\251\233\377"
11618 +  "\260\251\234\377\257\253\235\377\261\253\235\377\261\253\235\377\261"
11619 +  "\253\236\377\260\253\235\377\257\251\233\377\256\250\232\377\255\250"
11620 +  "\231\377\253\245\230\377\252\243\225\377\250\242\224\377\247\240\222"
11621 +  "\377\245\236\220\377\242\234\216\377\237\231\212\377\235\227\210\377"
11622 +  "\233\226\206\377\231\223\204\377\230\222\203\377\225\217\200\377\223"
11623 +  "\214}\377\221\211{\377\216\211w\377\215\206u\377\214\206t\377\212\204"
11624 +  "r\377\210\202q\377\207\201o\377\206\200n\377\205\177m\377vqa\377KH>\377"
11625 +  "KH>\377<:2\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0"
11626 +  "\14\0\0\0\377\235\232\224\377tpe\377uqg\377uqg\377uqf\377vrg\377vrh\377"
11627 +  "uqg\377upf\377upf\377tpe\377sod\377rnc\377pla\377mi_\377mh^\377jf\\\377"
11628 +  "hdY\377faW\377c_U\377a]S\377_ZQ\377]ZO\377[XM\377YVK\377XTI\377WSH\377"
11629 +  "URG\377TPE\377RND\377PMC\377PLB\377NKA\377MJ@\377MI\77\377LI\77\377K"
11630 +  "H>\377KH>\377KH>\377<92\377\0\0\0\377\0\0\0K\0\0\0,\0\0\0\24\0\0\0\7"
11631 +  "\0\0\0\0\0\0\0\14\0\0\0\377\225\223\214\377oka\377qmc\377qmc\377qlb\377"
11632 +  "rmc\377rnc\377rmb\377rlb\377qlb\377pka\377ok`\377nj_\377kg\\\377jeZ\377"
11633 +  "idY\377fbW\377c`U\377b^T\377`\\R\377^ZO\377\\XM\377ZWL\377YUJ\377WSI"
11634 +  "\377VSH\377URG\377TPE\377SOD\377QNC\377PLB\377OKA\377]YP\377okc\377n"
11635 +  "kc\377ROF\377KH>\377KH>\377KH>\377=;3\377\0\0\0\377\0\0\0K\0\0\0,\0\0"
11636 +  "\0\24\0\0\0\7\0\0\0\0\0\0\0\14\0\0\0\377\217\214\205\375kg]\377lh^\377"
11637 +  "mi_\377mh^\377mi_\377mi^\377mi^\377ni_\377lh]\377kg\\\377jf[\377ieZ\377"
11638 +  "gcX\377eaV\377d`U\377a]S\377`\\Q\377^ZO\377]YN\377\\XL\377ZVJ\377YUJ"
11639 +  "\377XTI\377VSH\377UQG\377TPE\377SOE\377QNC\377PMC\377OLB\377OK@\377w"
11640 +  "tl\377MI\77\377LI\77\377A>6\377KH>\377KH>\377KH>\377<:2\377\0\0\0\377"
11641 +  "\0\0\0J\0\0\0+\0\0\0\24\0\0\0\7\0\0\0\0\0\0\0\13\0\0\0\377\215\213\202"
11642 +  "\374heZ\377if[\377jf\\\377kf\\\377jf\\\377jf\\\377kf\\\377jf\\\377if"
11643 +  "[\377idZ\377hcZ\377gbX\377eaV\377c_U\377b^T\377`\\Q\377^ZO\377]XN\377"
11644 +  "\\XN\377ZVL\377YUJ\377WTI\377WSH\377URG\377TPF\377SOE\377RND\377PMC\377"
11645 +  "OLB\377OK@\377NJ@\377MI\77\377@<4\377>;3\377KH>\377KH>\377KH>\377KH>"
11646 +  "\377EB:\376\0\0\0\377\0\0\0G\0\0\0)\0\0\0\23\0\0\0\7\0\0\0\0\0\0\0\12"
11647 +  "\0\0\0\377omf\343NLC\377PMF\377QNF\377QNF\377QNF\377QME\377QNF\377QN"
11648 +  "F\377QME\377QME\377PLD\377OLC\377NJB\377LIA\377KI@\377JG>\377HE=\377"
11649 +  "GC<\377GC<\377EA:\377C@8\377B\77""8\377B>7\377A>7\377@=5\377\77<4\377"
11650 +  ">;3\377=:2\377<92\377<91\377;81\377:80\377:70\377:70\377970\377970\377"
11651 +  "970\377:80\377\77<4\364\0\0\0\377\0\0\0A\0\0\0%\0\0\0\21\0\0\0\6\0\0"
11652 +  "\0\0\0\0\0\11\0\0\0Y\0\0\0\377\0\0\0\377\0\0\0\377utr\366srl\377xvp\377"
11653 +  "xwq\377}{v\377\201\177z\377\205\203\177\377\211\207\202\377\213\210\204"
11654 +  "\377\217\216\212\377\221\217\213\377\222\220\214\377\220\216\213\377"
11655 +  "\217\216\211\377\214\212\207\377\213\210\204\377\210\206\202\377\207"
11656 +  "\204\201\377\203\201}\377\201\177z\377\177}x\377}{w\377yws\377wup\377"
11657 +  "srl\377poi\377nlg\377ljf\377lid\377ljd\377lke\377mjd\377nkd\377GD>\372"
11658 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\206\0\0\0""7\0\0\0\36\0\0\0\15\0"
11659 +  "\0\0\5\0\0\0\0\0\0\0\6\0\0\0\20\0\0\0!\0\0\0""9\0\0\0\377fec\356LIC\374"
11660 +  "LIB\377OMF\377USL\377YWQ\377^\\V\377db\\\377iga\377nkg\377qok\377qoj"
11661 +  "\377omg\377nke\377jhc\377igb\377ge`\377eb]\377da\\\377`^X\377\\[T\377"
11662 +  "YXQ\377VTM\377RPI\377MKD\377IG@\377FD<\377FC<\377DB:\377CA8\377DA8\377"
11663 +  "D@8\377C@7\377.+%\362\0\0\0\377\0\0\0i\0\0\0U\0\0\0\77\0\0\0(\0\0\0\25"
11664 +  "\0\0\0\11\0\0\0\3\0\0\0\0\0\0\0\4\0\0\0\12\0\0\0\25\0\0\0&\0\0\0n\0\0"
11665 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
11666 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11667 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11668 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11669 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\214"
11670 +  "\0\0\0O\0\0\0<\0\0\0)\0\0\0\31\0\0\0\15\0\0\0\5\0\0\0\2\0\0\0\0\0\0\0"
11671 +  "\2\0\0\0\5\0\0\0\14\0\0\0\25\0\0\0#\0\0\0""2\0\0\0B\0\0\0N\0\0\0V\0\0"
11672 +  "\0Z\0\0\0\\\0\0\0\\\0\0\0\\\0\0\0\\\0\0\0\\\0\0\0\\\0\0\0\\\0\0\0]\0"
11673 +  "\0\0]\0\0\0]\0\0\0]\0\0\0]\0\0\0]\0\0\0]\0\0\0]\0\0\0]\0\0\0]\0\0\0]"
11674 +  "\0\0\0]\0\0\0]\0\0\0]\0\0\0\\\0\0\0\\\0\0\0\\\0\0\0\\\0\0\0\\\0\0\0["
11675 +  "\0\0\0W\0\0\0O\0\0\0C\0\0\0""4\0\0\0$\0\0\0\27\0\0\0\15\0\0\0\6\0\0\0"
11676 +  "\2\0\0\0\1\0\0\0\0\0\0\0\1\0\0\0\2\0\0\0\5\0\0\0\12\0\0\0\22\0\0\0\34"
11677 +  "\0\0\0&\0\0\0/\0\0\0""5\0\0\0""9\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0"
11678 +  "\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:"
11679 +  "\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0:\0\0\0"
11680 +  ":\0\0\0:\0\0\0""9\0\0\0""5\0\0\0""0\0\0\0(\0\0\0\35\0\0\0\23\0\0\0\12"
11681 +  "\0\0\0\5\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0"
11682 +  "\0\4\0\0\0\7\0\0\0\14\0\0\0\22\0\0\0\27\0\0\0\32\0\0\0\34\0\0\0\35\0"
11683 +  "\0\0\35\0\0\0\35\0\0\0\35\0\0\0\35\0\0\0\35\0\0\0\35\0\0\0\36\0\0\0\36"
11684 +  "\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0"
11685 +  "\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\36\0\0\0\35\0\0\0\35\0\0\0\35\0"
11686 +  "\0\0\35\0\0\0\35\0\0\0\35\0\0\0\33\0\0\0\27\0\0\0\22\0\0\0\15\0\0\0\10"
11687 +  "\0\0\0\4\0\0\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11688 +  "\0\0\0\0\0\1\0\0\0\2\0\0\0\4\0\0\0\7\0\0\0\11\0\0\0\12\0\0\0\13\0\0\0"
11689 +  "\13\0\0\0\13\0\0\0\13\0\0\0\13\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0"
11690 +  "\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14"
11691 +  "\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0\14\0\0\0"
11692 +  "\13\0\0\0\13\0\0\0\13\0\0\0\13\0\0\0\12\0\0\0\11\0\0\0\7\0\0\0\4\0\0"
11693 +  "\0\2\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11694 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\2\0\0\0\2\0\0\0\2\0\0"
11695 +  "\0\2\0\0\0\2\0\0\0\2\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3"
11696 +  "\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0"
11697 +  "\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\3\0\0\0\2\0\0\0\2"
11698 +  "\0\0\0\2\0\0\0\2\0\0\0\2\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11699 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11700 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11701 +  "\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1"
11702 +  "\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0"
11703 +  "\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11704 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
11705 +
11706 +
11707 +/* GdkPixbuf RGBA C-Source image dump */
11708 +
11709 +static const guint8 stock_vim_window_maximize[] = 
11710 +{ ""
11711 +  /* Pixbuf magic (0x47646b50) */
11712 +  "GdkP"
11713 +  /* length: header (24) + pixel_data (2304) */
11714 +  "\0\0\11\30"
11715 +  /* pixdata_type (0x1010002) */
11716 +  "\1\1\0\2"
11717 +  /* rowstride (96) */
11718 +  "\0\0\0`"
11719 +  /* width (24) */
11720 +  "\0\0\0\30"
11721 +  /* height (24) */
11722 +  "\0\0\0\30"
11723 +  /* pixel_data: */
11724 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11725 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11726 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11727 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11728 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11729 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11730 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
11731 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
11732 +  "\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11733 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377"
11734 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\0\0\0\377"
11735 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\351"
11736 +  "\351\351\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11737 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377"
11738 +  "\354\354\354\377\354\354\354\377\354\354\354\377\0\0\0\377\377\266Z\377"
11739 +  "\0\0\0\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270"
11740 +  "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11741 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354"
11742 +  "\354\377\354\354\354\377\0\0\0\377\377p8\377\377\302a\377\377\265Y\377"
11743 +  "\0\0\0\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377"
11744 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11745 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\0\0\0"
11746 +  "\377\377\\.\377\377\275^\377\377\306b\377\377\310c\377\377\277_\377\0"
11747 +  "\0\0\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
11748 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11749 +  "\0\0\0\0\377\377\377\377\377\354\354\354\377\0\0\0\377\244@\40\377\244"
11750 +  "@\40\377\377\310c\377\226\\-\377\223W+\377\0\0\0\377\354\354\354\377"
11751 +  "\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11752 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377"
11753 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\0\0\0\377\377\306"
11754 +  "c\377\0\0\0\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270"
11755 +  "\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11756 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354"
11757 +  "\354\354\377\354\354\354\377\354\354\354\377\0\0\0\377\0\0\0\377\0\0"
11758 +  "\0\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377"
11759 +  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\223"
11760 +  "W+\0\377\277_\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354"
11761 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11762 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270"
11763 +  "\270\270\377\0\0\0\377\0\0\0\0\377\\.\0\244@\40\0\0\0\0\0\0\0\0\0\0\0"
11764 +  "\0\0\0\0\0\0\226\\-\0\377\310c\0\377\265Y\0\0\0\0\0\0\0\0\377\377\377"
11765 +  "\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
11766 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11767 +  "\354\354\354\377\270\270\270\377\0\0\0\377\377p8\0\377\275^\0\244@\40"
11768 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\306c\0\377\310c\0\377\306b\0\377\302a"
11769 +  "\0\377\266Z\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377"
11770 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
11771 +  "\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377"
11772 +  "\377\302a\0\377\306b\0\377\310c\0\377\306c\0\0\0\0\0\0\0\0\0\0\0\0\0"
11773 +  "\244@\40\0\377\275^\0\377p8\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354"
11774 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
11775 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11776 +  "\270\270\270\377\0\0\0\377\377\265Y\0\377\310c\0\226\\-\0\0\0\0\0\0\0"
11777 +  "\0\0\0\0\0\0\0\0\0\0\244@\40\0\377\\.\0\0\0\0\0\0\0\0\0\0\0\0\377\377"
11778 +  "\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377\0\0\0\377"
11779 +  "\0\0\0\377\0\0\0\377\354\354\354\377\354\354\354\377\354\354\354\377"
11780 +  "\270\270\270\377\0\0\0\377\0\0\0\0\377\277_\0\223W+\0\0\0\0\0\0\0\0\0"
11781 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377"
11782 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\0\0\0\377\377\306"
11783 +  "c\377\0\0\0\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270"
11784 +  "\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11785 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354"
11786 +  "\354\354\377\0\0\0\377\223W+\377\226\\-\377\377\310c\377\244@\40\377"
11787 +  "\244@\40\377\0\0\0\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0"
11788 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11789 +  "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\0\0\0\377"
11790 +  "\377\277_\377\377\310c\377\377\306b\377\377\275^\377\377\\.\377\0\0\0"
11791 +  "\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
11792 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11793 +  "\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\0\0\0\377\377"
11794 +  "\265Y\377\377\302a\377\377p8\377\0\0\0\377\354\354\354\377\354\354\354"
11795 +  "\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11796 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
11797 +  "\377\377\354\354\354\377\354\354\354\377\354\354\354\377\0\0\0\377\377"
11798 +  "\266Z\377\0\0\0\377\354\354\354\377\354\354\354\377\354\354\354\377\270"
11799 +  "\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11800 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\344\344\344\377"
11801 +  "\270\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377\0\0"
11802 +  "\0\377\270\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377"
11803 +  "\205\205\205\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11804 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0"
11805 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11806 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11807 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11808 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11809 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11810 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11811 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11812 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
11813 +
11814 +
11815 +/* GdkPixbuf RGBA C-Source image dump */
11816 +
11817 +static const guint8 stock_vim_window_maximize_width[] = 
11818 +{ ""
11819 +  /* Pixbuf magic (0x47646b50) */
11820 +  "GdkP"
11821 +  /* length: header (24) + pixel_data (2304) */
11822 +  "\0\0\11\30"
11823 +  /* pixdata_type (0x1010002) */
11824 +  "\1\1\0\2"
11825 +  /* rowstride (96) */
11826 +  "\0\0\0`"
11827 +  /* width (24) */
11828 +  "\0\0\0\30"
11829 +  /* height (24) */
11830 +  "\0\0\0\30"
11831 +  /* pixel_data: */
11832 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11833 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11834 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11835 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11836 +  "\0\0\0\0\0\0\0\0\377\306c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11837 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11838 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\223W+\0\226"
11839 +  "\\-\0\377\310c\0\244@\40\0\244@\40\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11840 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11841 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\277_\0\377\310"
11842 +  "c\0\377\306b\0\377\275^\0\377\\.\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11843 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11844 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\265Y\0"
11845 +  "\377\302a\0\377p8\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11846 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11847 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\266Z\0"
11848 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11849 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0"
11850 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11851 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11852 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11853 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11854 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11855 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11856 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11857 +  "\377\344\344\344\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11858 +  "\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377"
11859 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
11860 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
11861 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
11862 +  "\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11863 +  "\377\377\377\377\377\354\354\354\377\354\354\354\377\0\0\0\377\0\0\0"
11864 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11865 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\0\0"
11866 +  "\0\377\0\0\0\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0"
11867 +  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354"
11868 +  "\354\354\377\0\0\0\377\377\\.\377\244@\40\377\354\354\354\377\354\354"
11869 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
11870 +  "\377\354\354\354\377\354\354\354\377\223W+\377\377\277_\377\0\0\0\377"
11871 +  "\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
11872 +  "\0\0\0\0\0\0\377\377\377\377\377\0\0\0\377\377p8\377\377\275^\377\244"
11873 +  "@\40\377\0\0\0\377\0\0\0\377\354\354\354\377\354\354\354\377\354\354"
11874 +  "\354\377\354\354\354\377\0\0\0\377\0\0\0\377\226\\-\377\377\310c\377"
11875 +  "\377\265Y\377\0\0\0\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
11876 +  "\0\0\0\0\0\0\0\0\0\377\0\0\0\377\377\266Z\377\377\302a\377\377\306b\377"
11877 +  "\377\310c\377\377\306c\377\0\0\0\377\354\354\354\377\354\354\354\377"
11878 +  "\354\354\354\377\354\354\354\377\0\0\0\377\377\306c\377\377\310c\377"
11879 +  "\377\306b\377\377\302a\377\377\266Z\377\0\0\0\377\0\0\0\377\0\0\0\0\0"
11880 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\0\0\0\377\377\265Y\377"
11881 +  "\377\310c\377\226\\-\377\0\0\0\377\0\0\0\377\354\354\354\377\354\354"
11882 +  "\354\377\354\354\354\377\354\354\354\377\0\0\0\377\0\0\0\377\244@\40"
11883 +  "\377\377\275^\377\377p8\377\0\0\0\377\270\270\270\377\0\0\0\377\0\0\0"
11884 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377"
11885 +  "\0\0\0\377\377\277_\377\223W+\377\354\354\354\377\354\354\354\377\354"
11886 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
11887 +  "\354\377\354\354\354\377\244@\40\377\377\\.\377\0\0\0\377\354\354\354"
11888 +  "\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11889 +  "\377\377\377\377\377\354\354\354\377\354\354\354\377\0\0\0\377\0\0\0"
11890 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11891 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\0\0"
11892 +  "\0\377\0\0\0\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0"
11893 +  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354"
11894 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
11895 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
11896 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11897 +  "\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0"
11898 +  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\351\351\351\377\270"
11899 +  "\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377\270\270"
11900 +  "\270\377\270\270\270\377\270\270\270\377\270\270\270\377\270\270\270"
11901 +  "\377\270\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377"
11902 +  "\270\270\270\377\270\270\270\377\270\270\270\377\205\205\205\377\0\0"
11903 +  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377"
11904 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11905 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11906 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11907 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
11908 +  "p8\0\377\302a\0\377\265Y\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11909 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11910 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\\.\0\377\275^"
11911 +  "\0\377\306b\0\377\310c\0\377\277_\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11912 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11913 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\244@\40\0\244@\40"
11914 +  "\0\377\310c\0\226\\-\0\223W+\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11915 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11916 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\306"
11917 +  "c\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11918 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11919 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11920 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11921 +  "\0\0\0\0\0"};
11922 +
11923 +
11924 +/* GdkPixbuf RGBA C-Source image dump */
11925 +
11926 +static const guint8 stock_vim_window_minimize[] = 
11927 +{ ""
11928 +  /* Pixbuf magic (0x47646b50) */
11929 +  "GdkP"
11930 +  /* length: header (24) + pixel_data (2304) */
11931 +  "\0\0\11\30"
11932 +  /* pixdata_type (0x1010002) */
11933 +  "\1\1\0\2"
11934 +  /* rowstride (96) */
11935 +  "\0\0\0`"
11936 +  /* width (24) */
11937 +  "\0\0\0\30"
11938 +  /* height (24) */
11939 +  "\0\0\0\30"
11940 +  /* pixel_data: */
11941 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11942 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
11943 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11944 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11945 +  "\0\0\0\0\0\0\0\0\0\0\377\377\306c\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
11946 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11947 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11948 +  "\377\223W+\377\226\\-\377\377\310c\377\244@\40\377\244@\40\377\0\0\0"
11949 +  "\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11950 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11951 +  "\0\0\0\0\0\377\377\277_\377\377\310c\377\377\306b\377\377\275^\377\377"
11952 +  "\\.\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11953 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11954 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\265Y\377\377\302a\377\377p8\377"
11955 +  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11956 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11957 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\266Z\377\0\0\0\377\0"
11958 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11959 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11960 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
11961 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11962 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
11963 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
11964 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
11965 +  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
11966 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11967 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11968 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
11969 +  "\377\377\377\377\377\377\377\377\377\377\377\344\344\344\377\0\0\0\377"
11970 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354"
11971 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
11972 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
11973 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11974 +  "\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0"
11975 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354"
11976 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11977 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
11978 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
11979 +  "\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
11980 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354"
11981 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
11982 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
11983 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11984 +  "\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
11985 +  "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354"
11986 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11987 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
11988 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
11989 +  "\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11990 +  "\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354"
11991 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
11992 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
11993 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11994 +  "\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
11995 +  "\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354"
11996 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
11997 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
11998 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270"
11999 +  "\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
12000 +  "\351\351\351\377\270\270\270\377\270\270\270\377\270\270\270\377\270"
12001 +  "\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377\270\270"
12002 +  "\270\377\270\270\270\377\270\270\270\377\270\270\270\377\270\270\270"
12003 +  "\377\270\270\270\377\270\270\270\377\270\270\270\377\205\205\205\377"
12004 +  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377"
12005 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12006 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12007 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12008 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12009 +  "\0\0\0\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12010 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12011 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377"
12012 +  "\266Z\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12013 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12014 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377p8\377\377\302"
12015 +  "a\377\377\265Y\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12016 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12017 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\\.\377\377\275^\377"
12018 +  "\377\306b\377\377\310c\377\377\277_\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0"
12019 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12020 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\244@\40\377"
12021 +  "\244@\40\377\377\310c\377\226\\-\377\223W+\377\0\0\0\377\0\0\0\0\0\0"
12022 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12023 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12024 +  "\0\0\0\0\0\377\377\306c\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12025 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12026 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12027 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12028 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
12029 +
12030 +
12031 +/* GdkPixbuf RGBA C-Source image dump */
12032 +
12033 +static const guint8 stock_vim_window_minimize_width[] = 
12034 +{ ""
12035 +  /* Pixbuf magic (0x47646b50) */
12036 +  "GdkP"
12037 +  /* length: header (24) + pixel_data (2304) */
12038 +  "\0\0\11\30"
12039 +  /* pixdata_type (0x1010002) */
12040 +  "\1\1\0\2"
12041 +  /* rowstride (96) */
12042 +  "\0\0\0`"
12043 +  /* width (24) */
12044 +  "\0\0\0\30"
12045 +  /* height (24) */
12046 +  "\0\0\0\30"
12047 +  /* pixel_data: */
12048 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12049 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12050 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12051 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12052 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12053 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12054 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12055 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12056 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12057 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12058 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
12059 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12060 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377"
12061 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
12062 +  "\377\377\377\351\351\351\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12063 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12064 +  "\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354"
12065 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12066 +  "\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12067 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12068 +  "\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354"
12069 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270"
12070 +  "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12071 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
12072 +  "\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12073 +  "\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377"
12074 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12075 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377"
12076 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12077 +  "\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0"
12078 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
12079 +  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354"
12080 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12081 +  "\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
12082 +  "\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\223W+\377\377"
12083 +  "\277_\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354"
12084 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12085 +  "\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0"
12086 +  "\377\377\\.\377\244@\40\377\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\226\\"
12087 +  "-\377\377\310c\377\377\265Y\377\0\0\0\377\0\0\0\0\0\0\0\377\377\377\377"
12088 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12089 +  "\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0"
12090 +  "\0\0\377\377p8\377\377\275^\377\244@\40\377\0\0\0\377\0\0\0\377\0\0\0"
12091 +  "\377\377\306c\377\377\310c\377\377\306b\377\377\302a\377\377\266Z\377"
12092 +  "\0\0\0\377\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377"
12093 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270"
12094 +  "\270\270\377\0\0\0\377\0\0\0\377\377\266Z\377\377\302a\377\377\306b\377"
12095 +  "\377\310c\377\377\306c\377\0\0\0\377\0\0\0\377\0\0\0\377\244@\40\377"
12096 +  "\377\275^\377\377p8\377\0\0\0\377\0\0\0\0\0\0\0\377\377\377\377\377\354"
12097 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12098 +  "\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\377"
12099 +  "\377\265Y\377\377\310c\377\226\\-\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0"
12100 +  "\0\0\244@\40\377\377\\.\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
12101 +  "\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12102 +  "\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0"
12103 +  "\0\0\0\0\0\0\0\0\377\377\277_\377\223W+\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
12104 +  "\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
12105 +  "\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12106 +  "\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0"
12107 +  "\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12108 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377"
12109 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12110 +  "\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0"
12111 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12112 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354"
12113 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12114 +  "\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
12115 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12116 +  "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354"
12117 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12118 +  "\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12119 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12120 +  "\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354"
12121 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270"
12122 +  "\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12123 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12124 +  "\377\344\344\344\377\270\270\270\377\270\270\270\377\270\270\270\377"
12125 +  "\270\270\270\377\270\270\270\377\270\270\270\377\205\205\205\377\0\0"
12126 +  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12127 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377"
12128 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12129 +  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12130 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12131 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12132 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12133 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12134 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12135 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
12136 +
12137 +
12138 +/* GdkPixbuf RGBA C-Source image dump */
12139 +
12140 +static const guint8 stock_vim_window_split[] = 
12141 +{ ""
12142 +  /* Pixbuf magic (0x47646b50) */
12143 +  "GdkP"
12144 +  /* length: header (24) + pixel_data (2304) */
12145 +  "\0\0\11\30"
12146 +  /* pixdata_type (0x1010002) */
12147 +  "\1\1\0\2"
12148 +  /* rowstride (96) */
12149 +  "\0\0\0`"
12150 +  /* width (24) */
12151 +  "\0\0\0\30"
12152 +  /* height (24) */
12153 +  "\0\0\0\30"
12154 +  /* pixel_data: */
12155 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12156 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12157 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12158 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12159 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12160 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12161 +  "\0\0\0\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
12162 +  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
12163 +  "\0\377\0\0\0\377\0\0\0\377\377\377\377\0\344\344\344\0\0\0\0\0\0\0\0"
12164 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
12165 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
12166 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
12167 +  "\377\377\377\377\377\377\377\377\344\344\344\377\0\0\0\377\0\0\0\0\0"
12168 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377"
12169 +  "\377\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354"
12170 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12171 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270"
12172 +  "\377\0\0\0\377\0\0\0\0\344\344\344\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12173 +  "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\377\377\377\377\377\354"
12174 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12175 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12176 +  "\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\270\270\270\0"
12177 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
12178 +  "\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354"
12179 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12180 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377"
12181 +  "\0\0\0\377\0\0\0\0\270\270\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12182 +  "\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\377\377\377\377\377\354\354"
12183 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12184 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12185 +  "\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\270\270\270\0\0\0"
12186 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0"
12187 +  "\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354"
12188 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12189 +  "\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0"
12190 +  "\0\377\0\0\0\0\270\270\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12191 +  "\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\377\377\377\377\377\354\354\354"
12192 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12193 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12194 +  "\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\270\270\270\0\0\0\0\0"
12195 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0"
12196 +  "\377\351\351\351\377\270\270\270\377\270\270\270\377\270\270\270\377"
12197 +  "\270\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377\270"
12198 +  "\270\270\377\270\270\270\377\270\270\270\377\205\205\205\377\0\0\0\377"
12199 +  "\0\0\0\0\270\270\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12200 +  "\0\0\0\0\0\351\351\351\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
12201 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
12202 +  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\205\205\205\0\0\0\0\0\0\0\0\0\0"
12203 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12204 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12205 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12206 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\377\0\0\0\377\0\0\0\377"
12207 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12208 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\344\344\344\0\0\0\0"
12209 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0"
12210 +  "\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
12211 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
12212 +  "\377\377\377\377\377\377\377\377\377\377\377\344\344\344\377\0\0\0\377"
12213 +  "\0\0\0\0\270\270\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12214 +  "\0\0\0\0\0\377\377\377\0\0\0\0\377\377\377\377\377\354\354\354\377\354"
12215 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12216 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12217 +  "\377\270\270\270\377\0\0\0\377\0\0\0\0\270\270\270\0\0\0\0\0\0\0\0\0"
12218 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\377\377"
12219 +  "\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12220 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12221 +  "\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0"
12222 +  "\0\270\270\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12223 +  "\0\0\377\377\377\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354"
12224 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12225 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12226 +  "\270\270\270\377\0\0\0\377\0\0\0\0\270\270\270\0\0\0\0\0\0\0\0\0\0\0"
12227 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\377\377\377"
12228 +  "\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12229 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12230 +  "\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\270"
12231 +  "\270\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
12232 +  "\377\377\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377"
12233 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12234 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270"
12235 +  "\270\377\0\0\0\377\0\0\0\0\270\270\270\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12236 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\351\351\351\0\0\0\0\377\377\377\377\377"
12237 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12238 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12239 +  "\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\205\205\205"
12240 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12241 +  "\0\0\377\351\351\351\377\270\270\270\377\270\270\270\377\270\270\270"
12242 +  "\377\270\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377"
12243 +  "\270\270\270\377\270\270\270\377\270\270\270\377\205\205\205\377\0\0"
12244 +  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12245 +  "\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12246 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12247 +  "\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12248 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12249 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12250 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
12251 +
12252 +
12253 +/* GdkPixbuf RGBA C-Source image dump */
12254 +
12255 +static const guint8 stock_vim_window_split_vertical[] = 
12256 +{ ""
12257 +  /* Pixbuf magic (0x47646b50) */
12258 +  "GdkP"
12259 +  /* length: header (24) + pixel_data (2304) */
12260 +  "\0\0\11\30"
12261 +  /* pixdata_type (0x1010002) */
12262 +  "\1\1\0\2"
12263 +  /* rowstride (96) */
12264 +  "\0\0\0`"
12265 +  /* width (24) */
12266 +  "\0\0\0\30"
12267 +  /* height (24) */
12268 +  "\0\0\0\30"
12269 +  /* pixel_data: */
12270 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12271 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12272 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12273 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12274 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12275 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12276 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12277 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12278 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12279 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12280 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12281 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\0\377\377\377"
12282 +  "\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377"
12283 +  "\0\377\377\377\0\351\351\351\0\0\0\0\0\377\377\377\0\377\377\377\0\377"
12284 +  "\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\377\377\377\0\351"
12285 +  "\351\351\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377"
12286 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12287 +  "\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
12288 +  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
12289 +  "\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
12290 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\351\351"
12291 +  "\351\377\0\0\0\377\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\377"
12292 +  "\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377"
12293 +  "\377\377\377\351\351\351\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12294 +  "\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377"
12295 +  "\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0"
12296 +  "\0\377\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354"
12297 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12298 +  "\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377"
12299 +  "\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12300 +  "\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0"
12301 +  "\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354"
12302 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270"
12303 +  "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354"
12304 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12305 +  "\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\377"
12306 +  "\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12307 +  "\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377"
12308 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354"
12309 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12310 +  "\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\377\377\377\377\377"
12311 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12312 +  "\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0"
12313 +  "\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377"
12314 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270"
12315 +  "\270\270\377\0\0\0\377\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354"
12316 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12317 +  "\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
12318 +  "\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354"
12319 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377"
12320 +  "\0\0\0\377\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354"
12321 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12322 +  "\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377"
12323 +  "\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12324 +  "\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0"
12325 +  "\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354\354\377\354"
12326 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\270\270"
12327 +  "\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377"
12328 +  "\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354"
12329 +  "\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0"
12330 +  "\377\377\377\377\377\354\354\354\377\354\354\354\377\354\354\354\377"
12331 +  "\354\354\354\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0"
12332 +  "\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354"
12333 +  "\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377"
12334 +  "\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\377\377\377"
12335 +  "\377\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12336 +  "\377\354\354\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0"
12337 +  "\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\354\354\354\377\354\354"
12338 +  "\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354\354"
12339 +  "\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\377\377\377\377\377\354"
12340 +  "\354\354\377\354\354\354\377\354\354\354\377\354\354\354\377\354\354"
12341 +  "\354\377\354\354\354\377\270\270\270\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
12342 +  "\0\0\0\0\0\0\377\344\344\344\377\270\270\270\377\270\270\270\377\270"
12343 +  "\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377\205\205"
12344 +  "\205\377\0\0\0\377\0\0\0\0\0\0\0\377\344\344\344\377\270\270\270\377"
12345 +  "\270\270\270\377\270\270\270\377\270\270\270\377\270\270\270\377\270"
12346 +  "\270\270\377\205\205\205\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12347 +  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
12348 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
12349 +  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
12350 +  "\0\0\0\0\0\0\0\0\0\0\0\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12351 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12352 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12353 +  "\0\0\0\0\0\0\0\0\344\344\344\0\0\0\0\0\344\344\344\0\270\270\270\0\270"
12354 +  "\270\270\0\270\270\270\0\270\270\270\0\270\270\270\0\270\270\270\0\205"
12355 +  "\205\205\0\0\0\0\0\344\344\344\0\270\270\270\0\270\270\270\0\270\270"
12356 +  "\270\0\270\270\270\0\270\270\270\0\270\270\270\0\205\205\205\0\0\0\0"
12357 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12358 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12359 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12360 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12361 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12362 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12363 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12364 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
12365 +  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
12366 +
12367 +
This page took 0.973564 seconds and 3 git commands to generate.