Subject: Re: 23.0.92; GtkFileSelection is deprecated

From: Sven Joachim <[email-masked]>
Date: Sat, 18 Apr 2009 16:29:41 +0200

On 2009-04-18 15:48 +0200, Chong Yidong wrote:

>> Emacs uses GtkFileSelection in gtkutil.c which has been deprecated in
>> GTK+ 2.12.  That means that it will not build with a future GTK+ 3.0,
>> or with -DGTK_DISABLE_DEPRECATED in a current GTK+ 2.x.
>
> Actually, Emacs does support the new GTK file chooser.  It's used if
> HAVE_GTK_FILE_CHOOSER_DIALOG_NEW is defined, which is set by configure
> upon checking the existence of the function gtk_file_chooser_dialog_new.
> Is it not available on your system?

It is, and HAVE_GTK_FILE_CHOOSER_DIALOG_NEW is defined.  However,
HAVE_GTK_FILE_BOTH and HAVE_GTK_FILE_SELECTION_NEW are also defined
which might explain the problem.

I built with 

,----
| make distclean
| CFLAGS=-DGTK_DISABLE_DEPRECATED -g -O2 ./configure
| make -k
`----

and ran into

,----
| gtkutil.c: In function 'xg_get_file_name_from_selector':
| gtkutil.c:1479: error: 'GtkFileSelection' undeclared (first use in this function)
| gtkutil.c:1479: error: (Each undeclared identifier is reported only once
| gtkutil.c:1479: error: for each function it appears in.)
| gtkutil.c:1479: error: 'filesel' undeclared (first use in this function)
| gtkutil.c: In function 'xg_get_file_with_selection':
| gtkutil.c:1503: error: 'GtkFileSelection' undeclared (first use in this function)
| gtkutil.c:1503: error: 'filesel' undeclared (first use in this function)
`----

Sven