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)
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")
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:
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.
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.
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: >
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
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
83 + --no-xshm (not in GTK+ 2)
84 + --xim-preedit (not in GTK+ 2)
85 + --xim-status (not in GTK+ 2)
90 --display (GTK+ counterpart of -display; works the same way.)
91 + --screen (The screen number; for GTK+ 2.2 multihead support.)
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/
98 Note that this feature requires the latest GTK version. GTK 1.2.10 still has
100 +a small problem. The socket feature has not yet been tested with GTK+ 2 --
101 +feel free to volunteer.
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.
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.
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.
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.
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.
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.)
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.
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
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.
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
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.
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.
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.
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: >
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...
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|
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
205 It's possible to have more than one character in the first column. This works
206 like a dead key. Example: >
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
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.
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
225 USING UTF-8 IN X-Windows *utf-8-in-xwindows*
227 +Note: This section does not apply to the GTK+ 2 GUI.
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|.
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).
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.
261 Note that the fonts must be mono-spaced (all characters have the same
263 @@ -2596,6 +2607,7 @@ A jump table for the options with a shor
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
271 @@ -2612,12 +2624,16 @@ A jump table for the options with a shor
273 This example works on many X11 systems: >
274 :set guifontset=-*-*-medium-r-normal--16-*-*-*-c-*-*-*
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".
280 *'guifontwide'* *'gfw'* *E231*
281 'guifontwide' 'gfw' string (default "")
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
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
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
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.
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.
316 If you want the toolbar to be shown with icons as well as text, do the
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
326 /* Define if you use GTK and want GNOME support. */
327 #undef FEAT_GUI_GNOME
329 +/* Define if GTK+ 2 is available. */
332 /* Define if your X has own locale library */
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
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
363 @@ -758,6 +759,7 @@ if test "x$BEOS" = "xyes"; then
365 elif test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
371 @@ -777,6 +779,7 @@ elif test "x$QNX" = "xyes" -a "x$with_x"
379 @@ -825,6 +828,17 @@ if test "x$SKIP_GNOME" != "xYES" -a "$en
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
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
399 AC_DEFUN(AM_PATH_GTK,
401 - if test "X$GTK_CONFIG" != "X"; then
403 + if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
405 min_gtk_version=ifelse([$1], ,0.99.7,$1)
406 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
408 - if test "$GTK_CONFIG" = "no" ; then
411 + if test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno"; then
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/'`
429 + elif test "X$GTK_CONFIG" != "Xno"; then
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"
446 - dnl Now check if the installed GTK is sufficiently new. (Also sanity
447 - dnl checks the results of gtk-config to some extent
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/'`
462 + if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
464 + ac_save_CFLAGS="$CFLAGS"
465 + ac_save_LIBS="$LIBS"
466 + CFLAGS="$CFLAGS $GTK_CFLAGS"
467 + LIBS="$LIBS $GTK_LIBS"
470 + dnl Now check if the installed GTK is sufficiently new. (Also sanity
471 + dnl checks the results of gtk-config to some extent
481 - int major, minor, micro;
483 +int major, minor, micro;
486 - system ("touch conf.gtktest");
487 +system ("touch conf.gtktest");
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, µ) != 3) {
492 - printf("%s, bad version string\n", "$min_gtk_version");
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)))
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, µ) != 3) {
507 + printf("%s, bad version string\n", "$min_gtk_version");
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)))
520 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
521 - CFLAGS="$ac_save_CFLAGS"
522 - LIBS="$ac_save_LIBS"
524 + CFLAGS="$ac_save_CFLAGS"
525 + LIBS="$ac_save_LIBS"
528 if test "x$no_gtk" = x ; then
530 + AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
531 ifelse([$2], , :, [$2])
535 - if test "$GTK_CONFIG" = "no" ; then
536 + if test "X$GTK_CONFIG" = "Xno" ; then
539 if test -f conf.gtktest ; then
540 @@ -936,7 +974,9 @@ main ()
543 ifelse([$3], , :, [$3])
550 @@ -983,7 +1023,24 @@ AC_DEFUN([GNOME_INIT_HOOK],
554 - if test "x$want_gnome" = xyes; then
555 + if test "x$want_gnome" = xyes -a $gtk_major_version -ge 2; then
557 + AC_MSG_CHECKING(for libgnomeui-2.0)
558 + if $PKG_CONFIG --exists libgnomeui-2.0; then
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`
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)
571 + elif test "x$want_gnome" = xyes; then
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],
584 @@ -1078,10 +1136,13 @@ if test -z "$SKIP_GTK"; then
586 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
588 + if test "X$PKG_CONFIG" = "X"; then
589 + AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
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
597 [GTK_LIBNAME="$GTK_LIBS"
598 GUI_INC_LOC="$GTK_CFLAGS"], )
599 @@ -1094,20 +1155,27 @@ if test -z "$SKIP_GTK"; then
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)
608 + if test $gtk_major_version -ge 2; then
609 + AC_DEFINE(HAVE_GTK2)
612 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
614 if test -z "$SKIP_GNOME"; then
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"
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")
631 CPPFLAGS=$cppflags_save
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"
641 dnl automatically enable XIM when hangul input isn't enabled
642 if test "$enable_xim" = "auto" -a ! "$enable_hangulinput" = "yes" \
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
651 # define FEAT_SESSION
654 +#if defined(FEAT_SESSION) && defined(FEAT_GUI_GNOME) && defined(HAVE_GTK2)
655 +# define USE_GNOME_SESSION /* use GNOME session support if available */
659 * +multi_lang Multi language support. ":menutrans", ":language", etc.
660 * +gettext Message translations (requires +multi_lang)
662 * Disabled for EBCDIC:
663 * Multibyte support doesn't work on OS390 Unix currently.
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)
672 * +xfontset X fontset support. For outputting wide characters.
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
679 /* # define FEAT_XFONTSET */
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
689 else if (curbuf->b_help)
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.
695 + fenc_next = (char_u *)"latin1";
696 + fenc = (char_u *)"utf-8";
697 fenc_alloced = FALSE;
699 else if (*p_fencs == NUL)
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);
712 +EXTERN GtkIMContext *xic INIT(= NULL);
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);
720 EXTERN XIC xic INIT(= NULL);
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
730 /* Structure containing all the GUI information */
734 +#if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
735 static void set_guifontwide __ARGS((char_u *font_name));
737 static void gui_check_pos __ARGS((void));
738 @@ -166,6 +166,11 @@ gui_start()
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 */
748 /* If the GUI started successfully, trigger the GUIEnter event */
750 @@ -228,18 +233,22 @@ gui_init_check()
751 gui.border_width = 0;
753 gui.norm_font = NOFONT;
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;
765 -# ifdef FONTSET_ALWAYS
767 +# ifdef FONTSET_ALWAYS
768 gui.menu_fontset = NOFONTSET;
771 gui.menu_font = NOFONT;
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)
781 +#if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
782 if (gui_get_wide_font() == FAIL)
783 EMSG(_("E231: 'guifontwide' invalid"));
785 @@ -618,7 +627,7 @@ gui_init_font(font_list, fontset)
787 if (gui_mch_init_font(font_name, FALSE) == OK)
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)
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);
807 gui_mch_set_font(gui.norm_font);
809 gui_set_shellsize(FALSE,
812 @@ -664,7 +675,7 @@ gui_init_font(font_list, fontset)
816 -#if defined(FEAT_MBYTE) || defined(PROTO)
817 +#if (defined(FEAT_MBYTE) && !defined(HAVE_GTK2)) || defined(PROTO)
819 * Try setting 'guifontwide' to a font twice as wide as "name".
821 @@ -1741,7 +1752,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
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;
834 -#ifndef MSWIN16_FASTTEXT
835 +#if !defined(MSWIN16_FASTTEXT) && !defined(HAVE_GTK2)
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)))
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;
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 */
856 int dowide; /* use 'guifontwide' */
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,
863 c = utf_ptr2char(s + i);
864 cn = utf_char2cells(c);
867 -# ifdef FEAT_XFONTSET
868 +# ifdef FEAT_XFONTSET
869 && fontset == NOFONTSET
872 && gui.wide_font != NOFONT)
877 comping = utf_iscomposing(c);
878 if (!comping) /* count cells from non-composing chars */
880 @@ -1954,19 +1970,26 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
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)
889 +# if defined(FEAT_GUI_X11) || defined(FEAT_GUI_GTK)
891 -# ifdef FEAT_XFONTSET
892 +# ifdef FEAT_XFONTSET
893 /* No fontset: At least draw char after wide char at
895 && fontset == NOFONTSET
904 - if (comping || dowide)
912 thislen = i - start + cl;
913 @@ -1978,6 +2001,7 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
920 gui_mch_set_font(gui.wide_font);
921 @@ -1987,16 +2011,17 @@ gui_outstr_nowrap(s, len, flags, fg, bg,
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
935 gui_mch_draw_string(gui.row, scol - 1, (char_u *)" ",
939 +# endif /* !HAVE_GTK2 */
941 /* Draw a composing char on top of the previous char. */
943 @@ -2757,9 +2782,9 @@ button_set:
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.
950 -#ifdef FEAT_GUI_ATHENA
951 +#if defined(FEAT_GUI_ATHENA) || defined(HAVE_GTK2)
952 gui.dragged_sb = SBAR_NONE;
955 @@ -3026,7 +3051,7 @@ gui_find_scrollbar(ident)
957 * For most systems: Put a code in the input buffer for a dragged scrollbar.
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
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
973 # include <X11/Intrinsic.h>
974 # include <gtk/gtk.h>
975 +# if GTK_CHECK_VERSION(2,1,1)
976 +# define GTK2_MULTIHEAD
982 # define ALWAYS_USE_GUI
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
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 */
995 +#if defined(RISCOS) || defined(HAVE_GTK2)
996 # define DRAW_ITALIC 0x08 /* draw italic text */
998 #define DRAW_CURSOR 0x10 /* drawing block cursor (win32) */
999 @@ -229,8 +232,13 @@ typedef long guicolor_T; /* handle f
1004 + typedef PangoFontDescription *GuiFont; /* handle for a GUI font */
1005 + typedef PangoFontDescription *GuiFontset; /* handle for a GUI fontset */
1007 typedef GdkFont *GuiFont; /* handle for a GUI font */
1008 typedef GdkFont *GuiFontset; /* handle for a GUI fontset */
1010 # define NOFONT (GuiFont)NULL
1011 # define NOFONTSET (GuiFontset)NULL
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 */
1018 GuiFont norm_font; /* Normal font */
1020 GuiFont bold_font; /* Bold font */
1021 GuiFont ital_font; /* Italic font */
1022 GuiFont boldital_font; /* Bold-Italic font */
1024 -# ifdef FONTSET_ALWAYS
1026 + int font_can_bold; /* Whether norm_font supports bold weight.
1027 + * The styled font variants are not used. */
1032 +# ifdef FONTSET_ALWAYS
1033 GuiFontset menu_fontset; /* set of fonts for multi-byte chars */
1036 GuiFont menu_font; /* menu item font */
1042 GuiFont wide_font; /* 'guifontwide' font */
1045 #ifdef FEAT_XFONTSET
1046 GuiFontset fontset; /* set of fonts for multi-byte chars */
1047 @@ -383,14 +400,21 @@ typedef struct Gui
1049 GdkColor *fgcolor; /* GDK-styled foreground color */
1050 GdkColor *bgcolor; /* GDK-styled background color */
1052 - GdkFont *current_font;
1054 + GuiFont current_font;
1056 GdkGC *text_gc; /* cached GC for normal text */
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 */
1063 GtkAccelGroup *accel_group;
1065 GtkWidget *fontdlg; /* font selection dialog window */
1066 char_u *fontname; /* font name from font selection dialog */
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
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
1091 * With GREAT support and continuous encouragements by Andy Kahn and of
1092 * course Bram Moolenaar!
1094 + * Support for GTK+ 2 was added by:
1096 + * © 2002,2003 Jason Hildebrand <jason@peaceworks.ca>
1097 + * Daniel Elstner <daniel.elstner@gmx.net>
1099 + * Best supporting actor (He helped somewhat, aesthetically speaking):
1100 + * Maxime Romano <verbophobe@hotmail.com>
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"
1114 # include "../pixmaps/quest.xpm"
1117 -#ifdef FEAT_TOOLBAR
1118 +#if defined(FEAT_TOOLBAR) && !defined(HAVE_GTK2)
1120 * Icons used by the toolbar code.
1123 #include "../pixmaps/tb_vsplit.xpm"
1124 #include "../pixmaps/tb_maxwidth.xpm"
1125 #include "../pixmaps/tb_minwidth.xpm"
1127 +#endif /* FEAT_TOOLBAR && !HAVE_GTK2 */
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
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.
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 :)
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...
1159 +# define CONVERT_TO_UTF8(String) \
1160 + ((output_conv.vc_type == CONV_NONE || (String) == NULL) \
1161 + ? (String) : string_convert(&output_conv, (String), NULL))
1163 +# define CONVERT_TO_UTF8_FREE(String) \
1164 + ((String) = (output_conv.vc_type == CONV_NONE) \
1165 + ? NULL : (vim_free(String), NULL))
1167 +# define CONVERT_FROM_UTF8(String) \
1168 + ((input_conv.vc_type == CONV_NONE || (String) == NULL) \
1169 + ? (String) : string_convert(&input_conv, (String), NULL))
1171 +# define CONVERT_FROM_UTF8_FREE(String) \
1172 + ((String) = (input_conv.vc_type == CONV_NONE) \
1173 + ? NULL : (vim_free(String), NULL))
1175 +#endif /* HAVE_GTK2 */
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);
1186 +#if defined(FEAT_TOOLBAR) && defined(HAVE_GTK2)
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.
1192 +static const char * const menu_stock_ids[] =
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
1229 +add_stock_icon(GtkIconFactory *factory,
1230 + const char *stock_id,
1231 + const guint8 *inline_data,
1234 + GdkPixbuf *pixbuf;
1235 + GtkIconSet *icon_set;
1237 + pixbuf = gdk_pixbuf_new_from_inline(data_length, inline_data, FALSE, NULL);
1238 + icon_set = gtk_icon_set_new_from_pixbuf(pixbuf);
1240 + gtk_icon_factory_add(factory, stock_id, icon_set);
1242 + gtk_icon_set_unref(icon_set);
1243 + g_object_unref(pixbuf);
1247 +lookup_menu_iconfile(char_u *iconfile, char_u *buffer, int bufsize)
1249 + expand_env(iconfile, buffer, bufsize - 1);
1250 + buffer[bufsize - 1] = NUL;
1252 + if (mch_isFullName(buffer))
1254 + return vim_fexists(buffer);
1258 + char_u tempbuf[MAXPATHL + 1];
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)
1264 + STRNCPY(buffer, tempbuf, bufsize);
1265 + buffer[bufsize - 1] = NUL;
1273 + static GtkWidget *
1274 +create_menu_icon(vimmenu_T *menu, GtkIconSize icon_size)
1276 + GtkWidget *image = NULL;
1278 + if (menu->iconfile != NULL)
1280 + char_u buf[MAXPATHL + 1];
1282 + if (lookup_menu_iconfile(menu->iconfile, buf, sizeof(buf)))
1284 + GtkIconSet *icon_set;
1285 + GtkIconSource *icon_source;
1287 + icon_set = gtk_icon_set_new();
1288 + icon_source = gtk_icon_source_new();
1290 + gtk_icon_source_set_filename(icon_source, (const char *)buf);
1291 + gtk_icon_set_add_source(icon_set, icon_source);
1293 + image = gtk_image_new_from_icon_set(icon_set, icon_size);
1295 + gtk_icon_source_free(icon_source);
1296 + gtk_icon_set_unref(icon_set);
1300 + if (image == NULL)
1302 + const char *stock_id;
1304 + if (menu->iconidx >= 0 && menu->iconidx < G_N_ELEMENTS(menu_stock_ids))
1305 + stock_id = menu_stock_ids[menu->iconidx];
1307 + stock_id = GTK_STOCK_MISSING_IMAGE;
1309 + image = gtk_image_new_from_stock(stock_id, icon_size);
1315 +#endif /* FEAT_TOOLBAR && HAVE_GTK2 */
1317 +#if (defined(FEAT_TOOLBAR) && defined(HAVE_GTK2)) || defined(PROTO)
1320 +gui_gtk_register_stock_icons(void)
1322 +# include "../pixmaps/stock_icons.h"
1323 + GtkIconFactory *factory;
1325 + factory = gtk_icon_factory_new();
1326 +# define ADD_ICON(Name, Data) add_stock_icon(factory, Name, Data, sizeof(Data))
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);
1343 + gtk_icon_factory_add_default(factory);
1344 + g_object_unref(factory);
1347 +#endif /* FEAT_TOOLBAR && HAVE_GTK2 */
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
1355 #if defined(FEAT_MENU) || defined(PROTO)
1359 + * Translate VIM mnemonic tagging into GTK+'s and convert to UTF-8
1360 + * if necessary. The caller must vim_free() the translated string.
1363 +translate_mnemonic_tag(char_u *name, int use_mnemonic)
1368 + int n_underscores = 0;
1370 + name = CONVERT_TO_UTF8(name);
1372 + for (psrc = name; *psrc != NUL && *psrc != TAB; ++psrc)
1376 + buf = alloc((psrc - name) + n_underscores + 1);
1379 + for (psrc = name; *psrc != NUL && *psrc != TAB; ++psrc)
1386 + else if (*psrc != '&')
1390 + else if (*(psrc + 1) == '&')
1392 + *pdest++ = *psrc++;
1394 + else if (use_mnemonic)
1402 + CONVERT_TO_UTF8_FREE(name);
1409 +menu_item_new(vimmenu_T *menu, GtkWidget *parent_widget, int sub_menu)
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.
1420 + menu->id = gtk_menu_item_new();
1421 + box = gtk_hbox_new(FALSE, 20);
1423 + use_mnemonic = (p_wak[0] != 'n' || !GTK_IS_MENU_BAR(parent_widget));
1424 + name = translate_mnemonic_tag(menu->name, use_mnemonic);
1426 + menu->label = gtk_label_new_with_mnemonic((const char *)name);
1429 + gtk_box_pack_start(GTK_BOX(box), menu->label, FALSE, FALSE, 0);
1431 + actext = menu->actext;
1433 + if (actext != NULL && actext[0] != NUL)
1435 + actext = CONVERT_TO_UTF8(actext);
1437 + gtk_box_pack_end(GTK_BOX(box),
1438 + gtk_label_new((const char *)actext),
1441 + CONVERT_TO_UTF8_FREE(actext);
1444 + gtk_container_add(GTK_CONTAINER(menu->id), box);
1445 + gtk_widget_show_all(menu->id);
1448 +# else /* !HAVE_GTK2 */
1451 * Create a highly customized menu item by hand instead of by using:
1453 @@ -186,6 +484,7 @@ menu_item_new(vimmenu_T *menu, GtkWidget
1454 * score for each understore that appears in the menu name.
1458 /* First count how many underscore's are in the menu name. */
1459 for (num = 0, tmp = (char *)menu->name; *tmp; tmp++)
1461 @@ -203,13 +502,13 @@ menu_item_new(vimmenu_T *menu, GtkWidget
1465 -# ifdef GTK_USE_ACCEL
1466 +# ifdef GTK_USE_ACCEL
1467 if (*p_wak != 'n' || !GTK_IS_MENU_BAR(parent_widget))
1477 @@ -224,11 +523,12 @@ menu_item_new(vimmenu_T *menu, GtkWidget
1482 /* let GTK do its thing */
1483 accel_key = gtk_label_parse_uline(GTK_LABEL(label), name);
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)
1491 @@ -250,11 +550,12 @@ menu_item_new(vimmenu_T *menu, GtkWidget
1496 +# endif /* GTK_USE_ACCEL */
1501 +# endif /* !HAVE_GTK2 */
1505 @@ -281,20 +582,25 @@ gui_mch_add_menu(vimmenu_T *menu, int id
1506 return; /* failed */
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);
1513 /* since the tearoff should always appear first, increment 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);
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.
1523 + * Right-aligning "Help" is considered bad UI design nowadays.
1524 + * Thus lets disable this for GTK+ 2 to match the environment.
1527 if (parent == NULL && menu->priority >= 9999)
1528 gtk_menu_item_right_justify(GTK_MENU_ITEM(menu->id));
1531 if ((menu->submenu_id = gtk_menu_new()) == NULL) /* failed */
1533 @@ -319,7 +625,7 @@ menu_item_activate(GtkWidget * widget, g
1537 -#ifdef FEAT_TOOLBAR
1538 +# if defined(FEAT_TOOLBAR) && !defined(HAVE_GTK2)
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);
1548 +# endif /* FEAT_TOOLBAR && !HAVE_GTK2 */
1552 gui_mch_add_menu_item(vimmenu_T *menu, int idx)
1554 - vimmenu_T *parent = menu->parent;
1555 + vimmenu_T *parent;
1557 + parent = menu->parent;
1559 # ifdef FEAT_TOOLBAR
1560 if (menu_is_toolbar(parent->name))
1562 - if (menu_is_separator(menu->name))
1564 - gtk_toolbar_insert_space(GTK_TOOLBAR(gui.toolbar), idx);
1568 + GtkToolbar *toolbar;
1570 + toolbar = GTK_TOOLBAR(gui.toolbar);
1571 + menu->submenu_id = NULL;
1573 + if (menu_is_separator(menu->name))
1575 + gtk_toolbar_insert_space(toolbar, idx);
1584 + text = CONVERT_TO_UTF8(menu->dname);
1585 + tooltip = CONVERT_TO_UTF8(menu->strings[MENU_INDEX_TIP]);
1587 + menu->id = gtk_toolbar_insert_item(
1589 + (const char *)text,
1590 + (const char *)tooltip,
1592 + create_menu_icon(menu, gtk_toolbar_get_icon_size(toolbar)),
1593 + G_CALLBACK(menu_item_activate),
1597 + CONVERT_TO_UTF8_FREE(text);
1598 + CONVERT_TO_UTF8_FREE(tooltip);
1600 +# else /* !HAVE_GTK2 */
1602 GdkPixmap *pixmap = NULL;
1603 GdkBitmap *mask = NULL;
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... */
1608 menu->id = gtk_toolbar_insert_item(
1609 - GTK_TOOLBAR(gui.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),
1618 +# endif /* !HAVE_GTK2 */
1620 - menu->parent = parent;
1621 - menu->submenu_id = NULL;
1623 - } /* toolbar menu item */
1626 - /* No parent, must be a non-menubar menu */
1627 - if (parent->submenu_id == 0)
1630 - /* make place for the possible tearoff handle item */
1632 - if (menu_is_separator(menu->name))
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);
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);
1648 - if (menu->id != 0)
1649 - gtk_signal_connect(GTK_OBJECT(menu->id), "activate",
1650 - GTK_SIGNAL_FUNC(menu_item_activate), (gpointer) menu);
1652 +# endif /* FEAT_TOOLBAR */
1654 + /* No parent, must be a non-menubar menu */
1655 + if (parent->submenu_id == NULL)
1658 + /* make place for the possible tearoff handle item */
1660 + if (menu_is_separator(menu->name))
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);
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);
1676 + if (menu->id != NULL)
1677 + gtk_signal_connect(GTK_OBJECT(menu->id), "activate",
1678 + GTK_SIGNAL_FUNC(menu_item_activate), menu);
1682 +#endif /* FEAT_MENU */
1686 @@ -508,6 +845,27 @@ gui_mch_set_text_area_pos(int x, int y,
1688 * Enable or disable accelators for the toplevel menus.
1693 +gui_gtk_set_mnemonics(int enable)
1698 + for (menu = root_menu; menu != NULL; menu = menu->next)
1700 + if (menu->id == NULL)
1703 + name = translate_mnemonic_tag(menu->name, enable);
1704 + gtk_label_set_text_with_mnemonic(GTK_LABEL(menu->label), (const char *)name);
1709 +# else /* !HAVE_GTK2 */
1713 gui_gtk_set_mnemonics(int enable)
1714 @@ -585,7 +943,7 @@ gui_gtk_set_mnemonics(int enable)
1715 accel_key, GDK_MOD1_MASK);
1719 +#endif /* !HAVE_GTK2 */
1722 recurse_tearoffs(vimmenu_T *menu, int val)
1723 @@ -607,21 +965,25 @@ recurse_tearoffs(vimmenu_T *menu, int va
1729 gui_mch_toggle_tearoffs(int enable)
1731 recurse_tearoffs(root_menu, enable);
1735 +#endif /* FEAT_MENU */
1737 -#ifdef FEAT_TOOLBAR
1739 +#if defined(FEAT_TOOLBAR) && !defined(HAVE_GTK2)
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.
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.
1752 toolbar_remove_item_by_text(GtkToolbar *tb, const char *text)
1753 @@ -658,7 +1020,40 @@ toolbar_remove_item_by_text(GtkToolbar *
1758 +#endif /* FEAT_TOOLBAR && !HAVE_GTK2 */
1761 +#if defined(FEAT_TOOLBAR) && defined(HAVE_GTK2)
1763 +gui_mch_menu_set_tip(vimmenu_T *menu)
1765 + if (menu->id != NULL && menu->parent != NULL &&
1766 + gui.toolbar != NULL && menu_is_toolbar(menu->parent->name))
1770 + tooltip = CONVERT_TO_UTF8(menu->strings[MENU_INDEX_TIP]);
1772 + gtk_tooltips_set_tip(GTK_TOOLBAR(gui.toolbar)->tooltips,
1773 + menu->id, (const char *)tooltip, NULL);
1775 + CONVERT_TO_UTF8_FREE(tooltip);
1780 +get_tool_position(vimmenu_T *menu)
1785 + for (node = menu->parent->children; node != menu; node = node->next)
1790 +#endif /* FEAT_TOOLBAR && HAVE_GTK2 */
1793 #if defined(FEAT_MENU) || defined(PROTO)
1795 @@ -667,26 +1062,32 @@ toolbar_remove_item_by_text(GtkToolbar *
1797 gui_mch_destroy_menu(vimmenu_T *menu)
1799 -#ifdef FEAT_TOOLBAR
1800 +# ifdef FEAT_TOOLBAR
1801 if (menu->parent && menu_is_toolbar(menu->parent->name))
1803 - toolbar_remove_item_by_text(GTK_TOOLBAR(gui.toolbar),
1804 - (const char *)menu->dname);
1807 + if (menu_is_separator(menu->name))
1808 + gtk_toolbar_remove_space(GTK_TOOLBAR(gui.toolbar),
1809 + get_tool_position(menu));
1811 + gtk_widget_destroy(menu->id);
1813 + toolbar_remove_item_by_text(GTK_TOOLBAR(gui.toolbar),
1814 + (const char *)menu->dname);
1819 - if (menu->submenu_id != 0)
1821 - gtk_widget_destroy(menu->submenu_id);
1822 - menu->submenu_id = 0;
1824 - if (menu->id != 0)
1826 +# endif /* FEAT_TOOLBAR */
1828 - /* parent = gtk_widget_get_parent(menu->id); */
1829 - gtk_widget_destroy(menu->id);
1831 + if (menu->submenu_id != NULL)
1832 + gtk_widget_destroy(menu->submenu_id);
1834 + if (menu->id != NULL)
1835 + gtk_widget_destroy(menu->id);
1838 + menu->submenu_id = NULL;
1841 #endif /* FEAT_MENU */
1843 @@ -738,15 +1139,27 @@ adjustment_value_changed(GtkAdjustment *
1844 if (did_ask_for_change)
1847 - sb = gui_find_scrollbar((long) data);
1848 + sb = gui_find_scrollbar(GPOINTER_TO_INT(data));
1849 value = adjustment->value;
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.
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 :/
1862 - dragging = GTK_RANGE((GtkScrollbar *)sb->id)->scroll_type
1863 - == GTK_SCROLL_NONE;
1868 + dragging = (GTK_RANGE(sb->id)->scroll_type == GTK_SCROLL_NONE);
1872 gui_drag_scrollbar(sb, value, dragging);
1874 if (gtk_main_level() > 0)
1875 @@ -771,13 +1184,13 @@ gui_mch_create_scrollbar(scrollbar_T * s
1879 - GtkAdjustment *adjustment;
1880 + GtkAdjustment *adjustment;
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));
1889 + gtk_signal_connect(GTK_OBJECT(adjustment), "value_changed",
1890 + GTK_SIGNAL_FUNC(adjustment_value_changed),
1891 + GINT_TO_POINTER(sb->ident));
1895 @@ -786,10 +1199,10 @@ gui_mch_create_scrollbar(scrollbar_T * s
1897 gui_mch_destroy_scrollbar(scrollbar_T * sb)
1900 + if (sb->id != NULL)
1902 - gtk_widget_destroy(sb->id);
1904 + gtk_widget_destroy(sb->id);
1909 @@ -872,6 +1285,10 @@ gui_mch_browse(int saving,
1910 char_u dirbuf[MAXPATHL];
1914 + title = CONVERT_TO_UTF8(title);
1919 gui.filedlg = gtk_file_selection_new((const gchar *)title);
1920 @@ -894,6 +1311,10 @@ gui_mch_browse(int saving,
1922 gtk_window_set_title(GTK_WINDOW(gui.filedlg), (const gchar *)title);
1925 + CONVERT_TO_UTF8_FREE(title);
1928 /* if our pointer is currently hidden, then we should show it. */
1929 gui_mch_mousehide(FALSE);
1931 @@ -912,9 +1333,10 @@ gui_mch_browse(int saving,
1933 gtk_file_selection_set_filename(GTK_FILE_SELECTION(gui.filedlg),
1934 (const gchar *)dirbuf);
1937 gui_gtk_position_in_parent(GTK_WIDGET(gui.mainwin),
1938 GTK_WIDGET(gui.filedlg), VW_POS_MOUSE);
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,
1945 #endif /* FEAT_BROWSE */
1947 -#if defined(FEAT_GUI_DIALOG) || defined(PROTO)
1948 +#if (defined(FEAT_GUI_DIALOG) && !defined(HAVE_GTK2)) || defined(PROTO)
1950 static char_u *dialog_textfield = NULL;
1951 static GtkWidget *dialog_textentry;
1952 @@ -941,16 +1363,15 @@ static GtkWidget *dialog_textentry;
1954 dlg_destroy(GtkWidget *dlg)
1958 if (dialog_textfield != NULL)
1960 - /* Get the text from the textentry widget. */
1961 - p = gtk_editable_get_chars(GTK_EDITABLE(dialog_textentry),
1963 - STRCPY(dialog_textfield, p);
1967 + text = gtk_entry_get_text(GTK_ENTRY(dialog_textentry));
1968 + STRNCPY(dialog_textfield, text, IOSIZE);
1969 + dialog_textfield[IOSIZE - 1] = NUL;
1972 /* Destroy the dialog, will break the waiting loop. */
1973 gtk_widget_destroy(dlg);
1975 @@ -1164,13 +1585,12 @@ gui_mch_dialog( int type, /* type of di
1979 - GtkWidget *pixmap;
1980 GtkWidget *dialogmessage;
1981 GtkWidget *action_area;
1982 GtkWidget *sub_area;
1983 GtkWidget *separator;
1984 GtkAccelGroup *accel_group;
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
1992 if ((type < 0) || (type > VIM_LAST_TYPE))
1996 /* Check 'v' flag in 'guioptions': vertical button placement. */
1997 vertical = (vim_strchr(p_go, GO_VERTICAL) != NULL);
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;
2007 +#endif /* FEAT_GUI_DIALOG && !HAVE_GTK2 */
2010 +#if defined(FEAT_GUI_DIALOG) && defined(HAVE_GTK2)
2012 + static GtkWidget *
2013 +create_message_dialog(int type, char_u *title, char_u *message)
2015 + GtkWidget *dialog;
2016 + GtkMessageType message_type;
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;
2026 + message = CONVERT_TO_UTF8(message);
2028 + dialog = gtk_message_dialog_new(GTK_WINDOW(gui.mainwin),
2029 + GTK_DIALOG_DESTROY_WITH_PARENT,
2032 + "%s", (const char *)message);
2034 + CONVERT_TO_UTF8_FREE(message);
2036 + if (title != NULL)
2038 + title = CONVERT_TO_UTF8(title);
2039 + gtk_window_set_title(GTK_WINDOW(dialog), (const char *)title);
2040 + CONVERT_TO_UTF8_FREE(title);
2042 + else if (type == VIM_GENERIC)
2044 + gtk_window_set_title(GTK_WINDOW(dialog), "VIM");
2051 +split_button_string(char_u *button_string, int *n_buttons)
2053 + const char separator[] = { DLG_BUTTON_SEP, '\0' };
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);
2061 + for (pbutton = buttons; *pbutton != NULL; ++pbutton)
2065 + for (p = *pbutton; *p != '\0'; ++p)
2070 + *n_buttons = pbutton - buttons;
2076 +split_button_translation(const char *message)
2081 + int n_expected = 1;
2083 + for (p = message; *p != '\0'; ++p)
2084 + if (*p == DLG_BUTTON_SEP)
2087 + buttons = split_button_string((char_u *)_(message), &n_buttons);
2089 + /* Uh-oh... this should never happen. But well, we don't wanna
2090 + * crash if the translation is broken.
2092 + if (n_buttons != n_expected)
2094 + g_strfreev(buttons);
2095 + buttons = split_button_string((char_u *)message, &n_buttons);
2102 +button_equal(const char *a, const char *b)
2104 + while (*a != '\0' && *b != '\0')
2106 + if (*a == '_' && *++a == '\0')
2108 + if (*b == '_' && *++b == '\0')
2111 + if (g_unichar_tolower(g_utf8_get_char(a)) !=
2112 + g_unichar_tolower(g_utf8_get_char(b)))
2115 + a = g_utf8_next_char(a);
2116 + b = g_utf8_next_char(b);
2119 + return (*a == '\0' && *b == '\0');
2123 +dialog_add_buttons(GtkDialog *dialog, char_u *button_string)
2126 + char **yesnocancel;
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);
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.
2138 + for (index = n_buttons; index > 0; --index)
2140 + const char *label;
2142 + label = buttons[index - 1];
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 :/
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.
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;
2161 + gtk_dialog_add_button(dialog, label, index);
2164 + g_strfreev(buttons);
2165 + g_strfreev(yesnocancel);
2170 +copy_dialog_input(char_u *textfield, const char *input)
2174 + text = CONVERT_FROM_UTF8((char_u *)input);
2175 + STRNCPY(textfield, text, IOSIZE);
2177 + if (input_conv.vc_type == CONV_NONE)
2179 + /* strip trailing partial character; just in case */
2180 + *g_utf8_find_prev_char((char *)textfield, (char *)textfield + IOSIZE) = NUL;
2184 + textfield[IOSIZE - 1] = NUL;
2189 +#endif /* FEAT_GUI_DIALOG && HAVE_GTK2 */
2192 +#if (defined(FEAT_GUI_DIALOG) && defined(HAVE_GTK2)) || defined(PROTO)
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 */
2202 + GtkWidget *dialog;
2203 + GtkWidget *entry = NULL;
2206 + dialog = create_message_dialog(type, title, message);
2208 + dialog_add_buttons(GTK_DIALOG(dialog), buttons);
2210 + if (textfield != NULL)
2212 + GtkWidget *alignment;
2215 + entry = gtk_entry_new();
2216 + gtk_widget_show(entry);
2218 + text = CONVERT_TO_UTF8(textfield);
2219 + gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
2220 + CONVERT_TO_UTF8_FREE(text);
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);
2227 + gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox),
2228 + alignment, TRUE, FALSE, 0);
2232 + gtk_dialog_set_default_response(GTK_DIALOG(dialog), def_but);
2234 + response = gtk_dialog_run(GTK_DIALOG(dialog));
2236 + /* GTK_RESPONSE_NONE means the dialog has been programmatically destroyed.
2238 + if (response != GTK_RESPONSE_NONE)
2240 + if (textfield != NULL)
2241 + copy_dialog_input(textfield, gtk_entry_get_text(GTK_ENTRY(entry)));
2243 + gtk_widget_destroy(dialog);
2246 + return MAX(0, response);
2249 +#endif /* FEAT_GUI_DIALOG && HAVE_GTK2 */
2251 -#endif /* FEAT_GUI_DIALOG */
2253 #if defined(FEAT_MENU) || defined(PROTO)
2255 @@ -1525,10 +2187,61 @@ find_key_press_event(
2260 + static GtkWidget *
2261 +create_image_button(const char *stock_id, const char *label)
2265 + GtkWidget *alignment;
2266 + GtkWidget *button;
2268 + text = CONVERT_TO_UTF8((char_u *)label);
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),
2274 + gtk_box_pack_start(GTK_BOX(box),
2275 + gtk_label_new((const char *)text),
2278 + CONVERT_TO_UTF8_FREE(text);
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);
2284 + button = gtk_button_new();
2285 + gtk_container_add(GTK_CONTAINER(button), alignment);
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.
2295 + static const char *
2296 +convert_localized_message(char_u **buffer, const char *message)
2298 + if (output_conv.vc_type == CONV_NONE)
2301 + vim_free(*buffer);
2302 + *buffer = string_convert(&output_conv, (char_u *)message, NULL);
2304 + return (const char *)*buffer;
2306 +#endif /* HAVE_GTK2 */
2309 find_replace_dialog_create(char_u *arg, int do_replace)
2314 GtkWidget *hbox; /* main top down box */
2315 GtkWidget *actionarea;
2317 @@ -1539,23 +2252,39 @@ find_replace_dialog_create(char_u *arg,
2322 + char_u *conv_buffer = NULL;
2323 +# define CONV(message) convert_localized_message(&conv_buffer, (message))
2325 +# define CONV(message) (message)
2328 frdp = (do_replace) ? (&repl_widgets) : (&find_widgets);
2330 /* Get the search string to use. */
2331 entry_text = get_find_dialog_text(arg, &wword, &mcase);
2334 + if (entry_text != NULL && output_conv.vc_type != CONV_NONE)
2336 + char_u *old_text = entry_text;
2337 + entry_text = string_convert(&output_conv, entry_text, NULL);
2338 + vim_free(old_text);
2343 * If the dialog already exists, just raise it.
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);
2353 gui_gtk_synch_fonts();
2355 if (!GTK_WIDGET_VISIBLE(frdp->dialog))
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),
2363 + gtk_window_present(GTK_WINDOW(frdp->dialog));
2365 gdk_window_raise(frdp->dialog->window);
2368 vim_free(entry_text);
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);
2378 frdp->dialog = gtk_window_new(GTK_WINDOW_DIALOG);
2384 gtk_window_set_wmclass(GTK_WINDOW(frdp->dialog), "searchrepl", "gvim");
2385 - gtk_window_set_title(GTK_WINDOW(frdp->dialog), _("VIM - Search and Replace..."));
2387 + gtk_window_set_title(GTK_WINDOW(frdp->dialog),
2388 + CONV(_("VIM - Search and Replace...")));
2393 gtk_window_set_wmclass(GTK_WINDOW(frdp->dialog), "search", "gvim");
2394 - gtk_window_set_title(GTK_WINDOW(frdp->dialog), _("VIM - Search..."));
2396 + gtk_window_set_title(GTK_WINDOW(frdp->dialog),
2397 + CONV(_("VIM - Search...")));
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);
2408 - /* this makes it look beter on Motif style window managers */
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);
2415 hbox = gtk_hbox_new(FALSE, 0);
2417 + gtk_container_set_border_width(GTK_CONTAINER(hbox), 10);
2418 + gtk_container_add(GTK_CONTAINER(GTK_DIALOG(frdp->dialog)->vbox), hbox);
2420 gtk_container_add(GTK_CONTAINER(frame), hbox);
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);
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,
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),
2454 @@ -1654,11 +2409,11 @@ find_replace_dialog_create(char_u *arg,
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));
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),
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);
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),
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);
2481 - tmp = gtk_frame_new(_("Direction"));
2482 + tmp = gtk_frame_new(CONV(_("Direction")));
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);
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)),
2497 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(frdp->down), TRUE);
2499 - gtk_signal_connect(GTK_OBJECT(frdp->down), "clicked",
2500 - GTK_SIGNAL_FUNC(repl_dir_cb), NULL);
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),
2509 + gtk_container_set_border_width(GTK_CONTAINER(vbox), 2);
2511 gtk_box_pack_start(GTK_BOX(vbox), frdp->down, TRUE, TRUE, 0);
2513 /* vbox to hold the action buttons */
2514 actionarea = gtk_vbutton_box_new();
2515 gtk_container_border_width(GTK_CONTAINER(actionarea), 2);
2519 gtk_button_box_set_layout(GTK_BUTTON_BOX(actionarea),
2521 gtk_button_box_set_spacing(GTK_BUTTON_BOX(actionarea), 0);
2524 gtk_box_pack_end(GTK_BOX(hbox), actionarea, FALSE, FALSE, 0);
2526 /* 'Find Next' button */
2528 + frdp->find = create_image_button(GTK_STOCK_FIND, _("Find Next"));
2530 frdp->find = gtk_button_new_with_label(_("Find Next"));
2532 gtk_widget_set_sensitive(frdp->find, sensitive);
2534 - gtk_signal_connect(GTK_OBJECT(frdp->find), "clicked",
2535 - GTK_SIGNAL_FUNC(find_replace_cb),
2536 - (gpointer) FRD_R_FINDNEXT);
2538 - gtk_signal_connect(GTK_OBJECT(frdp->find), "clicked",
2539 - GTK_SIGNAL_FUNC(find_replace_cb),
2540 - (gpointer) FRD_FINDNEXT);
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));
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,
2552 /* 'Replace' button */
2554 + frdp->replace = create_image_button(GTK_STOCK_CONVERT, _("Replace"));
2556 frdp->replace = gtk_button_new_with_label(_("Replace"));
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));
2566 /* 'Replace All' button */
2568 + frdp->all = create_image_button(GTK_STOCK_CONVERT, _("Replace All"));
2570 frdp->all = gtk_button_new_with_label(_("Replace All"));
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));
2581 /* 'Cancel' button */
2583 + tmp = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
2585 tmp = gtk_button_new_with_label(_("Cancel"));
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));
2597 tmp = gtk_vseparator_new();
2599 + gtk_box_pack_end(GTK_BOX(hbox), tmp, FALSE, FALSE, 10);
2601 gtk_box_pack_end(GTK_BOX(hbox), tmp, FALSE, TRUE, 0);
2605 gtk_widget_grab_focus(frdp->what);
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);
2613 gui_gtk_synch_fonts();
2616 gtk_widget_show_all(frdp->dialog);
2618 + gtk_widget_hide(GTK_DIALOG(frdp->dialog)->action_area);
2621 vim_free(entry_text);
2623 + vim_free(conv_buffer);
2629 @@ -1792,7 +2576,6 @@ gui_mch_find_dialog(exarg_T *eap)
2630 find_replace_dialog_create(eap->arg, FALSE);
2635 gui_mch_replace_dialog(exarg_T *eap)
2637 @@ -1801,11 +2584,14 @@ gui_mch_replace_dialog(exarg_T *eap)
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.
2649 + * Obsolete with GTK2.
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;
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)
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;
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)
2685 +#endif /* !HAVE_GTK2 */
2689 @@ -1857,11 +2644,16 @@ gui_gtk_synch_fonts(void)
2693 -find_replace_cb(GtkWidget *widget, unsigned int flags)
2694 +find_replace_cb(GtkWidget *widget, gpointer data)
2696 - char *find_text, *repl_text;
2697 - gboolean direction_down = TRUE;
2698 - SharedFindReplace *sfr;
2700 + char_u *find_text;
2701 + char_u *repl_text;
2702 + gboolean direction_down = TRUE;
2703 + SharedFindReplace *sfr;
2706 + flags = GPOINTER_TO_INT(data);
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
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;
2718 - find_text = gtk_entry_get_text(GTK_ENTRY(sfr->what));
2720 + find_text = (char_u *)gtk_entry_get_text(GTK_ENTRY(sfr->what));
2721 direction_down = GTK_TOGGLE_BUTTON(sfr->down)->active;
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;
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 */
2733 + repl_text = CONVERT_FROM_UTF8(repl_text);
2734 + find_text = CONVERT_FROM_UTF8(find_text);
2736 + rc = gui_do_findrepl(flags, find_text, repl_text, direction_down);
2738 + CONVERT_FROM_UTF8_FREE(repl_text);
2739 + CONVERT_FROM_UTF8_FREE(find_text);
2742 + if (rc && gtk_main_level() > 0)
2743 + gtk_main_quit(); /* make sure cmd will be handled immediately */
2746 /* our usual callback function */
2747 @@ -1963,7 +2765,7 @@ mcase_match_cb(GtkWidget * widget, gpoin
2749 entry_changed_cb(GtkWidget * entry, GtkWidget * dialog)
2751 - gchar *entry_text;
2752 + const gchar *entry_text;
2755 entry_text = gtk_entry_get_text(GTK_ENTRY(entry));
2756 @@ -1971,7 +2773,7 @@ entry_changed_cb(GtkWidget * entry, GtkW
2758 return; /* shouldn't happen */
2760 - nonempty = (strlen(entry_text) != 0);
2761 + nonempty = (entry_text[0] != '\0');
2763 if (dialog == find_widgets.dialog)
2765 @@ -2014,6 +2816,8 @@ ex_helpfind(eap)
2766 do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
2769 +#ifndef HAVE_GTK2 /* Crack crack crack. Brrrr. */
2771 /* gui_gtk_position_in_parent
2773 * this function causes a child window to be placed within the boundary of
2774 @@ -2090,3 +2894,6 @@ gui_gtk_position_in_parent(
2776 gtk_widget_set_uposition(child, pos_x, pos_y);
2779 +#endif /* !HAVE_GTK2 */
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
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.)
2796 + * Support for GTK+ 2 was added by:
2798 + * © 2002,2003 Jason Hildebrand <jason@peaceworks.ca>
2799 + * Daniel Elstner <daniel.elstner@gmx.net>
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
2806 gint x; /* relative subwidget x position */
2807 gint y; /* relative subwidget y position */
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);
2821 static gint gtk_form_expose(GtkWidget * widget,
2822 GdkEventExpose * event);
2824 @@ -63,6 +70,8 @@ static void gtk_form_forall(GtkContainer
2825 GtkCallback callback,
2826 gpointer callback_data);
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(
2835 static void gtk_form_send_configure(GtkForm *form);
2837 +static void gtk_form_child_map(GtkWidget *widget, gpointer user_data);
2838 +static void gtk_form_child_unmap(GtkWidget *widget, gpointer user_data);
2840 static GtkWidgetClass *parent_class = NULL;
2843 @@ -119,9 +131,15 @@ gtk_form_put(GtkForm * form,
2845 form->children = g_list_append(form->children, child);
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.
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);
2857 + gtk_widget_set_parent(child_widget, GTK_WIDGET(form));
2858 gtk_widget_size_request(child->widget, NULL);
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;
2864 /* signal the change */
2866 + gtk_widget_queue_resize(gtk_widget_get_parent(GTK_WIDGET(form)));
2868 gtk_container_queue_resize(GTK_CONTAINER(GTK_WIDGET(form)->parent));
2873 @@ -191,14 +213,18 @@ gtk_form_thaw(GtkForm * form)
2874 if (!(--form->freeze_count))
2876 gtk_form_position_children(form);
2878 + gtk_widget_queue_draw(GTK_WIDGET(form));
2880 gtk_widget_draw(GTK_WIDGET(form), NULL);
2886 /* Basic Object handling procedures
2890 gtk_form_get_type(void)
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;
2900 widget_class->expose_event = gtk_form_expose;
2902 container_class->remove = gtk_form_remove;
2903 @@ -312,12 +340,22 @@ gtk_form_realize(GtkWidget * widget)
2905 GtkFormChild *child = tmp_list->data;
2907 - gtk_widget_set_parent_window (child->widget, form->bin_window);
2908 + gtk_form_attach_child_window(form, child);
2910 if (GTK_WIDGET_VISIBLE(child->widget))
2911 gtk_form_realize_child(form, child);
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.
2921 + * Well, I reckon at least the gdk_window_show(form->bin_window)
2922 + * is necessary. GtkForm is anything but a usual container widget.
2925 gtk_form_map(GtkWidget * widget)
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);
2932 - if (child->window)
2933 - gdk_window_show(child->window);
2939 @@ -371,9 +405,17 @@ gtk_form_unrealize(GtkWidget * widget)
2943 + gtk_signal_disconnect_by_func(GTK_OBJECT(child->widget),
2944 + GTK_SIGNAL_FUNC(>k_form_child_map), child);
2945 + gtk_signal_disconnect_by_func(GTK_OBJECT(child->widget),
2946 + GTK_SIGNAL_FUNC(>k_form_child_unmap), child);
2948 gdk_window_set_user_data(child->window, NULL);
2949 gdk_window_destroy(child->window);
2951 + child->window = NULL;
2954 tmp_list = tmp_list->next;
2957 @@ -381,6 +423,7 @@ gtk_form_unrealize(GtkWidget * widget)
2958 (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
2964 gtk_form_draw(GtkWidget * widget, GdkRectangle * area)
2965 @@ -411,6 +454,7 @@ gtk_form_draw(GtkWidget * widget, GdkRec
2969 +#endif /* !HAVE_GTK2 */
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)
2977 - tmp_list = form->children;
2979 + for (tmp_list = form->children; tmp_list; tmp_list = tmp_list->next)
2981 - GtkFormChild *child = tmp_list->data;
2983 - if (event->window == child->window)
2984 - return gtk_widget_event(child->widget, (GdkEvent *) event);
2986 - tmp_list = tmp_list->next;
2988 + GtkFormChild *formchild = tmp_list->data;
2989 + GtkWidget *child = formchild->widget;
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
2995 + if (GTK_WIDGET_DRAWABLE(child) &&
2996 + GTK_WIDGET_NO_WINDOW(child) &&
2997 + child->window == event->window)
2999 + GdkEventExpose child_event;
3000 + child_event = *event;
3002 + child_event.region = gtk_widget_region_intersect(child, event->region);
3003 + if (!gdk_region_empty(child_event.region))
3005 + gdk_region_get_clipbox(child_event.region, &child_event.area);
3006 + gtk_widget_send_expose(child, (GdkEvent *)&child_event);
3009 +#else /* !HAVE_GTK2 */
3010 + GtkFormChild *child = tmp_list->data;
3012 + if (event->window == child->window)
3013 + return gtk_widget_event(child->widget, (GdkEvent *) event);
3014 +#endif /* !HAVE_GTK2 */
3018 @@ -540,6 +605,11 @@ gtk_form_remove(GtkContainer * container
3022 + gtk_signal_disconnect_by_func(GTK_OBJECT(child->widget),
3023 + GTK_SIGNAL_FUNC(>k_form_child_map), child);
3024 + gtk_signal_disconnect_by_func(GTK_OBJECT(child->widget),
3025 + GTK_SIGNAL_FUNC(>k_form_child_unmap), child);
3027 /* FIXME: This will cause problems for reparenting NO_WINDOW
3028 * widgets out of a GtkForm
3030 @@ -585,24 +655,23 @@ gtk_form_forall(GtkContainer * container
3034 -gtk_form_realize_child(GtkForm * form,
3035 - GtkFormChild * child)
3036 +gtk_form_attach_child_window(GtkForm * form,
3037 + GtkFormChild * child)
3039 - GtkWidget *widget;
3040 - gint attributes_mask;
3042 - widget = GTK_WIDGET(form);
3043 + if (child->window)
3044 + return; /* been there, done that */
3046 if (GTK_WIDGET_NO_WINDOW(child->widget))
3048 - GdkWindowAttr attributes;
3049 + GtkWidget *widget;
3050 + GdkWindowAttr attributes;
3051 + gint attributes_mask;
3053 - gint x = child->x;
3054 - gint y = child->y;
3055 + widget = GTK_WIDGET(form);
3057 attributes.window_type = GDK_WINDOW_CHILD;
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);
3069 - if (child->window)
3070 - gtk_style_set_background(widget->style,
3072 - GTK_STATE_NORMAL);
3073 + gtk_style_set_background(widget->style,
3075 + GTK_STATE_NORMAL);
3077 + gtk_widget_set_parent_window(child->widget, child->window);
3078 + gtk_form_set_static_gravity(child->window, TRUE);
3080 + /* Install signal handlers to map/unmap child->window
3081 + * alongside with the actual widget.
3083 + gtk_signal_connect(GTK_OBJECT(child->widget), "map",
3084 + GTK_SIGNAL_FUNC(>k_form_child_map), child);
3085 + gtk_signal_connect(GTK_OBJECT(child->widget), "unmap",
3086 + GTK_SIGNAL_FUNC(>k_form_child_unmap), child);
3088 - gtk_widget_set_parent_window(child->widget,
3089 - child->window ? child->window : form->bin_window);
3090 + else if (!GTK_WIDGET_REALIZED(child->widget))
3092 + gtk_widget_set_parent_window(child->widget, form->bin_window);
3097 +gtk_form_realize_child(GtkForm * form,
3098 + GtkFormChild * child)
3100 + gtk_form_attach_child_window(form, child);
3101 gtk_widget_realize(child->widget);
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);
3109 @@ -638,17 +726,14 @@ gtk_form_position_child(GtkForm * form,
3114 if ((x >= G_MINSHORT) && (x <= G_MAXSHORT) &&
3115 - (y >= G_MINSHORT) && (y <= G_MAXSHORT))
3116 + (y >= G_MINSHORT) && (y <= G_MAXSHORT))
3120 - child->mapped = TRUE;
3122 if (GTK_WIDGET_MAPPED(form) && GTK_WIDGET_VISIBLE(child->widget))
3124 - if (child->window)
3125 - gdk_window_show(child->window);
3126 if (!GTK_WIDGET_MAPPED(child->widget))
3127 gtk_widget_map(child->widget);
3129 @@ -691,9 +776,8 @@ gtk_form_position_child(GtkForm * form,
3132 child->mapped = FALSE;
3133 - if (child->window)
3134 - gdk_window_hide(child->window);
3135 - else if (GTK_WIDGET_MAPPED (child->widget))
3137 + if (GTK_WIDGET_MAPPED(child->widget))
3138 gtk_widget_unmap(child->widget);
3141 @@ -797,6 +881,13 @@ gtk_form_main_filter(GdkXEvent * gdk_xev
3143 gtk_form_set_static_gravity(GdkWindow * win, gboolean on)
3146 + gboolean static_gravity_supported;
3148 + static_gravity_supported = gdk_window_set_static_gravities(win, on);
3150 + g_return_if_fail(static_gravity_supported);
3152 XSetWindowAttributes xattributes;
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,
3163 @@ -813,8 +905,9 @@ gtk_form_move_resize(GtkForm * form, Gtk
3167 - widget->requisition.width = w;
3168 + widget->requisition.width = w;
3169 widget->requisition.height = h;
3171 gtk_form_move(form, widget, x, y);
3174 @@ -833,5 +926,32 @@ gtk_form_send_configure(GtkForm *form)
3175 event.width = widget->allocation.width;
3176 event.height = widget->allocation.height;
3178 - gtk_widget_event (widget, (GdkEvent*) &event);
3180 + gtk_main_do_event((GdkEvent*)&event);
3182 + gtk_widget_event(widget, (GdkEvent*) &event);
3187 +gtk_form_child_map(GtkWidget *widget, gpointer user_data)
3189 + GtkFormChild *child;
3191 + child = (GtkFormChild *)user_data;
3193 + child->mapped = TRUE;
3194 + gdk_window_show(child->window);
3198 +gtk_form_child_unmap(GtkWidget *widget, gpointer user_data)
3200 + GtkFormChild *child;
3202 + child = (GtkFormChild *)user_data;
3204 + child->mapped = FALSE;
3205 + gdk_window_hide(child->window);
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
3217 * With GREAT support and continuous encouragements by Andy Kahn and of
3218 * course Bram Moolenaar!
3220 + * Support for GTK+ 2 was added by:
3222 + * © 2002,2003 Jason Hildebrand <jason@peaceworks.ca>
3223 + * Daniel Elstner <daniel.elstner@gmx.net>
3228 # include <X11/Sunkeysym.h>
3231 -#define VIM_NAME "vim"
3232 -#define VIM_CLASS "Vim"
3233 +/* Easy-to-use macros for multihead support.
3235 +#ifdef GTK2_MULTIHEAD
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))
3244 +# define GET_X_DISPLAY() GDK_DISPLAY()
3245 +# define GET_X_ATOM(atom) ((Atom) (atom))
3246 +# define GET_GDK_ATOM(xatom) ((GdkAtom) (xatom))
3250 /* slection distinguishers */
3252 @@ -100,32 +119,50 @@ enum
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.)
3260 +static const GtkTargetEntry target_table[] =
3262 {"text/uri-list", 0, TARGET_STRING},
3263 {"STRING", 0, TARGET_STRING},
3264 {"text/plain", 0, TARGET_STRING}
3266 -static guint n_targets = sizeof(target_table) / sizeof(target_table[0]);
3267 +enum { DND_N_TARGETS = sizeof(target_table) / sizeof(target_table[0]) };
3272 +/* "Monospace" is a standard font alias that should be present
3273 + * on all proper Pango/fontconfig installations.
3275 +# define DEFAULT_FONT "Monospace 10"
3277 +#else /* !HAVE_GTK2 */
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.
3282 -#define DFLT_FONT "-adobe-courier-medium-r-normal-*-14-*-*-*-m-*-*-*"
3283 +# define DEFAULT_FONT "-adobe-courier-medium-r-normal-*-14-*-*-*-m-*-*-*"
3285 +#endif /* !HAVE_GTK2 */
3287 +#ifndef USE_GNOME_SESSION
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.
3292 static GdkAtom wm_protocols_atom = GDK_NONE;
3293 static GdkAtom save_yourself_atom = GDK_NONE;
3298 * Atom used to recognize requests for on the fly GTK+ style configuration
3301 static GdkAtom reread_rcfiles_atom = GDK_NONE;
3305 * Atoms used to control/reference X11 selections.
3306 @@ -142,7 +179,7 @@ static struct special_key
3311 +} const special_keys[] =
3314 {GDK_Down, 'k', 'd'},
3315 @@ -238,74 +275,94 @@ static struct special_key
3317 * When changing this, also update doc/gui_x11.txt and the usage message!!!
3319 -static struct cmdline_option
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 */
3331 +struct cmdline_option
3333 - /* We handle these options ourselfs */
3337 - {"-geometry", TRUE},
3338 - {"-reverse", FALSE},
3342 - {"-background", TRUE},
3344 - {"-foreground", TRUE},
3345 - {"-boldfont", TRUE},
3346 - {"-italicfont", TRUE},
3347 - {"+reverse", FALSE},
3349 - {"-iconic", FALSE},
3352 - {"-borderwidth", TRUE},
3354 - {"-scrollbarwidth", TRUE},
3358 + enum option_flags flags;
3362 - * Arguments handled by GTK (and GNOME) internally.
3364 -static char *gtk_cmdline_options[] =
3365 +static struct cmdline_option const cmdline_options[] =
3369 - "--gdk-no-debug=",
3374 - "--gtk-no-debug=",
3375 - "--g-fatal-warnings",
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 },
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 },
3396 + { "-bw", HAS_VALUE },
3397 + { "-borderwidth", HAS_VALUE },
3398 + { "-sw", HAS_VALUE },
3399 + { "-scrollbarwidth", HAS_VALUE },
3400 + { "-xrm", HAS_VALUE },
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 },
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 },
3424 #ifdef FEAT_GUI_GNOME
3425 - "--disable-sound",
3432 - "--disable-crash-dialog",
3433 - "--sm-client-id=",
3434 - "--sm-config-prefix=",
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 },
3456 static int gui_argc = 0;
3457 static char **gui_argv = NULL;
3459 +#ifdef USE_GNOME_SESSION
3460 +static char *restart_command = NULL;
3463 #ifdef FEAT_GUI_GNOME
3465 * Can't use Gnome if --socketid given
3466 @@ -323,117 +380,136 @@ static int using_gnome = 0;
3468 gui_mch_prepare(int *argc, char **argv)
3472 - char **gtk_option;
3473 + struct cmdline_option const *option;
3477 +#ifdef USE_GNOME_SESSION
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.
3486 - gui_argv = (char **)lalloc((long_u)(*argc * sizeof(char *)), FALSE);
3487 - if (gui_argv == NULL)
3490 - gui_argv[gui_argc++] = argv[0];
3492 - while (arg < *argc)
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)
3499 - if (i < XtNumber(cmdline_options))
3501 - /* Remember finding "-rv" or "-reverse" */
3502 - if (strcmp("-rv", argv[arg]) == 0
3503 - || strcmp("-reverse", argv[arg]) == 0)
3505 - found_reverse_arg = TRUE;
3507 - else if ((strcmp("-fn", argv[arg]) == 0
3508 - || strcmp("-font", argv[arg]) == 0) && arg + 1 < *argc)
3510 - font_argument = argv[arg + 1];
3512 - else if ((strcmp("-geometry", argv[arg]) == 0
3513 - || strcmp("-geom", argv[arg]) == 0) && arg + 1 < *argc)
3515 - gui.geom = (char_u *)g_strdup((const char *)argv[arg + 1]);
3517 + if (g_path_is_absolute(argv[0]) || strchr(argv[0], G_DIR_SEPARATOR) == NULL)
3519 + restart_command = argv[0];
3523 + char *current_dir;
3525 -#ifndef FEAT_GUI_GNOME
3526 - /* Found match in table, so move it into gui_argv */
3527 - gui_argv[gui_argc++] = argv[arg];
3529 - if (--*argc > arg)
3531 - mch_memmove(&argv[arg], &argv[arg + 1],
3532 - (*argc - arg) * sizeof(char *));
3533 - if (cmdline_options[i].has_value)
3535 -#ifndef FEAT_GUI_GNOME
3536 - /* Move the option argument as well. */
3537 - gui_argv[gui_argc++] = argv[arg];
3539 - if (--*argc > arg)
3540 - mch_memmove(&argv[arg], &argv[arg + 1],
3541 - (*argc - arg) * sizeof(char *));
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);
3553 - /* extract the gtk internal options */
3554 - gtk_option = gtk_cmdline_options;
3555 - while (*gtk_option)
3558 - while (arg < *argc)
3560 - if (strncmp(argv[arg], *gtk_option, strlen(*gtk_option)) == 0)
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");
3568 - gui_argv[gui_argc++] = argv[arg];
3570 + * Move all the entries in argv which are relevant to GTK+ and GNOME
3574 + gui_argv = (char **)alloc(*argc * sizeof(char *));
3576 - /* These arguments make gnome_init() print a message and exit.
3577 - * Must start the GUI for this, otherwise ":gui" will exit
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);
3586 - if (--*argc > arg)
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)
3595 - gui_argv[gui_argc++] = argv[arg];
3596 - if (--*argc > arg)
3597 - mch_memmove(&argv[arg], &argv[arg + 1],
3598 - (*argc - arg) * sizeof(char *));
3607 + gui_argv[gui_argc++] = argv[i++];
3611 + /* Don't waste CPU cycles on non-option arguments. */
3612 + if (argv[i][0] != '-')
3618 + /* Look for argv[i] in cmdline_options[] table. */
3619 + for (option = &cmdline_options[0]; option->name != NULL; ++option)
3621 + len = strlen(option->name);
3623 + if (strncmp(argv[i], option->name, len) == 0)
3625 + if (argv[i][len] == '\0')
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))
3633 + else if ((option->flags & COMPAT_LONGOPT)
3634 + && strcmp(argv[i], option->name + 1) == 0)
3636 + /* Replace the standard X arguments "-name" and "-display"
3637 + * with their GNU-style counterparts.
3639 + argv[i] = (char *)option->name;
3644 + if (option->name == NULL)
3650 + if (option->flags & IS_GTK_ARG)
3652 + /* Found match in table, so move it into gui_argv */
3653 + gui_argv[gui_argc++] = argv[i];
3657 + /* Remember finding "-rv" or "-reverse" */
3658 + if ((len == 3 && strcmp(argv[i], "-rv") == 0) ||
3659 + (len == 8 && strcmp(argv[i], "-reverse") == 0))
3661 + found_reverse_arg = TRUE;
3663 + else if ((len == 3 && strcmp(argv[i], "-fn") == 0) ||
3664 + (len == 5 && strcmp(argv[i], "-font") == 0))
3666 + if (i + 1 < *argc)
3667 + font_argument = argv[i + 1];
3669 + else if ((len == 5 && strcmp(argv[i], "-geom") == 0) ||
3670 + (len == 9 && strcmp(argv[i], "-geometry") == 0))
3672 + if (i + 1 < *argc)
3673 + gui.geom = vim_strsave((char_u *)argv[i + 1]);
3677 + /* These arguments make gnome_init() print a message and exit.
3678 + * Must start the GUI for this, otherwise ":gui" will exit
3681 + if (option->flags & NEEDS_GUI)
3682 + gui.starting = TRUE;
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)
3695 + if (option->flags & IS_GTK_ARG)
3696 + gui_argv[gui_argc++] = argv[i + 1];
3700 + mch_memmove(&argv[i], &argv[i + n_strip],
3701 + (*argc - i) * sizeof(char *));
3706 @@ -491,7 +567,7 @@ property_event(GtkWidget * widget, GdkEv
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)
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.
3719 -gui_mch_stop_blink()
3720 +gui_mch_stop_blink(void)
3724 @@ -583,7 +659,7 @@ blink_cb(gpointer data)
3725 * waiting time and shows the cursor.
3728 -gui_mch_start_blink()
3729 +gui_mch_start_blink(void)
3732 gtk_timeout_remove(blink_timer);
3733 @@ -754,7 +830,13 @@ key_press_event(GtkWidget * widget, GdkE
3736 && gui_is_menu_shortcut(string[0]))))
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. */
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,
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,
3758 gui_mch_init_check(void)
3763 /* This is needed to make the locale handling consistant between the GUI
3764 * and the rest of VIM. */
3768 #ifdef FEAT_GUI_GNOME
3769 if (gtk_socket_id == 0)
3775 -#ifdef FEAT_GUI_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().
3782 +#if defined(FEAT_GUI_GNOME) && !defined(HAVE_GTK2)
3784 + init_failed = gnome_init("vim", VIM_VERSION_SHORT, gui_argc, gui_argv);
3787 + /* Don't use gtk_init(), it exits on failure. */
3788 + init_failed = !gtk_init_check(&gui_argc, &gui_argv);
3790 - !gtk_init_check(&gui_argc, &gui_argv)))
3791 - /* Don't use gtk_init(), it exits on failure. */
3796 - EMSG(_("E233: cannot open display"));
3799 + EMSG(_("E233: cannot open display"));
3802 - vim_free(gui_argv);
3804 - /* This is needed for the X clipboard support.
3805 - * Not very nice, but it works...
3807 - gui.dpy = GDK_DISPLAY();
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.
3816 if (event->type != GDK_BUTTON_PRESS)
3819 @@ -1346,6 +1432,50 @@ button_press_event(GtkWidget * widget, G
3825 +/* GTK2 doesn't handle mouse buttons 4, 5, 6 and 7 the same way as GTK1.
3826 + It uses the new GdkEventScroll. */
3828 +scroll_event(GtkWidget *widget, GdkEventScroll *event)
3831 + int_u vim_modifiers;
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);
3837 + switch(event->direction)
3839 + case GDK_SCROLL_UP:
3842 + case GDK_SCROLL_DOWN:
3845 + default: /* We don't care about left and right... Yet. */
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;
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 */
3864 +#endif /* HAVE_GTK2 */
3869 button_release_event(GtkWidget * widget, GdkEventButton * event)
3870 @@ -1353,7 +1483,7 @@ button_release_event(GtkWidget * widget,
3872 int_u vim_modifiers;
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
3878 if (motion_repeat_timer)
3879 @@ -1553,6 +1683,161 @@ drag_data_received(GtkWidget *widget, Gd
3881 #endif /* GTK_DND */
3884 +#ifdef USE_GNOME_SESSION
3887 +sm_client_check_changed_any(GnomeClient *client,
3889 + GnomeDialogType type,
3892 + cmdmod_T save_cmdmod;
3893 + gboolean shutdown_cancelled;
3895 + save_cmdmod = cmdmod;
3897 +# ifdef FEAT_BROWSE
3898 + cmdmod.browse = TRUE;
3900 +# if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
3901 + cmdmod.confirm = TRUE;
3904 + /* If there are changed buffers, present the user with
3905 + * a dialog if possible, otherwise give an error message.
3907 + shutdown_cancelled = check_changed_any(FALSE);
3910 + cmdmod = save_cmdmod;
3911 + setcursor(); /* position the cursor */
3914 + /* If the user hit the [Cancel] button the whole shutdown
3915 + * will be cancelled. Wow, quite powerful feature (:
3917 + gnome_interaction_key_return(key, shutdown_cancelled);
3921 +sm_client_save_yourself(GnomeClient *client,
3923 + GnomeSaveStyle save_style,
3924 + gboolean shutdown,
3925 + GnomeInteractStyle interact_style,
3928 + char *session_path;
3929 + char *session_file;
3930 + char_u *escaped_filename;
3931 + char *mksession_cmdline;
3932 + gboolean success = FALSE;
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.
3939 + if (interact_style == GNOME_INTERACT_ANY)
3941 + gnome_client_request_interaction(client, GNOME_DIALOG_NORMAL,
3942 + &sm_client_check_changed_any, NULL);
3946 + ml_sync_all(FALSE, FALSE); /* preserve all swap files */
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.
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);
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.
3958 + escaped_filename = vim_strsave_escaped((char_u *)session_file, escape_chars);
3959 + mksession_cmdline = g_strconcat("mksession ", (const char *)escaped_filename, NULL);
3961 + /* Ignore errors here and let :mksession report the failure. */
3962 + vim_mkdir((char_u *)session_path, 0700);
3964 + if (do_cmdline_cmd((char_u *)mksession_cmdline) == FAIL)
3966 + mch_rmdir((char_u *)session_path);
3970 + const char *argv[6];
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.
3981 + argv[i++] = session_path;
3984 + gnome_client_set_discard_command(client, i, (char **)argv);
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.
3991 + argv[i++] = restart_command;
3995 + argv[i++] = session_file;
3998 + gnome_client_set_clone_command (client, i, (char **)argv);
3999 + gnome_client_set_restart_command(client, i, (char **)argv);
4004 + g_free(mksession_cmdline);
4005 + vim_free(escaped_filename);
4006 + g_free(session_file);
4007 + g_free(session_path);
4013 +sm_client_die(void)
4015 + STRNCPY(IObuff, _("Vim: Received \"die\" request from session manager\n"), IOSIZE);
4016 + IObuff[IOSIZE - 1] = NUL;
4021 +setup_save_yourself(void)
4023 + GnomeClient *client;
4025 + client = gnome_master_client();
4027 + if (client != NULL)
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);
4036 +#else /* !USE_GNOME_SESSION */
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)
4045 + Atom save_yourself_xatom;
4049 + save_yourself_xatom = GET_X_ATOM(save_yourself_atom);
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))
4057 /* check if WM_SAVE_YOURSELF isn't there yet */
4058 for (i = 0; i < count; ++i)
4059 - if (existing[i] == save_yourself_atom)
4061 + if (existing[i] == save_yourself_xatom)
4066 /* allocate an Atoms array which is one item longer */
4067 @@ -1581,9 +1871,9 @@ setup_save_yourself(void)
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),
4080 @@ -1591,6 +1881,49 @@ setup_save_yourself(void)
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).
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.
4097 + * The GNOME session support is much cooler anyway. Unlike this ugly
4098 + * WM_SAVE_YOURSELF hack it actually stores the session...
4100 + static GdkFilterReturn
4101 +global_event_filter(GdkXEvent *xev, GdkEvent *event, gpointer data)
4103 + XEvent *xevent = (XEvent *)xev;
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))
4111 + ml_sync_all(FALSE, FALSE); /* preserve all swap files */
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.
4117 + XSetCommand(GET_X_DISPLAY(), GDK_WINDOW_XWINDOW(gui.mainwin->window), NULL, 0);
4119 + return GDK_FILTER_REMOVE;
4122 + return GDK_FILTER_CONTINUE;
4125 +# else /* !HAVE_GTK2 */
4128 * GDK handler for X ClientMessage events.
4130 @@ -1603,7 +1936,7 @@ gdk_wm_protocols_filter(GdkXEvent *xev,
4134 - if ((Atom)(xevent->xclient.data.l[0]) == save_yourself_atom)
4135 + if (xevent->xclient.data.l[0] == GET_X_ATOM(save_yourself_atom))
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),
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.
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))
4155 event->any.type = GDK_DELETE;
4156 return GDK_FILTER_TRANSLATE;
4157 @@ -1631,6 +1964,9 @@ gdk_wm_protocols_filter(GdkXEvent *xev,
4159 return GDK_FILTER_REMOVE;
4161 +# endif /* !HAVE_GTK2 */
4163 +#endif /* !USE_GNOME_SESSION */
4167 @@ -1655,13 +1991,6 @@ mainwin_realize(GtkWidget *widget)
4168 #include "../runtime/vim48x48.xpm"
4171 - static GdkPixmap *icon = NULL;
4172 - static GdkBitmap *icon_mask = NULL;
4173 - static char **magick = vim32x32;
4174 - Window root_window;
4178 /* When started with "--echo-wid" argument, write window ID on stdout. */
4181 @@ -1671,11 +2000,30 @@ mainwin_realize(GtkWidget *widget)
4183 if (vim_strchr(p_go, GO_ICON) != NULL)
4186 - * Add an icon to the main window. For fun and convenience of the
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.
4193 + GList *icons = NULL;
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));
4199 + gtk_window_set_icon_list(GTK_WINDOW(gui.mainwin), icons);
4201 + g_list_foreach(icons, (GFunc)&g_object_unref, NULL);
4202 + g_list_free(icons);
4204 +#else /* !HAVE_GTK2 */
4205 + static GdkPixmap *icon = NULL;
4206 + static GdkBitmap *icon_mask = NULL;
4207 + static char **magick = vim32x32;
4208 + Window root_window;
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.
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 */
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);
4230 + gdk_window_add_filter(NULL, &global_event_filter, NULL);
4232 + gdk_add_client_message_filter(wm_protocols_atom, &gdk_wm_protocols_filter, NULL);
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.
4240 setup_save_yourself();
4242 #ifdef FEAT_CLIENTSERVER
4243 @@ -1711,7 +2066,8 @@ mainwin_realize(GtkWidget *widget)
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);
4249 + (void)serverRegisterName(GET_X_DISPLAY(), serverDelayedStartName);
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
4257 - serverChangeRegisteredWindow(GDK_DISPLAY(),
4258 - GDK_WINDOW_XWINDOW(gui.mainwin->window));
4259 + serverChangeRegisteredWindow(GET_X_DISPLAY(),
4260 + GDK_WINDOW_XWINDOW(gui.mainwin->window));
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)
4268 +#ifdef GTK2_MULTIHEAD
4270 +drawarea_screen_changed(GtkWidget *widget, GdkScreen *previous_screen)
4272 + GdkDisplay *display;
4274 + if (!gtk_widget_has_screen(widget))
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...
4281 + display = gtk_widget_get_display(widget);
4282 + gui.dpy = (display != NULL) ? GDK_DISPLAY_XDISPLAY(display) : NULL;
4284 + if (gui.text_context != NULL)
4285 + g_object_unref(gui.text_context);
4287 + /* Create a new PangoContext for this screen,
4288 + * and initialize it with the current font if necessary.
4290 + gui.text_context = gtk_widget_create_pango_context(widget);
4291 + pango_context_set_base_dir(gui.text_context, PANGO_DIRECTION_LTR);
4293 + if (gui.norm_font != NULL)
4294 + gui_mch_init_font(p_guifont, 0);
4296 +#endif /* GTK2_MULTIHEAD */
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)
4305 +#ifndef GTK2_MULTIHEAD
4306 + /* for multihead the "screen_changed" signal is used instead */
4307 + gui.dpy = GET_X_DISPLAY();
4313 @@ -1774,6 +2165,43 @@ drawarea_realize_cb(GtkWidget *widget)
4317 + * Properly clean up on shutdown.
4320 +drawarea_unrealize_cb(GtkWidget *widget)
4323 + if (gui.ascii_glyphs != NULL)
4325 + pango_glyph_string_free(gui.ascii_glyphs);
4326 + gui.ascii_glyphs = NULL;
4328 + if (gui.ascii_font != NULL)
4330 + g_object_unref(gui.ascii_font);
4331 + gui.ascii_font = NULL;
4334 + g_object_unref(gui.text_context);
4335 + gui.text_context = NULL;
4337 + g_object_unref(gui.text_gc);
4338 + gui.text_gc = NULL;
4340 + gdk_gc_unref(gui.text_gc);
4341 + gui.text_gc = NULL;
4347 +drawarea_style_set_cb(GtkWidget *widget, GtkStyle *previous_style)
4349 + gui_mch_new_colors();
4351 +#endif /* HAVE_GTK2 */
4354 * Callback routine for the "delete_event" signal on the toplevel window.
4355 * Tries to vim gracefully, or refuses to exit with changed buffers.
4357 @@ -1785,6 +2213,9 @@ delete_event_cb(GtkWidget *wgt, gpointer
4361 +/* GTK2_FIXME: Handle target "UTF8_STRING"?
4362 + * (Actually this could be done for the old GTK+ too, I think.)
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}
4371 +#ifdef FEAT_TOOLBAR
4375 - * Initialize the X GUI. Create all the windows, set up all the call-backs
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
4385 +icon_size_changed_foreach(GtkWidget *widget, gpointer user_data)
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))
4397 + if (gtk_image_get_storage_type(GTK_IMAGE(widget)) == GTK_IMAGE_ICON_SET)
4399 + GtkIconSet *icon_set;
4400 + GtkIconSize icon_size;
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);
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);
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);
4418 + else if (GTK_IS_CONTAINER(widget))
4421 + gtk_container_foreach(GTK_CONTAINER(widget),
4422 + &icon_size_changed_foreach,
4426 +# endif /* HAVE_GTK2 */
4428 - /* Use GtkSocket from another app. */
4429 - plug = GTK_PLUG(gui.mainwin = gtk_plug_new(gtk_socket_id));
4431 +set_toolbar_style(GtkToolbar *toolbar, const char *style_string)
4433 + char **style_values;
4435 + gboolean text = FALSE;
4436 + gboolean icons = FALSE;
4437 + gboolean tooltips = FALSE;
4438 + GtkToolbarStyle style = GTK_TOOLBAR_ICONS;
4440 + gboolean horiz = FALSE;
4441 + GtkIconSize size = GTK_ICON_SIZE_SMALL_TOOLBAR;
4444 - /* Pretend we never wanted it if it failed (get own window) */
4445 + style_values = g_strsplit(style_string, ",", -1);
4447 + for (value = &style_values[0]; *value != NULL; ++value)
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;
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;
4461 + g_strfreev(style_values);
4463 + if (text) style = GTK_TOOLBAR_TEXT;
4464 + if (text && icons) style = GTK_TOOLBAR_BOTH;
4466 + if (text && icons && horiz) style = GTK_TOOLBAR_BOTH_HORIZ;
4468 + gtk_toolbar_set_style(toolbar, style);
4470 + gtk_toolbar_set_tooltips(toolbar, tooltips);
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);
4481 +#endif /* FEAT_TOOLBAR */
4484 + * Initialize the X GUI. Create all the windows, set up all the call-backs
4486 + * Returns OK for success, FAIL when the GUI can't be started.
4493 +#if defined(FEAT_GUI_GNOME) && defined(HAVE_GTK2)
4495 + gnome_program_init("vim", VIM_VERSION_SHORT,
4496 + LIBGNOMEUI_MODULE, gui_argc, gui_argv,
4499 + vim_free(gui_argv);
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.
4508 + set_option_value((char_u *)"termencoding", 0L, (char_u *)"utf-8", 0);
4510 +# ifdef FEAT_TOOLBAR
4511 + gui_gtk_register_stock_icons();
4514 + /* FIXME: Need to install the classic icons and a gtkrc.classic file. */
4515 + gtk_rc_parse("gtkrc");
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);
4526 + /* Initialise atoms */
4527 + compound_text_atom = gdk_atom_intern("COMPOUND_TEXT", FALSE);
4528 + text_atom = gdk_atom_intern("TEXT", FALSE);
4530 + /* Set default foreground and background colors. */
4531 + gui.norm_pixel = gui.def_norm_pixel;
4532 + gui.back_pixel = gui.def_back_pixel;
4534 + if (gtk_socket_id != 0)
4538 + /* Use GtkSocket from another app. */
4539 + plug = GTK_PLUG(gui.mainwin = gtk_plug_new(gtk_socket_id));
4541 + /* Pretend we never wanted it if it failed (get own window) */
4542 if (!plug->socket_window)
4544 /* Failed - using straightforward window */
4545 @@ -1840,22 +2385,45 @@ gui_mch_init()
4547 gui.mainwin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
4550 + gtk_widget_set_name(gui.mainwin, "vim-main-window");
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);
4559 gtk_window_set_policy(GTK_WINDOW(gui.mainwin), TRUE, TRUE, TRUE);
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);
4566 + gtk_signal_connect(GTK_OBJECT(gui.mainwin), "delete_event",
4567 + GTK_SIGNAL_FUNC(&delete_event_cb), NULL);
4569 gtk_signal_connect(GTK_OBJECT(gui.mainwin), "realize",
4570 - GTK_SIGNAL_FUNC(mainwin_realize), NULL);
4571 + GTK_SIGNAL_FUNC(&mainwin_realize), NULL);
4573 - /* FIXME: this should eventually get the accelgroup of the gui.mainwin */
4575 + gui.accel_group = gtk_accel_group_new();
4576 + gtk_window_add_accel_group(GTK_WINDOW(gui.mainwin), gui.accel_group);
4578 gui.accel_group = gtk_accel_group_get_default();
4581 vbox = gtk_vbox_new(FALSE, 0);
4583 #ifdef FEAT_GUI_GNOME
4585 - gnome_app_set_contents(GNOME_APP(gui.mainwin), vbox);
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);
4591 + gnome_app_set_contents(GNOME_APP(gui.mainwin), vbox);
4596 @@ -1866,15 +2434,23 @@ gui_mch_init()
4598 /* create the menubar and handle */
4599 gui.menubar = gtk_menu_bar_new();
4600 - gtk_widget_show(gui.menubar);
4602 # ifdef FEAT_GUI_GNOME
4606 + BonoboDockItem *dockitem;
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);
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);
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 */
4626 + gtk_widget_show(gui.menubar);
4630 # endif /* FEAT_GUI_GNOME */
4631 - gtk_box_pack_start(GTK_BOX(vbox), gui.menubar, FALSE, TRUE, 0);
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);
4637 #endif /* FEAT_MENU */
4640 - /* create the toolbar */
4641 - if (strstr((const char *)p_toolbar, "text")
4642 - && strstr((const char *)p_toolbar, "icons"))
4644 - gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_BOTH);
4645 - else if (strstr((const char *)p_toolbar, "text"))
4647 - gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_TEXT);
4650 - gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS);
4652 - gtk_widget_show(gui.toolbar);
4653 + /* create the toolbar */
4655 /* some aesthetics on the toolbar */
4656 + gtk_rc_parse_string("style \"vim-toolbar-style\" {"
4657 + " GtkToolbar::button_relief = GTK_RELIEF_NONE\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");
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);
4667 + set_toolbar_style(GTK_TOOLBAR(gui.toolbar), (const char *)p_toolbar);
4669 # ifdef FEAT_GUI_GNOME
4670 - if (using_gnome && gui.toolbar)
4674 + BonoboDockItem *dockitem;
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);
4682 GtkWidget *dockitem;
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);
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()
4696 gtk_container_border_width(GTK_CONTAINER(gui.toolbar), 2);
4697 + gtk_widget_show(gui.toolbar);
4700 - else if (!using_gnome)
4702 # endif /* FEAT_GUI_GNOME */
4705 gtk_container_border_width(GTK_CONTAINER(gui.toolbar), 1);
4706 - gtk_box_pack_start(GTK_BOX(vbox), gui.toolbar, FALSE, TRUE, 0);
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);
4712 #endif /* USE_TOOLBARS */
4714 @@ -1937,6 +2536,11 @@ gui_mch_init()
4716 gui.drawarea = gtk_drawing_area_new();
4718 +#ifdef GTK2_MULTIHEAD
4719 + g_signal_connect(G_OBJECT(gui.drawarea), "screen_changed",
4720 + G_CALLBACK(&drawarea_screen_changed), NULL);
4723 /* Determine which events we will filter. */
4724 gtk_widget_set_events(gui.drawarea,
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);
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);
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.
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);
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);
4752 gui.visibility = GDK_VISIBILITY_UNOBSCURED;
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);
4760 + g_signal_connect_after(G_OBJECT(gui.drawarea), "style_set",
4761 + G_CALLBACK(&drawarea_style_set_cb), NULL);
4763 reread_rcfiles_atom = gdk_atom_intern("_GTK_READ_RCFILES", FALSE);
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);
4773 + g_signal_connect(G_OBJECT(gui.drawarea), "scroll_event",
4774 + G_CALLBACK(scroll_event), NULL);
4776 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "button_release_event",
4777 GTK_SIGNAL_FUNC(button_release_event), NULL);
4779 @@ -2025,10 +2643,10 @@ gui_mch_init()
4781 * Add selection targets for PRIMARY and CLIPBOARD selections.
4783 - gtk_selection_add_targets(gui.drawarea, (long)GDK_SELECTION_PRIMARY,
4784 + gtk_selection_add_targets(gui.drawarea, (GdkAtom)GDK_SELECTION_PRIMARY,
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,
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()
4796 +#if (defined(UNIX) && defined(USE_GNOME_SESSION)) || defined(PROTO)
4798 + * This is called from gui_start() after a fork() has been done.
4799 + * We have to tell the session manager our new PID.
4802 +gui_mch_forked(void)
4804 + GnomeClient *client;
4806 + client = gnome_master_client();
4808 + if (client != NULL)
4809 + gnome_client_set_process_id(client, getpid());
4814 * Called when the foreground or background color has been changed.
4817 -gui_mch_new_colors()
4818 +gui_mch_new_colors(void)
4820 /* This used to change the graphics contexts directly but we are currently
4821 * manipulating them where desired.
4823 if (gui.drawarea && gui.drawarea->window)
4826 + GdkColor color = { 0, };
4828 color.pixel = gui.back_pixel;
4829 gdk_window_set_background(gui.drawarea->window, &color);
4837 +get_menu_tool_width(void)
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)
4849 + width += gui.toolbar_h->allocation.width;
4857 +get_menu_tool_height(void)
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)
4868 + height += gui.menubar_h->allocation.height;
4871 + if (!using_gnome && gui.menubar
4872 + && GTK_WIDGET_REALIZED(gui.menubar)
4873 + && GTK_WIDGET_VISIBLE(gui.menubar))
4875 + height += gui.menubar->allocation.height;
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)
4888 + height += gui.toolbar_h->allocation.height;
4891 + if (!using_gnome && gui.toolbar
4892 + && GTK_WIDGET_REALIZED(gui.toolbar)
4893 + && GTK_WIDGET_VISIBLE(gui.toolbar))
4895 + height += gui.toolbar->allocation.height;
4899 + if (xim_get_status_area_height())
4900 + height += gui.char_height + 2;
4906 +#endif /* HAVE_GTK2 */
4910 update_window_manager_hints(void)
4912 @@ -2072,25 +2783,38 @@ update_window_manager_hints(void)
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();
4921 + width += get_menu_tool_width();
4922 + height += get_menu_tool_height();
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)
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;
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+.
4945 + gtk_window_set_geometry_hints(GTK_WINDOW(gui.mainwin), gui.mainwin,
4946 + &geometry, geometry_mask);
4948 gtk_window_set_geometry_hints(GTK_WINDOW(gui.mainwin), gui.formwin,
4949 &geometry, geometry_mask);
4952 old_height = height;
4953 old_char_width = gui.char_width;
4954 @@ -2112,6 +2836,7 @@ form_configure_event(GtkWidget * widget,
4960 * X11 based inter client communication handler.
4962 @@ -2133,6 +2858,7 @@ client_event_cb(GtkWidget *widget, GdkEv
4966 +#endif /* !HAVE_GTK2 */
4969 * Function called when window already closed.
4970 @@ -2142,23 +2868,30 @@ client_event_cb(GtkWidget *widget, GdkEv
4972 destroy_callback(void)
4974 - /* preserve files and exit */
4976 - if (gtk_main_level() > 0)
4979 + gui.mainwin = NULL;
4981 + if (!exiting) /* only do anything if the destroy was unexpected */
4983 + STRNCPY(IObuff, _("Vim: Main window unexpectedly destroyed\n"), IOSIZE);
4984 + IObuff[IOSIZE - 1] = NUL;
4990 * Open the GUI window which was created by a call to gui_mch_init().
4998 if (gui_win_x != -1 && gui_win_y != -1)
5000 + gtk_window_move(GTK_WINDOW(gui.mainwin), gui_win_x, gui_win_y);
5002 gtk_widget_set_uposition(gui.mainwin, gui_win_x, gui_win_y);
5005 /* Determine user specified geometry, if present. */
5006 if (gui.geom != NULL)
5007 @@ -2172,8 +2905,12 @@ gui_mch_open()
5008 if (mask & HeightValue)
5010 if (mask & (XValue | YValue))
5012 + gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
5014 gtk_widget_set_uposition(gui.mainwin, x, y);
5017 + vim_free(gui.geom);
5021 @@ -2209,12 +2946,14 @@ gui_mch_open()
5022 gtk_signal_connect(GTK_OBJECT(gui.mainwin), "destroy",
5023 GTK_SIGNAL_FUNC(destroy_callback), NULL);
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.
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);
5035 #ifdef FEAT_HANGULIN
5036 hangul_keyboard_set();
5037 @@ -2239,14 +2978,48 @@ gui_mch_open()
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);
5045 gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received",
5046 GTK_SIGNAL_FUNC(drag_data_received), NULL);
5049 - gtk_widget_show(gui.mainwin);
5050 +#if defined(FEAT_GUI_GNOME) && defined(HAVE_GTK2) && defined(FEAT_MENU)
5052 + unsigned long menubar_handler = 0;
5053 +# ifdef FEAT_TOOLBAR
5054 + unsigned long toolbar_handler = 0;
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.
5063 + if (vim_strchr(p_go, GO_MENUS) == NULL)
5064 + menubar_handler = g_signal_connect_after(gui.menubar_h, "show",
5065 + G_CALLBACK(>k_widget_hide),
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(>k_widget_hide),
5074 + gtk_widget_show(gui.mainwin);
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);
5088 @@ -2256,7 +3029,8 @@ gui_mch_open()
5090 gui_mch_exit(int rc)
5093 + if (gui.mainwin != NULL)
5094 + gtk_object_destroy(GTK_OBJECT(gui.mainwin));
5098 @@ -2265,9 +3039,13 @@ gui_mch_exit(int rc)
5100 gui_mch_get_winpos(int *x, int *y)
5103 + gtk_window_get_position(GTK_WINDOW(gui.mainwin), x, y);
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);
5112 @@ -2278,8 +3056,40 @@ gui_mch_get_winpos(int *x, int *y)
5114 gui_mch_set_winpos(int x, int y)
5117 + gtk_window_move(GTK_WINDOW(gui.mainwin), x, y);
5119 gdk_window_move(gui.mainwin->window, x, y);
5124 +static gboolean resize_idle_installed = FALSE;
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.
5131 +force_shell_resize_idle(gpointer data)
5133 + if (gui.mainwin != NULL && GTK_WIDGET_MAPPED(gui.mainwin))
5138 + gtk_window_get_size(GTK_WINDOW(gui.mainwin), &width, &height);
5140 + width -= get_menu_tool_width();
5141 + height -= get_menu_tool_height();
5143 + gui_resize_shell(width, height);
5146 + resize_idle_installed = FALSE;
5147 + return FALSE; /* don't call me again */
5149 +#endif /* HAVE_GTK2 */
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)
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
5164 gtk_form_set_size(GTK_FORM(gui.formwin), width, height);
5167 /* give GTK+ a chance to put all widget's into place */
5170 /* this will cause the proper resizement to happen too */
5171 update_window_manager_hints();
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.
5178 + width += get_menu_tool_width();
5179 + height += get_menu_tool_height();
5181 + gtk_window_resize(GTK_WINDOW(gui.mainwin), width, height);
5183 + if (!resize_idle_installed)
5185 + resize_idle_installed = TRUE;
5186 + g_idle_add_full(GDK_PRIORITY_EVENTS + 10,
5187 + &force_shell_resize_idle, NULL, NULL);
5193 @@ -2317,10 +3146,24 @@ gui_mch_set_shellsize(int width, int hei
5195 gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
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))
5204 + GdkScreen* screen;
5206 + screen = gtk_widget_get_screen(gui.mainwin);
5208 + *screen_w = gdk_screen_get_width(screen);
5209 + *screen_h = gdk_screen_get_height(screen) - p_ghr;
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;
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.
5226 -#ifdef FEAT_TOOLBAR
5228 + *screen_w -= get_menu_tool_width();
5229 + *screen_h -= get_menu_tool_height();
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;
5239 if (gui.menubar && GTK_WIDGET_REALIZED(gui.menubar)
5240 && GTK_WIDGET_VISIBLE(gui.menubar))
5241 *screen_h -= gui.menubar->allocation.height;
5246 +#if defined(FEAT_TITLE) || defined(PROTO)
5248 +gui_mch_settitle(char_u *title, char_u *icon)
5251 + if (output_conv.vc_type != CONV_NONE)
5252 + title = string_convert(&output_conv, title, NULL);
5255 + gtk_window_set_title(GTK_WINDOW(gui.mainwin), (const char *)title);
5258 + if (output_conv.vc_type != CONV_NONE)
5264 #if defined(FEAT_MENU) || defined(PROTO)
5266 -gui_mch_enable_menu(int flag)
5267 +gui_mch_enable_menu(int showit)
5270 - gtk_widget_show(gui.menubar);
5271 + GtkWidget *widget;
5273 +# ifdef FEAT_GUI_GNOME
5275 + widget = gui.menubar_h;
5277 - gtk_widget_hide(gui.menubar);
5279 + widget = gui.menubar;
5281 - update_window_manager_hints();
5282 + if (!showit != !GTK_WIDGET_VISIBLE(widget))
5285 + gtk_widget_show(widget);
5287 + gtk_widget_hide(widget);
5289 + update_window_manager_hints();
5294 @@ -2359,59 +3237,34 @@ gui_mch_enable_menu(int flag)
5296 gui_mch_show_toolbar(int showit)
5298 + GtkWidget *widget;
5300 if (gui.toolbar == NULL)
5305 # ifdef FEAT_GUI_GNOME
5306 - if (using_gnome && GTK_WIDGET_VISIBLE(gui.toolbar_h))
5308 - gtk_widget_hide(gui.toolbar_h);
5309 - /* wait util this gets done on the server side. */
5310 - update_window_manager_hints();
5313 - if (!using_gnome && GTK_WIDGET_VISIBLE(gui.toolbar))
5315 - gtk_widget_hide(gui.toolbar);
5316 - /* wait util this gets done on the server side. */
5317 - update_window_manager_hints();
5321 + widget = gui.toolbar_h;
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);
5332 -# ifdef FEAT_GUI_GNOME
5333 - if (using_gnome && !GTK_WIDGET_VISIBLE(gui.toolbar_h))
5335 - gtk_widget_show(gui.toolbar_h);
5336 - update_window_manager_hints();
5340 - if (!using_gnome && !GTK_WIDGET_VISIBLE(gui.toolbar))
5342 - gtk_widget_show(gui.toolbar);
5343 - update_window_manager_hints();
5345 + widget = gui.toolbar;
5347 - if (strstr((const char *)p_toolbar, "tooltips"))
5348 - gtk_toolbar_set_tooltips(GTK_TOOLBAR(gui.toolbar), TRUE);
5350 - gtk_toolbar_set_tooltips(GTK_TOOLBAR(gui.toolbar), FALSE);
5352 + set_toolbar_style(GTK_TOOLBAR(gui.toolbar), (const char *)p_toolbar);
5354 + if (!showit != !GTK_WIDGET_VISIBLE(widget))
5357 + gtk_widget_show(widget);
5359 + gtk_widget_hide(widget);
5361 + update_window_manager_hints();
5366 +#endif /* FEAT_TOOLBAR */
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)
5375 gui_T *vw = (gui_T *)cbdata;
5376 - GtkFontSelectionDialog *fs = (GtkFontSelectionDialog *)vw->fontdlg;
5377 + GtkFontSelectionDialog *fs;
5379 + fs = GTK_FONT_SELECTION_DIALOG(vw->fontdlg);
5382 - g_free(vw->fontname);
5383 + if (vw->fontname != NULL)
5384 + vim_free(vw->fontname);
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);
5391 if (gtk_main_level() > 0)
5394 @@ -2454,13 +3309,35 @@ font_sel_destroy(GtkWidget *wgt, gpointe
5395 if (gtk_main_level() > 0)
5398 +#endif /* !HAVE_GTK2 */
5401 gui_mch_adjust_charsize(void)
5404 + PangoFontMetrics *metrics;
5408 + metrics = pango_context_get_metrics(gui.text_context, gui.norm_font,
5409 + pango_context_get_language(gui.text_context));
5411 + ascent = pango_font_metrics_get_ascent(metrics);
5412 + descent = pango_font_metrics_get_descent(metrics);
5414 + pango_font_metrics_unref(metrics);
5416 + gui.char_height = PANGO_PIXELS(ascent + descent) + p_linespace;
5417 + gui.char_ascent = PANGO_PIXELS(ascent) + p_linespace / 2;
5419 +#else /* !HAVE_GTK2 */
5421 gui.char_height = gui.current_font->ascent + gui.current_font->descent
5423 gui.char_ascent = gui.current_font->ascent + p_linespace / 2;
5425 +#endif /* !HAVE_GTK2 */
5430 @@ -2492,8 +3369,9 @@ gui_mch_get_fontset(char_u *name, int re
5432 return (GuiFontset)font;
5435 +#endif /* FEAT_XFONTSET */
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)
5443 GtkFontSelectionDialog *fsd = NULL;
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)
5459 - g_free(gui.fontname);
5460 + vim_free(gui.fontname);
5461 gui.fontname = NULL;
5463 gtk_window_position(GTK_WINDOW(gui.fontdlg), GTK_WIN_POS_MOUSE);
5464 gtk_widget_show(gui.fontdlg);
5467 static gchar *spacings[] = {"c", "m", NULL};
5469 @@ -2550,6 +3428,109 @@ gui_mch_font_dialog(char_u *oldval)
5471 return vim_strsave(gui.fontname);
5473 +#endif /* !HAVE_GTK2 */
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.
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.
5486 +gui_mch_font_dialog(char_u *oldval)
5488 + GtkWidget *dialog;
5490 + char_u *fontname = NULL;
5492 + dialog = gtk_font_selection_dialog_new(NULL);
5494 + gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(gui.mainwin));
5495 + gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE);
5497 + if (oldval != NULL && oldval[0] != NUL)
5499 + if (output_conv.vc_type != CONV_NONE)
5500 + oldval = string_convert(&output_conv, oldval, NULL);
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)
5508 + response = gtk_dialog_run(GTK_DIALOG(dialog));
5510 + if (response == GTK_RESPONSE_OK)
5514 + name = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(dialog));
5518 + if (input_conv.vc_type == CONV_NONE)
5519 + fontname = vim_strsave((char_u *)name);
5521 + fontname = string_convert(&input_conv, (char_u *)name, NULL);
5526 + if (response != GTK_RESPONSE_NONE)
5527 + gtk_widget_destroy(dialog);
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
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.
5543 +get_styled_font_variants(void)
5545 + PangoFontDescription *bold_font_desc;
5546 + PangoFont *plain_font;
5547 + PangoFont *bold_font;
5549 + gui.font_can_bold = 0;
5551 + plain_font = pango_context_load_font(gui.text_context, gui.norm_font);
5553 + if (plain_font == NULL)
5556 + bold_font_desc = pango_font_description_copy(gui.norm_font);
5557 + pango_font_description_set_weight(bold_font_desc, PANGO_WEIGHT_BOLD);
5559 + bold_font = pango_context_load_font(gui.text_context, bold_font_desc);
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.
5565 + if (bold_font != NULL)
5567 + gui.font_can_bold = (bold_font != plain_font);
5568 + g_object_unref(bold_font);
5571 + pango_font_description_free(bold_font_desc);
5572 + g_object_unref(plain_font);
5575 +#else /* !HAVE_GTK2 */
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
5583 +#endif /* !HAVE_GTK2 */
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.
5592 +ascii_glyph_table_init(void)
5594 + char_u ascii_chars[128];
5595 + PangoAttrList *attr_list;
5599 + if (gui.ascii_glyphs != NULL)
5600 + pango_glyph_string_free(gui.ascii_glyphs);
5602 + if (gui.ascii_font != NULL)
5603 + g_object_unref(gui.ascii_font);
5605 + gui.ascii_glyphs = NULL;
5606 + gui.ascii_font = NULL;
5608 + /* For safety, fill in question marks for the control characters. */
5609 + for (i = 0; i < 32; ++i)
5610 + ascii_chars[i] = '?';
5612 + for (; i < 127; ++i)
5613 + ascii_chars[i] = i;
5615 + ascii_chars[i] = '?';
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);
5621 + if (item_list != NULL && item_list->next == NULL) /* play safe */
5625 + item = (PangoItem *)item_list->data;
5627 + gui.ascii_font = item->analysis.font;
5628 + g_object_ref(gui.ascii_font);
5630 + gui.ascii_glyphs = pango_glyph_string_new();
5632 + pango_shape((const char *)ascii_chars, sizeof(ascii_chars),
5633 + &item->analysis, gui.ascii_glyphs);
5635 + g_return_if_fail(gui.ascii_glyphs->num_glyphs == sizeof(ascii_chars));
5637 + for (i = 0; i < gui.ascii_glyphs->num_glyphs; ++i)
5638 + gui.ascii_glyphs->glyphs[i].geometry.width = gui.char_width * PANGO_SCALE;
5640 + pango_item_free(item);
5643 + g_list_free(item_list);
5644 + pango_attr_list_unref(attr_list);
5646 +#endif /* HAVE_GTK2 */
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
5652 gui_mch_init_font(char_u *font_name, int fontset)
5655 + PangoFontDescription *font_desc;
5656 + PangoFontMetrics *metrics;
5661 + /* If font_name is NULL, this means to use the default, which should
5662 + * be present on all proper Pango/fontconfig installations.
5664 + if (font_name == NULL)
5665 + font_name = (char_u *)DEFAULT_FONT;
5667 + font_desc = gui_mch_get_font(font_name, FALSE);
5669 + if (font_desc == NULL)
5672 + gui_mch_free_font(gui.norm_font);
5673 + gui.norm_font = font_desc;
5675 + pango_context_set_font_description(gui.text_context, font_desc);
5677 + metrics = pango_context_get_metrics(gui.text_context, font_desc,
5678 + pango_context_get_language(gui.text_context));
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);
5684 + pango_font_metrics_unref(metrics);
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;
5690 + /* A zero width may cause a crash. Happens for semi-invalid fontsets. */
5691 + if (gui.char_width <= 0)
5692 + gui.char_width = 8;
5694 + /* Set the fontname, which will be used for information purposes */
5695 + hl_set_font_name(font_name);
5697 + get_styled_font_variants();
5698 + ascii_glyph_table_init();
5700 +#else /* !HAVE_GTK2 */
5702 GdkFont *font = NULL;
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);
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);
5722 @@ -2671,7 +3764,7 @@ gui_mch_init_font(char_u *font_name, int
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)
5731 @@ -2682,12 +3775,12 @@ gui_mch_init_font(char_u *font_name, int
5732 gui.char_width = gdk_string_width(font, "xW") / 2;
5738 gui.norm_font = font;
5739 -#ifdef FEAT_XFONTSET
5740 +# ifdef FEAT_XFONTSET
5741 gui.fontset = NOFONTSET;
5744 gui.char_width = ((XFontStruct *)
5745 GDK_FONT_XFONT(font))->max_bounds.width;
5747 @@ -2710,6 +3803,7 @@ gui_mch_init_font(char_u *font_name, int
5750 gui_gtk_synch_fonts();
5751 +#endif /* !HAVE_GTK2 */
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())
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(" ");
5763 - gtk_widget_set_usize(label, 20, gui.char_height + 2);
5764 - gtk_box_pack_end(GTK_BOX(GTK_BIN(gui.mainwin)->child), label,
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);
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);
5778 @@ -2741,37 +3835,116 @@ gui_mch_init_font(char_u *font_name, int
5780 gui_mch_get_font(char_u *name, int report_error)
5784 + PangoFontDescription *font;
5789 /* can't do this when GUI is not running */
5790 if (!gui.in_use || name == NULL)
5795 + if (output_conv.vc_type != CONV_NONE)
5799 + buf = string_convert(&output_conv, name, NULL);
5800 + font = pango_font_description_from_string((const char *)buf);
5804 + font = pango_font_description_from_string((const char *)name);
5808 + PangoFont *real_font;
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);
5815 + real_font = pango_context_load_font(gui.text_context, font);
5817 + if (real_font == NULL)
5819 + pango_font_description_free(font);
5823 + g_object_unref(real_font);
5826 + font = gdk_font_load((const char *)name);
5827 +#endif /* !HAVE_GTK2 */
5832 EMSG2(_("E235: Unknown font: %s"), name);
5838 - /* reference this font as being in use */
5839 - gdk_font_ref(font);
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 :/
5845 + PangoLayout *layout;
5847 + int last_width = -1;
5848 + const char test_chars[] = { 'W', 'i', ',', 'x' }; /* arbitrary */
5850 + layout = pango_layout_new(gui.text_context);
5851 + pango_layout_set_font_description(layout, font);
5853 + for (i = 0; i < G_N_ELEMENTS(test_chars); ++i)
5857 + pango_layout_set_text(layout, &test_chars[i], 1);
5858 + pango_layout_get_size(layout, &width, NULL);
5860 + if (last_width >= 0 && width != last_width)
5862 + pango_font_description_free(font);
5867 + last_width = width;
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);
5875 +#else /* !HAVE_GTK2 */
5877 - EMSG2(_("E236: Font \"%s\" is not fixed-width"), name);
5878 - gdk_font_unref(font);
5879 + XFontStruct *xfont;
5882 + /* reference this font as being in use */
5883 + gdk_font_ref(font);
5885 + /* Check that this is a mono-spaced font.
5887 + xfont = (XFontStruct *) GDK_FONT_XFONT(font);
5889 + if (xfont->max_bounds.width != xfont->min_bounds.width)
5891 + gdk_font_unref(font);
5895 +#endif /* !HAVE_GTK2 */
5898 + EMSG2(_("E236: Font \"%s\" is not fixed-width"), name);
5900 - return (GuiFont)font;
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)
5910 gui.current_font = font;
5914 #if defined(FEAT_XFONTSET) || defined(PROTO)
5916 @@ -2801,7 +3975,11 @@ gui_mch_set_fontset(GuiFontset fontset)
5917 gui_mch_free_font(GuiFont font)
5920 - gdk_font_unref((GdkFont *)font);
5922 + pango_font_description_free(font);
5924 + gdk_font_unref(font);
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)
5932 if (fontset != NOFONTSET)
5933 - gdk_font_unref((GdkFont *)fontset);
5934 + gdk_font_unref(fontset);
5938 @@ -2826,8 +4004,7 @@ gui_mch_free_fontset(GuiFontset fontset)
5940 gui_mch_get_color(char_u * name)
5943 - static char *(vimnames[][2]) =
5944 + static const char *const (vimnames[][2]) =
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)
5950 while (name != NULL)
5958 + parsed = gdk_color_parse((const char *)name, &color);
5960 +#ifndef HAVE_GTK2 /* ohh, lovely GTK+ 2, eases our pain :) */
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.
5969 - parsed = gdk_color_parse((const gchar *)name, &color);
5974 @@ -2871,14 +4050,18 @@ gui_mch_get_color(char_u * name)
5978 - saved = strdup(current);
5979 + saved = g_strdup(current);
5980 setlocale(LC_ALL, "C");
5982 parsed = gdk_color_parse((const gchar *)name, &color);
5984 setlocale(LC_ALL, saved);
5991 +#endif /* !HAVE_GTK2 */
5995 @@ -2925,9 +4108,190 @@ gui_mch_set_bg_color(guicolor_T color)
5996 gui.bgcolor->pixel = (Pixel) color;
6001 +draw_glyph_string(int row, int col, int num_cells, int flags,
6002 + PangoFont *font, PangoGlyphString *glyphs)
6004 + if (!(flags & DRAW_TRANSP))
6006 + gdk_gc_set_foreground(gui.text_gc, gui.bgcolor);
6008 + gdk_draw_rectangle(gui.drawarea->window,
6013 + num_cells * gui.char_width,
6017 + gdk_gc_set_foreground(gui.text_gc, gui.fgcolor);
6019 + gdk_draw_glyphs(gui.drawarea->window,
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,
6036 +#endif /* HAVE_GTK2 */
6039 gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
6042 + char_u *conv_buf = NULL;
6043 + PangoAttrList *attr_list;
6045 + PangoGlyphString *glyphs;
6046 + int item_offset = 0; /* column offset in cells */
6049 + if (gui.text_context == NULL || gui.drawarea->window == NULL)
6052 + if (!enc_utf8 && output_conv.vc_type != CONV_NONE)
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
6059 + conv_buf = string_convert(&output_conv, s, &len);
6063 + gdk_gc_set_exposures(gui.text_gc, gui.visibility != GDK_VISIBILITY_UNOBSCURED);
6065 + glyphs = pango_glyph_string_new();
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.
6071 + if (!(flags & DRAW_ITALIC) && !((flags & DRAW_BOLD) && gui.font_can_bold)
6072 + && gui.ascii_glyphs != NULL)
6074 + for (i = 0; i < len; ++i)
6075 + if (s[i] & 0x80) goto not_ascii;
6077 + pango_glyph_string_set_size(glyphs, len);
6079 + for (i = 0; i < len; ++i)
6081 + glyphs->glyphs[i] = gui.ascii_glyphs->glyphs[s[i]];
6082 + glyphs->log_clusters[i] = i;
6085 + draw_glyph_string(row, col, len, flags, gui.ascii_font, glyphs);
6087 + item_offset = len;
6092 + attr_list = pango_attr_list_new();
6094 + if ((flags & DRAW_BOLD) && gui.font_can_bold)
6096 + PangoAttribute *attribute;
6098 + attribute = pango_attr_weight_new(PANGO_WEIGHT_BOLD);
6099 + attribute->start_index = 0;
6100 + attribute->end_index = len;
6102 + pango_attr_list_insert(attr_list, attribute);
6105 + if (flags & DRAW_ITALIC)
6107 + PangoAttribute *attribute;
6109 + attribute = pango_attr_style_new(PANGO_STYLE_ITALIC);
6110 + attribute->start_index = 0;
6111 + attribute->end_index = len;
6113 + pango_attr_list_insert(attr_list, attribute);
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 :)
6121 + item_list = pango_itemize(gui.text_context, (const char *)s, 0, len, attr_list, NULL);
6123 + while (item_list != NULL)
6126 + int item_length = 0; /* item length in cells */
6128 + item = (PangoItem *)item_list->data;
6129 + item_list = g_list_delete_link(item_list, item_list);
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 :)
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.
6140 + item->analysis.level = (item->analysis.level + 1) & (~1U);
6142 + pango_shape((const char *)s + item->offset, item->length, &item->analysis, glyphs);
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.
6149 + for (i = 0; i < glyphs->num_glyphs; ++i)
6151 + int cells; /* cells occupied by glyph */
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;
6156 + item_length += cells;
6159 + draw_glyph_string(row, col + item_offset, item_length,
6160 + flags, item->analysis.font, glyphs);
6162 + pango_item_free(item);
6164 + item_offset += item_length;
6167 + pango_attr_list_unref(attr_list);
6170 + if (flags & DRAW_UNDERL)
6171 + gdk_draw_line(gui.drawarea->window,
6174 + FILL_Y(row + 1) - 1,
6175 + FILL_X(col + item_offset) - 1,
6176 + FILL_Y(row + 1) - 1);
6178 + pango_glyph_string_free(glyphs);
6179 + vim_free(conv_buf);
6181 +#else /* !HAVE_GTK2 -- don't look at this too closely. It hurts. */
6183 static XChar2b *buf = NULL;
6184 static int buflen = 0;
6186 @@ -2935,9 +4299,9 @@ gui_mch_draw_string(int row, int col, ch
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);
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.
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
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
6229 c = utf_ptr2char(p);
6230 @@ -2987,7 +4353,7 @@ gui_mch_draw_string(int row, int col, ch
6231 width += utf_char2cells(c);
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
6241 text = (XChar2b *)s;
6248 @@ -3011,7 +4377,7 @@ gui_mch_draw_string(int row, int col, ch
6249 width += (*mb_ptr2cells)(p);
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);
6261 +#endif /* !HAVE_GTK2 */
6265 @@ -3069,21 +4436,28 @@ gui_mch_haskey(char_u * name)
6267 gui_get_x11_windis(Window * win, Display ** dis)
6269 - *dis = GDK_DISPLAY();
6270 - if (gui.mainwin != NULL && gui.mainwin->window)
6271 + if (gui.mainwin != NULL && gui.mainwin->window != NULL)
6273 - *win = GDK_WINDOW_XWINDOW(gui.mainwin->window);
6275 + *dis = GET_X_DISPLAY();
6276 + *win = GDK_WINDOW_XWINDOW(gui.mainwin->window);
6291 +#ifdef GTK2_MULTIHEAD
6292 + if (gui.mainwin && GTK_WIDGET_REALIZED(gui.mainwin))
6293 + gdk_display_beep(gtk_widget_get_display(gui.mainwin));
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);
6305 + XSync(GET_X_DISPLAY(), False);
6306 ui_delay((long)msec, TRUE); /* wait so many msec */
6308 gdk_draw_rectangle(gui.drawarea->window, invert_gc,
6311 @@ -3170,11 +4545,15 @@ gui_mch_invert_rectangle(int r, int c, i
6312 * Iconify the GUI window.
6316 +gui_mch_iconify(void)
6319 + gtk_window_iconify(GTK_WINDOW(gui.mainwin));
6321 XIconifyWindow(GDK_DISPLAY(),
6322 GDK_WINDOW_XWINDOW(gui.mainwin->window),
6323 DefaultScreen(GDK_DISPLAY()));
6327 #if defined(FEAT_EVAL) || defined(PROTO)
6328 @@ -3182,9 +4561,13 @@ gui_mch_iconify()
6329 * Bring the Vim window to the foreground.
6332 -gui_mch_set_foreground()
6333 +gui_mch_set_foreground(void)
6336 + gtk_window_present(GTK_WINDOW(gui.mainwin));
6338 gdk_window_raise(gui.mainwin->window);
6343 @@ -3248,7 +4631,7 @@ gui_mch_draw_part_cursor(int w, int h, g
6348 +gui_mch_update(void)
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)
6354 /* Flush any output to the screen */
6357 +gui_mch_flush(void)
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.
6364 + XFlush(GET_X_DISPLAY());
6368 @@ -3427,26 +4814,30 @@ check_copy_area(void)
6371 XGraphicsExposeEvent *gevent;
6372 + Display* xdisplay;
6374 if (gui.visibility != GDK_VISIBILITY_PARTIAL)
6378 + xdisplay = GET_X_DISPLAY();
6382 /* Wait to check whether the scroll worked or not. */
6385 - if (XCheckTypedEvent(GDK_DISPLAY(), NoExpose, &event))
6386 + if (XCheckTypedEvent(xdisplay, NoExpose, &event))
6387 return; /* The scroll worked. */
6389 - if (XCheckTypedEvent(GDK_DISPLAY(), GraphicsExpose, &event))
6390 + if (XCheckTypedEvent(xdisplay, GraphicsExpose, &event))
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 */
6400 + XSync(xdisplay, False);
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.
6408 -clip_mch_request_selection(cbd)
6409 - VimClipboard *cbd;
6410 +clip_mch_request_selection(VimClipboard *cbd)
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)
6418 - buffer = (char_u *)XFetchBuffer(gui.dpy, &nbytes, 0);
6419 + buffer = (char_u *)XFetchBuffer(GET_X_DISPLAY(), &nbytes, 0);
6423 @@ -3578,8 +4968,7 @@ clip_mch_request_selection(cbd)
6427 -clip_mch_lose_selection(cbd)
6428 - VimClipboard *cbd;
6429 +clip_mch_lose_selection(VimClipboard *cbd)
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.
6437 -clip_mch_own_selection(cbd)
6438 - VimClipboard *cbd;
6439 +clip_mch_own_selection(VimClipboard *cbd)
6443 @@ -3612,8 +5000,7 @@ clip_mch_own_selection(cbd)
6447 -clip_mch_set_selection(cbd)
6448 - VimClipboard* cbd;
6449 +clip_mch_set_selection(VimClipboard *cbd)
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.
6457 -gui_mch_draw_menubar()
6458 +gui_mch_draw_menubar(void)
6460 /* just make sure that the visual changes get effect immediately */
6462 @@ -3684,12 +5071,14 @@ gui_mch_draw_menubar()
6464 gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
6467 + if (sb->id == NULL)
6471 gtk_widget_show(sb->id);
6473 gtk_widget_hide(sb->id);
6475 update_window_manager_hints();
6478 @@ -3700,20 +5089,31 @@ gui_mch_enable_scrollbar(scrollbar_T *sb
6480 gui_mch_get_rgb(guicolor_T pixel)
6482 - GdkVisual *visual;
6483 - GdkColormap *cmap;
6484 - GdkColorContext *cc;
6486 + GdkColormap *cmap;
6487 + GdkColor color = { 0, };
6489 - visual = gtk_widget_get_visual(gui.mainwin);
6490 cmap = gtk_widget_get_colormap(gui.mainwin);
6491 - cc = gdk_color_context_new(visual, cmap);
6494 - gdk_color_context_query_color(cc, &c);
6496 + gdk_colormap_query_color(cmap, pixel, &color);
6499 + GdkVisual *visual;
6500 + GdkColorContext *cc;
6502 + visual = gtk_widget_get_visual(gui.mainwin);
6503 + cc = gdk_color_context_new(visual, cmap);
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);
6510 + gdk_color_context_free(cc);
6514 + return ((color.red & 0xff00) << 8) |
6515 + (color.green & 0xff00) |
6516 + ((color.blue & 0xff00) >> 8);
6520 @@ -3744,10 +5144,11 @@ gui_mch_get_mouse_y(void)
6521 gui_mch_setmouse(int x, int y)
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
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);
6534 #ifdef FEAT_MOUSESHAPE
6535 @@ -3785,7 +5186,7 @@ gui_mch_mousehide(int hide)
6537 /* Table for shape IDs. Keep in sync with the mshape_names[] table in
6539 -static int mshape_ids[] =
6540 +static const int mshape_ids[] =
6542 GDK_LEFT_PTR, /* arrow */
6544 @@ -3807,8 +5208,7 @@ static int mshape_ids[] =
6548 -mch_set_mouse_shape(shape)
6550 +mch_set_mouse_shape(int shape)
6554 @@ -3823,7 +5223,11 @@ mch_set_mouse_shape(shape)
6555 if (shape >= MSHAPE_NUMBERED)
6557 id = shape - MSHAPE_NUMBERED;
6559 + if (id >= GDK_LAST_CURSOR)
6561 if (id >= GDK_NUM_GLYPHS)
6565 id &= ~1; /* they are always even (why?) */
6566 @@ -3838,4 +5242,5 @@ mch_set_mouse_shape(shape)
6567 if (shape != MSHAPE_HIDE)
6571 +#endif /* FEAT_MOUSESHAPE */
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
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
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);
6598 @@ -2723,6 +2725,172 @@ iconv_end()
6600 #if defined(FEAT_XIM) || defined(PROTO)
6604 +static int ic_preediting = FALSE;
6605 +static int ic_pos = 0;
6608 +im_set_active(active)
6614 + gtk_im_context_set_client_window(xic, gui.mainwin->window);
6616 + gtk_im_context_set_client_window(xic, NULL);
6617 + ic_preediting = active;
6622 +xim_set_focus(focus)
6628 + gtk_im_context_focus_in(xic);
6630 + gtk_im_context_focus_out(xic);
6635 +im_set_position(row, col)
6640 + gtk_im_context_set_cursor_location (GtkIMContext *context,
6641 + GdkRectangle *area);
6651 +xim_set_status_area()
6658 + gui_update_cursor(TRUE, FALSE);
6659 + if (showmode() > 0)
6667 +xim_back_delete(int n)
6674 + for (; n > 0; n -= 2);
6675 + add_to_input_buf(str, 3);
6680 +im_commit_cb(GtkIMContext *context, const gchar *str)
6684 + if (g_utf8_validate(str, -1, NULL) == TRUE)
6685 + p = g_locale_from_utf8(str, -1, NULL, NULL, NULL);
6691 + xim_back_delete(ic_pos);
6695 + add_to_input_buf((char_u *)p, strlen(p));
6702 + if (gtk_main_level() > 0)
6707 +im_preedit_changed_cb(GtkIMContext *context)
6709 + gchar *preedit_string, *p;
6712 + gtk_im_context_get_preedit_string(context, &preedit_string, NULL,
6715 + im_commit_cb(context, preedit_string);
6716 + ic_pos = cursor_pos;
6722 + xic = gtk_im_multicontext_new();
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);
6733 +xim_decide_input_style()
6740 + gtk_im_context_reset(xic);
6744 +xim_queue_key_press_event(GdkEvent *ev)
6746 + return gtk_im_context_filter_keypress(xic, (GdkEventKey *) ev);
6750 +xim_get_status_area_height()
6758 + return ic_preediting;
6762 +im_xim_isvalid_imactivate()
6768 static int xim_is_active = FALSE; /* XIM should be active in the current
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;
6776 #endif /* FEAT_XIM */
6778 #if defined(FEAT_MBYTE) || defined(PROTO)
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];
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)
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. */
6803 gui_mch_menu_set_tip(menu);
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
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}
6820 @@ -4538,6 +4538,15 @@ did_set_string_option(opt_idx, varp, new
6824 +# if defined(FEAT_GUI_GTK) && defined(HAVE_GTK2)
6825 + if (errmsg == NULL && varp == &p_tenc && gui.in_use)
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");
6836 @@ -4815,25 +4824,25 @@ did_set_string_option(opt_idx, varp, new
6841 # ifdef FEAT_GUI_GTK
6842 - if (STRCMP(p_guifont, "*") == 0)
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.
6849 - p = gui_mch_font_dialog(oldval);
6852 - free_string_option(p_guifont);
6856 - errmsg = (char_u *)"";
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.
6863 + if (STRCMP(p, "*") == 0)
6865 + p = gui_mch_font_dialog(oldval);
6867 + if (new_value_alloced)
6868 + free_string_option(p_guifont);
6870 + p_guifont = (p != NULL) ? p : vim_strsave(oldval);
6871 + new_value_alloced = TRUE;
6874 - if (errmsg == NULL && gui_init_font(p_guifont, FALSE) != OK)
6875 + if (p != NULL && gui_init_font(p_guifont, FALSE) != OK)
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");
6884 +# if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
6885 else if (varp == &p_guifontwide)
6887 if (STRCMP(p_guifontwide, "*") == 0)
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' */
6900 +# if defined(FEAT_MBYTE) && !defined(HAVE_GTK2)
6901 EXTERN char_u *p_guifontwide; /* 'guifontwide' */
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;
6914 static int get_x11_windis __ARGS((void));
6916 static void set_x11_title __ARGS((char_u *));
6918 static void set_x11_icon __ARGS((char_u *));
6921 @@ -1245,11 +1247,6 @@ static int get_x11_thing __ARGS((int get
6922 * try to get x11 window and display
6924 * return FAIL for failure, OK otherwise
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)
6933 @@ -1532,6 +1529,7 @@ get_x11_thing(get_title, test_only)
6939 * Set x11 Window Title
6941 @@ -1541,7 +1539,7 @@ get_x11_thing(get_title, test_only)
6942 set_x11_title(title)
6945 -#if XtSpecificationRelease >= 4
6946 +# if XtSpecificationRelease >= 4
6947 XTextProperty text_prop;
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);
6956 XStoreName(x11_display, x11_window, (char *)title);
6959 XFlush(x11_display);
6964 * Set x11 Window icon
6965 @@ -1672,14 +1671,12 @@ mch_settitle(title, icon)
6967 if (*T_TS != NUL) /* it's OK if t_fs is empty */
6968 term_settitle(title);
6970 +#if defined(FEAT_X11) && !defined(FEAT_GUI_GTK)
6972 set_x11_title(title); /* x11 */
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)
6977 gui_mch_settitle(title, icon);
6980 did_set_title = TRUE;
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;
6993 -#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
6994 +#if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) && !defined(HAVE_GTK2)
6996 && lnum == curwin->w_cursor.lnum
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);
7010 gui_mch_free_font(gui.bold_font);
7011 gui_mch_free_font(gui.ital_font);
7012 gui_mch_free_font(gui.boldital_font);
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
7026 --enable-gnome-check If GTK GUI, check for GNOME [default=no]"
7028 + --enable-gtk2-check If GTK GUI, check for GTK2 (experimental) [default=no]"
7030 --enable-motif-check If auto-select GUI, check for Motif [default=yes]"
7032 --enable-athena-check If auto-select GUI, check for Athena [default=yes]"
7033 @@ -485,7 +487,7 @@ if test "$silent" = yes; then
7037 -exec 5>auto/config.log
7038 +exec 5>./config.log
7041 This file contains any messages produced by compilers while
7042 @@ -602,7 +604,7 @@ cat >> confdefs.h <<\EOF
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
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
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
7078 @@ -745,7 +747,7 @@ fi
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
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
7089 cat > conftest.$ac_ext << EOF
7091 -#line 758 "configure"
7092 +#line 762 "configure"
7093 #include "confdefs.h"
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; }
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
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
7117 @@ -801,7 +803,7 @@ else
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
7126 @@ -820,7 +822,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
7127 ac_save_CFLAGS="$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
7135 @@ -851,7 +853,7 @@ else
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
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"
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
7160 @@ -883,13 +885,13 @@ else
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"
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
7176 @@ -900,13 +902,13 @@ else
7178 CPP="${CC-cc} -nologo -E"
7179 cat > conftest.$ac_ext <<EOF
7180 -#line 902 "configure"
7181 +#line 906 "configure"
7182 #include "confdefs.h"
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
7192 @@ -930,7 +932,7 @@ else
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
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
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
7219 @@ -1015,12 +1017,12 @@ fi
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
7228 cat > conftest.$ac_ext <<EOF
7229 -#line 1022 "configure"
7230 +#line 1026 "configure"
7231 #include "confdefs.h"
7234 @@ -1031,7 +1033,7 @@ int main() {
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
7243 @@ -1048,19 +1050,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
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
7252 cat > conftest.$ac_ext <<EOF
7253 -#line 1055 "configure"
7254 +#line 1059 "configure"
7255 #include "confdefs.h"
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
7266 @@ -1079,7 +1081,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=y
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
7275 @@ -1089,7 +1091,7 @@ else
7277 echo 'int main () { return 0; }' > conftest.$ac_ext
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
7283 *.c | *.o | *.obj) ;;
7284 @@ -1136,14 +1138,14 @@ test "$GCC" = yes && CPP_MM=M;
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
7293 OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
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
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
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
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 /
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
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
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
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
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
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"
7367 @@ -1261,7 +1263,7 @@ make an error "Character set is not EBCD
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
7374 # TryCompile action if true
7376 @@ -1289,7 +1291,7 @@ esac
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
7383 OS/390) OS390Unix="yes";
7384 if test "$CC" = "cc"; then
7385 @@ -1326,7 +1328,7 @@ fi
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
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
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
7421 @@ -1430,7 +1432,7 @@ fi
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
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
7448 @@ -1521,7 +1523,7 @@ fi
7449 if test "X$vi_cv_path_python" != "X"; then
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
7457 @@ -1533,14 +1535,14 @@ fi
7458 echo "$ac_t""$vi_cv_var_python_version" 1>&6
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)"
7466 echo "$ac_t""yep" 1>&6
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
7474 @@ -1552,7 +1554,7 @@ fi
7475 echo "$ac_t""$vi_cv_path_python_pfx" 1>&6
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
7483 @@ -1583,7 +1585,7 @@ fi
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
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}\"'"
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
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"
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
7515 echo "$ac_t""yes" 1>&6; PYTHON_CFLAGS="$PYTHON_CFLAGS -D_THREAD_SAFE"
7517 @@ -1696,7 +1698,7 @@ fi
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
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
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
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
7562 @@ -1834,14 +1836,14 @@ 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 -`
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
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
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
7615 @@ -1964,7 +1966,7 @@ fi
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
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
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
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
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
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
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
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
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
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
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>
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
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"
7729 ${x_direct_test_function}()
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
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
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"
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
7758 @@ -2445,14 +2447,14 @@ rm -f conftest*
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"
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
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"
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() {
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
7800 eval "ac_cv_lib_$ac_lib_var=yes"
7802 @@ -2525,7 +2527,7 @@ fi
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() {
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
7827 eval "ac_cv_lib_$ac_lib_var=yes"
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
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();
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
7851 eval "ac_cv_func_gethostbyname=yes"
7853 @@ -2622,7 +2624,7 @@ fi
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"
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() {
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
7878 eval "ac_cv_lib_$ac_lib_var=yes"
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
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();
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
7902 eval "ac_cv_func_connect=yes"
7904 @@ -2720,7 +2722,7 @@ fi
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() {
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
7929 eval "ac_cv_lib_$ac_lib_var=yes"
7931 @@ -2763,12 +2765,12 @@ fi
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
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();
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
7953 eval "ac_cv_func_remove=yes"
7955 @@ -2812,7 +2814,7 @@ fi
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() {
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
7980 eval "ac_cv_lib_$ac_lib_var=yes"
7982 @@ -2855,12 +2857,12 @@ fi
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
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();
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
8004 eval "ac_cv_func_shmat=yes"
8006 @@ -2904,7 +2906,7 @@ fi
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"
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() {
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
8031 eval "ac_cv_lib_$ac_lib_var=yes"
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()
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
8058 eval "ac_cv_lib_$ac_lib_var=yes"
8060 @@ -3028,18 +3030,18 @@ fi
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
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>
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
8080 echo "$ac_t""yes" 1>&6
8082 @@ -3065,7 +3067,7 @@ EOF
8083 LDFLAGS="-L$x_libraries $LDFLAGS"
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() {
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
8107 eval "ac_cv_lib_$ac_lib_var=yes"
8109 @@ -3106,7 +3108,7 @@ fi
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() {
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
8134 eval "ac_cv_lib_$ac_lib_var=yes"
8136 @@ -3148,7 +3150,7 @@ fi
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()
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
8161 eval "ac_cv_lib_$ac_lib_var=yes"
8163 @@ -3189,18 +3191,18 @@ fi
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
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>
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
8183 echo "$ac_t""no" 1>&6
8185 @@ -3209,14 +3211,14 @@ else
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>
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
8200 echo "$ac_t""yes" 1>&6; cflags_save="$cflags_save -Wno-implicit-int"
8202 @@ -3240,7 +3242,7 @@ fi
8203 test "x$with_x" = xno -a "x$BEOS" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
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
8219 @@ -3271,6 +3274,7 @@ if test "x$BEOS" = "xyes"; then
8221 elif test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
8227 @@ -3290,6 +3294,7 @@ elif test "x$QNX" = "xyes" -a "x$with_x"
8235 @@ -3317,7 +3322,7 @@ fi
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
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
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"
8265 + enable_gtk2_check="no"
8268 + echo "$ac_t""$enable_gtk2_check" 1>&6;
8269 + if test "x$enable_gtk2_check" = "xno"; then
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
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
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
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
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
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
8335 @@ -3520,38 +3542,96 @@ fi
8337 echo "$ac_t""Using GTK configuration program $GTK_CONFIG" 1>&6
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
8347 + case "$PKG_CONFIG" in
8349 + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
8352 + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path.
8355 + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
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"
8364 + IFS="$ac_save_ifs"
8365 + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
8369 +PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
8370 +if test -n "$PKG_CONFIG"; then
8371 + echo "$ac_t""$PKG_CONFIG" 1>&6
8373 + echo "$ac_t""no" 1>&6
8376 - if test "X$GTK_CONFIG" != "X"; then
8378 - if test "X$GTK_CONFIG" != "X"; then
8381 + if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
8383 + if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
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
8390 - if test "$GTK_CONFIG" = "no" ; then
8393 + if test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno"; then
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/'`
8408 + elif test "X$GTK_CONFIG" != "Xno"; then
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/'`
8434 + if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
8436 + ac_save_CFLAGS="$CFLAGS"
8437 + ac_save_LIBS="$LIBS"
8438 + CFLAGS="$CFLAGS $GTK_CFLAGS"
8439 + LIBS="$LIBS $GTK_LIBS"
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"
8447 cat > conftest.$ac_ext <<EOF
8448 -#line 3540 "configure"
8449 +#line 3635 "configure"
8450 #include "confdefs.h"
8452 #include <gtk/gtk.h>
8453 @@ -3560,30 +3640,30 @@ else
8457 - int major, minor, micro;
8458 - char *tmp_version;
8459 +int major, minor, micro;
8462 - system ("touch conf.gtktest");
8463 +system ("touch conf.gtktest");
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, µ) != 3) {
8468 - printf("%s, bad version string\n", "$min_gtk_version");
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)))
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, µ) != 3) {
8483 + printf("%s, bad version string\n", "$min_gtk_version");
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)))
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
8503 @@ -3595,17 +3675,18 @@ fi
8507 - CFLAGS="$ac_save_CFLAGS"
8508 - LIBS="$ac_save_LIBS"
8510 + CFLAGS="$ac_save_CFLAGS"
8511 + LIBS="$ac_save_LIBS"
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"
8521 echo "$ac_t""no" 1>&6
8522 - if test "$GTK_CONFIG" = "no" ; then
8523 + if test "X$GTK_CONFIG" = "Xno" ; then
8526 if test -f conf.gtktest ; then
8527 @@ -3616,7 +3697,9 @@ fi
8537 @@ -3634,10 +3717,18 @@ 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
8546 + if test $gtk_major_version -ge 2; then
8547 + cat >> confdefs.h <<\EOF
8548 +#define HAVE_GTK2 1
8552 if test -z "$SKIP_GNOME"; then
8557 @@ -3680,11 +3771,29 @@ else
8561 - if test "x$want_gnome" = xyes; then
8562 + if test "x$want_gnome" = xyes -a $gtk_major_version -ge 2; then
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`
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; }
8579 + elif test "x$want_gnome" = xyes; then
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
8589 @@ -3721,7 +3830,7 @@ fi
8590 no_gnome_config="yes"
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
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
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"
8625 @@ -3781,7 +3893,7 @@ if test -z "$SKIP_MOTIF"; then
8626 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
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"
8633 for try in $gui_includes; do
8634 @@ -3805,7 +3917,7 @@ fi
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'`"
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"
8651 for try in $gui_libs; do
8652 @@ -3864,11 +3976,11 @@ GUI_X_LIBS=
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
8659 CFLAGS="$CFLAGS $X_CFLAGS"
8660 cat > conftest.$ac_ext <<EOF
8661 -#line 3857 "configure"
8662 +#line 3984 "configure"
8663 #include "confdefs.h"
8665 #include <X11/Intrinsic.h>
8666 @@ -3877,7 +3989,7 @@ int main() {
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
8673 echo "$ac_t""yes" 1>&6
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()
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
8700 eval "ac_cv_lib_$ac_lib_var=yes"
8702 @@ -3945,7 +4057,7 @@ else
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()
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
8727 eval "ac_cv_lib_$ac_lib_var=yes"
8729 @@ -3986,7 +4098,7 @@ fi
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() {
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
8754 eval "ac_cv_lib_$ac_lib_var=yes"
8756 @@ -4029,7 +4141,7 @@ fi
8757 LDFLAGS=$ldflags_save
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
8764 if mkdir conftestdir; then
8765 @@ -4059,17 +4171,17 @@ if test -z "$SKIP_ATHENA" -o -z "$SKIP_M
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
8774 cat > conftest.$ac_ext <<EOF
8775 -#line 4053 "configure"
8776 +#line 4180 "configure"
8777 #include "confdefs.h"
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
8786 @@ -4098,9 +4210,9 @@ done
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>
8798 @@ -4117,6 +4229,8 @@ rm -f conftest*
8800 CPPFLAGS=$cppflags_save
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
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
8816 cat > conftest.$ac_ext <<EOF
8817 -#line 4125 "configure"
8818 +#line 4254 "configure"
8819 #include "confdefs.h"
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
8828 @@ -4177,17 +4291,17 @@ if test -z "$SKIP_MOTIF"; then
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
8837 cat > conftest.$ac_ext <<EOF
8838 -#line 4171 "configure"
8839 +#line 4300 "configure"
8840 #include "confdefs.h"
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
8849 @@ -4273,17 +4387,17 @@ fi
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; }
8858 cat > conftest.$ac_ext <<EOF
8859 -#line 4267 "configure"
8860 +#line 4396 "configure"
8861 #include "confdefs.h"
8863 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
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
8868 cat >> confdefs.h <<\EOF
8869 #define BROKEN_TOUPPER 1
8870 @@ -4300,16 +4414,16 @@ fi
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"
8882 printf("(" __DATE__ " " __TIME__ ")");
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
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*
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
8899 cat > conftest.$ac_ext <<EOF
8900 -#line 4319 "configure"
8901 +#line 4448 "configure"
8902 #include "confdefs.h"
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
8911 @@ -4358,7 +4472,7 @@ fi
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"
8923 cat > conftest.$ac_ext <<EOF
8924 -#line 4355 "configure"
8925 +#line 4484 "configure"
8926 #include "confdefs.h"
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
8935 eval "ac_cv_lib_$ac_lib_var=yes"
8937 @@ -4407,12 +4521,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/di
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
8946 cat > conftest.$ac_ext <<EOF
8947 -#line 4401 "configure"
8948 +#line 4530 "configure"
8949 #include "confdefs.h"
8950 #include <sys/types.h>
8952 @@ -4420,7 +4534,7 @@ int main() {
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
8959 eval "ac_cv_header_dirent_$ac_safe=yes"
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"
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() {
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
8986 eval "ac_cv_lib_$ac_lib_var=yes"
8988 @@ -4486,7 +4600,7 @@ fi
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"
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() {
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
9013 eval "ac_cv_lib_$ac_lib_var=yes"
9015 @@ -4529,12 +4643,12 @@ fi
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
9024 cat > conftest.$ac_ext <<EOF
9025 -#line 4523 "configure"
9026 +#line 4652 "configure"
9027 #include "confdefs.h"
9030 @@ -4542,7 +4656,7 @@ else
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
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"
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"
9057 @@ -4598,7 +4712,7 @@ if test "$cross_compiling" = yes; then
9060 cat > conftest.$ac_ext <<EOF
9061 -#line 4587 "configure"
9062 +#line 4716 "configure"
9063 #include "confdefs.h"
9065 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
9066 @@ -4609,7 +4723,7 @@ if (XOR (islower (i), ISLOWER (i)) || to
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
9075 @@ -4633,12 +4747,12 @@ EOF
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
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;
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
9097 ac_cv_header_sys_wait_h=yes
9099 @@ -4677,16 +4791,16 @@ fi
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>
9111 union wait xx, yy; xx = yy
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
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
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
9128 cat > conftest.$ac_ext <<EOF
9129 -#line 4711 "configure"
9130 +#line 4840 "configure"
9131 #include "confdefs.h"
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
9140 @@ -4755,11 +4869,11 @@ done
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"
9153 #if defined(_AIX) && !defined(_NO_PROTO)
9154 @@ -4779,7 +4893,7 @@ int main() {
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
9161 echo "$ac_t""yes" 1>&6
9163 @@ -4797,13 +4911,13 @@ CPPFLAGS=$cppflags_save
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
9172 ac_pattern="Autoconf.*'x'"
9173 cat > conftest.$ac_ext <<EOF
9174 -#line 4792 "configure"
9175 +#line 4921 "configure"
9176 #include "confdefs.h"
9179 @@ -4821,7 +4935,7 @@ rm -f conftest*
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"
9188 @@ -4843,12 +4957,12 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional
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
9197 cat > conftest.$ac_ext <<EOF
9198 -#line 4837 "configure"
9199 +#line 4966 "configure"
9200 #include "confdefs.h"
9203 @@ -4897,7 +5011,7 @@ ccp = (char const *const *) p;
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
9212 @@ -4918,12 +5032,12 @@ EOF
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
9221 cat > conftest.$ac_ext <<EOF
9222 -#line 4912 "configure"
9223 +#line 5041 "configure"
9224 #include "confdefs.h"
9225 #include <sys/types.h>
9227 @@ -4951,12 +5065,12 @@ EOF
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
9236 cat > conftest.$ac_ext <<EOF
9237 -#line 4945 "configure"
9238 +#line 5074 "configure"
9239 #include "confdefs.h"
9240 #include <sys/types.h>
9242 @@ -4984,12 +5098,12 @@ EOF
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
9251 cat > conftest.$ac_ext <<EOF
9252 -#line 4978 "configure"
9253 +#line 5107 "configure"
9254 #include "confdefs.h"
9255 #include <sys/types.h>
9257 @@ -5017,12 +5131,12 @@ EOF
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
9266 cat > conftest.$ac_ext <<EOF
9267 -#line 5011 "configure"
9268 +#line 5140 "configure"
9269 #include "confdefs.h"
9270 #include <sys/types.h>
9272 @@ -5050,12 +5164,12 @@ EOF
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
9281 cat > conftest.$ac_ext <<EOF
9282 -#line 5044 "configure"
9283 +#line 5173 "configure"
9284 #include "confdefs.h"
9285 #include <sys/types.h>
9287 @@ -5084,12 +5198,12 @@ EOF
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
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() {
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
9309 ac_cv_header_time=yes
9311 @@ -5119,12 +5233,12 @@ EOF
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
9320 cat > conftest.$ac_ext <<EOF
9321 -#line 5113 "configure"
9322 +#line 5242 "configure"
9323 #include "confdefs.h"
9324 #include <sys/types.h>
9326 @@ -5152,12 +5266,12 @@ EOF
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
9335 cat > conftest.$ac_ext <<EOF
9336 -#line 5146 "configure"
9337 +#line 5275 "configure"
9338 #include "confdefs.h"
9339 #include <sys/types.h>
9341 @@ -5186,12 +5300,12 @@ fi
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
9350 cat > conftest.$ac_ext <<EOF
9351 -#line 5180 "configure"
9352 +#line 5309 "configure"
9353 #include "confdefs.h"
9355 #include <sys/types.h>
9356 @@ -5223,12 +5337,12 @@ EOF
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
9365 cat > conftest.$ac_ext <<EOF
9366 -#line 5217 "configure"
9367 +#line 5346 "configure"
9368 #include "confdefs.h"
9370 #include <sys/types.h>
9371 @@ -5258,9 +5372,9 @@ EOF
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"
9382 #include <sys/types.h>
9383 @@ -5275,7 +5389,7 @@ int main() {
9384 stack_t sigstk; sigstk.ss_base = 0;
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
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*
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
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() {
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
9426 eval "ac_cv_lib_$ac_lib_var=yes"
9428 @@ -5360,7 +5474,7 @@ fi
9431 cat > conftest.$ac_ext <<EOF
9432 -#line 5317 "configure"
9433 +#line 5478 "configure"
9434 #include "confdefs.h"
9436 #ifdef HAVE_TERMCAP_H
9437 @@ -5368,7 +5482,7 @@ else
9439 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }
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
9446 @@ -5390,12 +5504,12 @@ 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; }
9455 cat > conftest.$ac_ext <<EOF
9456 -#line 5352 "configure"
9457 +#line 5513 "configure"
9458 #include "confdefs.h"
9460 #ifdef HAVE_TERMCAP_H
9461 @@ -5404,7 +5518,7 @@ else
9463 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
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
9468 echo "$ac_t""no -- we are in termcap land" 1>&6
9470 @@ -5424,9 +5538,9 @@ else
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"
9481 #ifdef HAVE_TERMCAP_H
9482 @@ -5437,7 +5551,7 @@ int main() {
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
9489 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9490 #define HAVE_OSPEED 1
9491 @@ -5449,9 +5563,9 @@ else
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"
9502 #ifdef HAVE_TERMCAP_H
9503 @@ -5463,7 +5577,7 @@ int main() {
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
9510 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9511 #define OSPEED_EXTERN 1
9512 @@ -5481,9 +5595,9 @@ fi
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"
9523 #ifdef HAVE_TERMCAP_H
9524 @@ -5494,7 +5608,7 @@ int main() {
9525 if (UP == 0 && BC == 0) PC = 1
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
9531 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9532 #define HAVE_UP_BC_PC 1
9533 @@ -5506,9 +5620,9 @@ else
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"
9544 #ifdef HAVE_TERMCAP_H
9545 @@ -5520,7 +5634,7 @@ int main() {
9546 if (UP == 0 && BC == 0) PC = 1
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
9552 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9553 #define UP_BC_PC_EXTERN 1
9554 @@ -5538,9 +5652,9 @@ fi
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"
9565 #ifdef HAVE_TERMCAP_H
9566 @@ -5551,7 +5665,7 @@ int main() {
9567 extern int xx(); tputs("test", 1, (outfuntype)xx)
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
9573 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9574 #define HAVE_OUTFUNTYPE 1
9575 @@ -5566,9 +5680,9 @@ fi
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"
9586 #include <sys/types.h>
9587 @@ -5578,7 +5692,7 @@ int main() {
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
9594 echo "$ac_t""yes" 1>&6
9595 cat >> confdefs.h <<\EOF
9596 @@ -5595,7 +5709,7 @@ rm -f conftest*
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
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"
9618 ptsname(0);grantpt(0);unlockpt(0);
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
9624 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9625 #define HAVE_SVR4_PTYS 1
9626 @@ -5635,14 +5749,14 @@ else
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
9637 cat > conftest.$ac_ext <<EOF
9638 -#line 5599 "configure"
9639 +#line 5760 "configure"
9640 #include "confdefs.h"
9643 @@ -5676,13 +5790,13 @@ else
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
9650 if test "$cross_compiling" = yes; then
9651 { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
9653 cat > conftest.$ac_ext <<EOF
9654 -#line 5639 "configure"
9655 +#line 5800 "configure"
9656 #include "confdefs.h"
9658 #include <sys/types.h>
9659 @@ -5714,7 +5828,7 @@ main()
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
9667 if test -f conftest_grp; then
9668 @@ -5745,12 +5859,12 @@ rm -f conftest_grp
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
9677 cat > conftest.$ac_ext <<EOF
9678 -#line 5707 "configure"
9679 +#line 5868 "configure"
9680 #include "confdefs.h"
9681 #include <sys/types.h>
9683 @@ -5767,7 +5881,7 @@ int main() {
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
9690 ac_cv_type_signal=void
9692 @@ -5799,9 +5913,9 @@ EOF
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"
9704 @@ -5815,7 +5929,7 @@ int main() {
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
9711 echo "$ac_t""yes" 1>&6
9712 cat >> confdefs.h <<\EOF
9713 @@ -5831,12 +5945,12 @@ fi
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; }
9722 cat > conftest.$ac_ext <<EOF
9723 -#line 5793 "configure"
9724 +#line 5954 "configure"
9725 #include "confdefs.h"
9727 char *dagger[] = { "IFS=pwd", 0 };
9728 @@ -5848,7 +5962,7 @@ main()
9729 return getcwd(buffer, 500) ? 0 : 1;
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
9735 echo "$ac_t""it is usable" 1>&6
9737 @@ -5873,12 +5987,12 @@ for ac_func in bcmp fchdir fchown fseeko
9738 strpbrk strtol tgetent towlower towupper usleep utime utimes
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
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();
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
9759 eval "ac_cv_func_$ac_func=yes"
9761 @@ -5927,9 +6041,9 @@ done
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;
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
9780 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9781 #define HAVE_ST_BLKSIZE 1
9782 @@ -5956,18 +6070,18 @@ fi
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; }
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); }
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
9802 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9803 #define STAT_IGNORES_SLASH 1
9804 @@ -5984,11 +6098,11 @@ fi
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
9811 LIBS="$LIBS -liconv"
9812 cat > conftest.$ac_ext <<EOF
9813 -#line 5990 "configure"
9814 +#line 6106 "configure"
9815 #include "confdefs.h"
9818 @@ -5999,7 +6113,7 @@ int main() {
9819 iconv_open("fr", "to");
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
9825 echo "$ac_t""yes; with -liconv" 1>&6; cat >> confdefs.h <<\EOF
9826 #define HAVE_ICONV 1
9827 @@ -6011,7 +6125,7 @@ else
9830 cat > conftest.$ac_ext <<EOF
9831 -#line 5940 "configure"
9832 +#line 6129 "configure"
9833 #include "confdefs.h"
9836 @@ -6022,7 +6136,7 @@ int main() {
9837 iconv_open("fr", "to");
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
9843 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9844 #define HAVE_ICONV 1
9845 @@ -6040,9 +6154,9 @@ rm -f conftest*
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"
9856 #ifdef HAVE_LANGINFO_H
9857 @@ -6053,7 +6167,7 @@ int main() {
9858 char *cs = nl_langinfo(CODESET);
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
9864 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9865 #define HAVE_NL_LANGINFO_CODESET 1
9866 @@ -6068,7 +6182,7 @@ fi
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
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() {
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
9900 eval "ac_cv_lib_$ac_lib_var=yes"
9902 @@ -6118,7 +6232,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_l
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"
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() {
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
9927 eval "ac_cv_lib_$ac_lib_var=yes"
9929 @@ -6154,7 +6268,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_l
9930 echo "$ac_t""yes" 1>&6
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"
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() {
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
9954 eval "ac_cv_lib_$ac_lib_var=yes"
9956 @@ -6201,9 +6315,9 @@ fi
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"
9967 #include <sys/types.h>
9968 @@ -6217,7 +6331,7 @@ acl = acl_get_file("foo", ACL_TYPE_ACCES
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
9975 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9976 #define HAVE_POSIX_ACL 1
9977 @@ -6232,9 +6346,9 @@ fi
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"
9988 #ifdef HAVE_SYS_ACL_H
9989 @@ -6245,7 +6359,7 @@ acl("foo", GETACLCNT, 0, NULL);
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
9996 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
9997 #define HAVE_SOLARIS_ACL 1
9998 @@ -6260,9 +6374,9 @@ fi
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"
10009 #ifdef HAVE_SYS_ACL_H
10010 @@ -6284,7 +6398,7 @@ aclsize = sizeof(struct acl);
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
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*
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
10037 olibs="$LIBS" ; LIBS="-lgpm"
10038 cat > conftest.$ac_ext <<EOF
10039 -#line 6195 "configure"
10040 +#line 6437 "configure"
10041 #include "confdefs.h"
10043 #include <linux/keyboard.h>
10044 @@ -6327,7 +6441,7 @@ int main() {
10045 Gpm_GetLibVersion(NULL);
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
10053 @@ -6354,16 +6468,16 @@ else
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"
10065 rename("this", "that")
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
10071 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10072 #define HAVE_RENAME 1
10073 @@ -6378,9 +6492,9 @@ fi
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() {
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
10092 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10093 #define HAVE_SYSCTL 1
10094 @@ -6410,9 +6524,9 @@ fi
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() {
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
10113 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10114 #define HAVE_SYSINFO 1
10115 @@ -6440,9 +6554,9 @@ fi
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>
10127 @@ -6451,7 +6565,7 @@ int main() {
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
10134 echo "$ac_t""yes" 1>&6; cat >> confdefs.h <<\EOF
10135 #define HAVE_SYSCONF 1
10136 @@ -6467,7 +6581,7 @@ rm -f conftest*
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
10145 @@ -6475,7 +6589,7 @@ else
10146 { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
10148 cat > conftest.$ac_ext <<EOF
10149 -#line 6351 "configure"
10150 +#line 6593 "configure"
10151 #include "confdefs.h"
10154 @@ -6486,7 +6600,7 @@ else
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
10161 ac_cv_sizeof_int=`cat conftestval`
10163 @@ -6507,7 +6621,7 @@ EOF
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
10172 @@ -6527,11 +6641,11 @@ if test "$cross_compiling" = yes; then
10173 { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
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
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
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; }
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
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
10198 cat >> confdefs.h <<\EOF
10200 @@ -6563,11 +6677,11 @@ else
10201 { echo "configure: error: failed to compile test program" 1>&2; exit 1; }
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
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
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>
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
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() {
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
10245 echo "$ac_t""yes" 1>&6
10246 cat >> confdefs.h <<\EOF
10247 @@ -6649,7 +6763,7 @@ rm -f conftest*
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()
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
10272 eval "ac_cv_lib_$ac_lib_var=yes"
10274 @@ -6690,7 +6804,7 @@ fi
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
10283 @@ -6707,7 +6821,7 @@ test -f tags.save && mv tags.save tags
10284 echo "$ac_t""$TAGPRG" 1>&6
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
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
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
10310 @@ -6761,19 +6875,19 @@ else
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
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>
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
10331 echo "$ac_t""gettext() works" 1>&6; have_gettext="yes"
10333 @@ -6783,14 +6897,14 @@ else
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>
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
10348 echo "$ac_t""gettext() works with -lintl" 1>&6; have_gettext="yes"
10350 @@ -6816,12 +6930,12 @@ EOF
10351 for ac_func in bind_textdomain_codeset
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
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();
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
10372 eval "ac_cv_func_$ac_func=yes"
10374 @@ -6869,9 +6983,9 @@ fi
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;
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
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
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
10404 cat > conftest.$ac_ext <<EOF
10405 -#line 6783 "configure"
10406 +#line 7025 "configure"
10407 #include "confdefs.h"
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
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
10425 cat > conftest.$ac_ext <<EOF
10426 -#line 6814 "configure"
10427 +#line 7056 "configure"
10428 #include "confdefs.h"
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
10437 @@ -6972,9 +7086,9 @@ if test x${DLL} = xdlfcn.h; then
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"
10449 @@ -6984,7 +7098,7 @@ int main() {
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
10456 echo "$ac_t""yes" 1>&6;
10457 cat >> confdefs.h <<\EOF
10458 @@ -6997,11 +7111,11 @@ else
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
10466 cat > conftest.$ac_ext <<EOF
10467 -#line 6877 "configure"
10468 +#line 7119 "configure"
10469 #include "confdefs.h"
10472 @@ -7011,7 +7125,7 @@ int main() {
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
10479 echo "$ac_t""yes" 1>&6;
10480 cat >> confdefs.h <<\EOF
10481 @@ -7029,9 +7143,9 @@ 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"
10493 @@ -7041,7 +7155,7 @@ int main() {
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
10500 echo "$ac_t""yes" 1>&6;
10501 cat >> confdefs.h <<\EOF
10502 @@ -7054,11 +7168,11 @@ else
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
10510 cat > conftest.$ac_ext <<EOF
10511 -#line 6934 "configure"
10512 +#line 7176 "configure"
10513 #include "confdefs.h"
10516 @@ -7068,7 +7182,7 @@ int main() {
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
10523 echo "$ac_t""yes" 1>&6;
10524 cat >> confdefs.h <<\EOF
10525 @@ -7091,9 +7205,9 @@ elif test x${DLL} = xdl.h; then
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"
10537 @@ -7103,7 +7217,7 @@ int main() {
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
10544 echo "$ac_t""yes" 1>&6;
10545 cat >> confdefs.h <<\EOF
10546 @@ -7116,11 +7230,11 @@ else
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
10554 cat > conftest.$ac_ext <<EOF
10555 -#line 6996 "configure"
10556 +#line 7238 "configure"
10557 #include "confdefs.h"
10560 @@ -7130,7 +7244,7 @@ int main() {
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
10567 echo "$ac_t""yes" 1>&6;
10568 cat >> confdefs.h <<\EOF
10569 @@ -7152,17 +7266,17 @@ for ac_hdr in setjmp.h
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
10578 cat > conftest.$ac_ext <<EOF
10579 -#line 7033 "configure"
10580 +#line 7275 "configure"
10581 #include "confdefs.h"
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
10590 @@ -7269,7 +7383,7 @@ cat > $CONFIG_STATUS <<EOF
10591 # $0 $ac_configure_args
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.
10597 ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
10599 @@ -7376,6 +7490,7 @@ s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%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
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
10659 + name=`echo "$file" | sed 's|-|_|g; s|^.*/||; s|\..*$||'`
10660 + list="$list $prefix$name $file"
10663 +gdk-pixbuf-csource --raw --static --build-list $list
10665 --- /dev/null Wed Aug 14 22:00:49 2002
10666 +++ pixmaps/stock_icons.h Mon Feb 3 00:28:32 2003
10668 +/* GdkPixbuf RGBA C-Source image dump */
10670 +static const guint8 stock_vim_build_tags[] =
10672 + /* Pixbuf magic (0x47646b50) */
10674 + /* length: header (24) + pixel_data (2304) */
10676 + /* pixdata_type (0x1010002) */
10678 + /* rowstride (96) */
10682 + /* height (24) */
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"};
10786 +/* GdkPixbuf RGBA C-Source image dump */
10788 +static const guint8 stock_vim_find_help[] =
10790 + /* Pixbuf magic (0x47646b50) */
10792 + /* length: header (24) + pixel_data (2304) */
10794 + /* pixdata_type (0x1010002) */
10796 + /* rowstride (96) */
10800 + /* height (24) */
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"};
10898 +/* GdkPixbuf RGBA C-Source image dump */
10900 +static const guint8 stock_vim_save_all[] =
10902 + /* Pixbuf magic (0x47646b50) */
10904 + /* length: header (24) + pixel_data (2304) */
10906 + /* pixdata_type (0x1010002) */
10908 + /* rowstride (96) */
10912 + /* height (24) */
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"
11020 +/* GdkPixbuf RGBA C-Source image dump */
11022 +static const guint8 stock_vim_session_load[] =
11024 + /* Pixbuf magic (0x47646b50) */
11026 + /* length: header (24) + pixel_data (2304) */
11028 + /* pixdata_type (0x1010002) */
11030 + /* rowstride (96) */
11034 + /* height (24) */
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"};
11131 +/* GdkPixbuf RGBA C-Source image dump */
11133 +static const guint8 stock_vim_session_new[] =
11135 + /* Pixbuf magic (0x47646b50) */
11137 + /* length: header (24) + pixel_data (2304) */
11139 + /* pixdata_type (0x1010002) */
11141 + /* rowstride (96) */
11145 + /* height (24) */
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"};
11254 +/* GdkPixbuf RGBA C-Source image dump */
11256 +static const guint8 stock_vim_session_save[] =
11258 + /* Pixbuf magic (0x47646b50) */
11260 + /* length: header (24) + pixel_data (2304) */
11262 + /* pixdata_type (0x1010002) */
11264 + /* rowstride (96) */
11268 + /* height (24) */
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"};
11368 +/* GdkPixbuf RGBA C-Source image dump */
11370 +static const guint8 stock_vim_shell[] =
11372 + /* Pixbuf magic (0x47646b50) */
11374 + /* length: header (24) + pixel_data (9216) */
11376 + /* pixdata_type (0x1010002) */
11378 + /* rowstride (192) */
11382 + /* height (48) */
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"};
11707 +/* GdkPixbuf RGBA C-Source image dump */
11709 +static const guint8 stock_vim_window_maximize[] =
11711 + /* Pixbuf magic (0x47646b50) */
11713 + /* length: header (24) + pixel_data (2304) */
11715 + /* pixdata_type (0x1010002) */
11717 + /* rowstride (96) */
11721 + /* height (24) */
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"};
11815 +/* GdkPixbuf RGBA C-Source image dump */
11817 +static const guint8 stock_vim_window_maximize_width[] =
11819 + /* Pixbuf magic (0x47646b50) */
11821 + /* length: header (24) + pixel_data (2304) */
11823 + /* pixdata_type (0x1010002) */
11825 + /* rowstride (96) */
11829 + /* height (24) */
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"
11924 +/* GdkPixbuf RGBA C-Source image dump */
11926 +static const guint8 stock_vim_window_minimize[] =
11928 + /* Pixbuf magic (0x47646b50) */
11930 + /* length: header (24) + pixel_data (2304) */
11932 + /* pixdata_type (0x1010002) */
11934 + /* rowstride (96) */
11938 + /* height (24) */
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"};
12031 +/* GdkPixbuf RGBA C-Source image dump */
12033 +static const guint8 stock_vim_window_minimize_width[] =
12035 + /* Pixbuf magic (0x47646b50) */
12037 + /* length: header (24) + pixel_data (2304) */
12039 + /* pixdata_type (0x1010002) */
12041 + /* rowstride (96) */
12045 + /* height (24) */
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"};
12138 +/* GdkPixbuf RGBA C-Source image dump */
12140 +static const guint8 stock_vim_window_split[] =
12142 + /* Pixbuf magic (0x47646b50) */
12144 + /* length: header (24) + pixel_data (2304) */
12146 + /* pixdata_type (0x1010002) */
12148 + /* rowstride (96) */
12152 + /* height (24) */
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"};
12253 +/* GdkPixbuf RGBA C-Source image dump */
12255 +static const guint8 stock_vim_window_split_vertical[] =
12257 + /* Pixbuf magic (0x47646b50) */
12259 + /* length: header (24) + pixel_data (2304) */
12261 + /* pixdata_type (0x1010002) */
12263 + /* rowstride (96) */
12267 + /* height (24) */
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"};