2017-01-09 12:27 GMT+09:00 h_east <[email protected]>:

> Hi Bram and list,
>
> A build error has occurred with the following configure on Fedora 23.
>
> $ make distclean
> $ ./configure --with-features=small --enable-gui=gnome2
> --enable-fail-if-missing
> $ make
>
> In file included from gui_gtk.c:34:0:
> /usr/include/libintl.h:61:14: error: expected identifier or '(' before
> 'unsigned'
>  extern char *ngettext (const char *__msgid1, const char *__msgid2,
>               ^
> vim.h:606:35: error: expected ')' before '==' token
>  # define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
>                                    ^
> vim.h:606:41: error: expected ')' before '?' token
>  # define ngettext(x, xs, n) (((n) == 1) ? (char *)(x) : (char *)(xs))
>                                          ^
> Makefile:2971: recipe for target 'objects/gui_gtk.o' failed
> make[1]: *** [objects/gui_gtk.o] Error 1
> make[1]: Leaving directory '/home/h_east/samba/github/vim/src'
> Makefile:26: recipe for target 'first' failed
> make: *** [first] Error 2
>
>
> I wrote a patch.  But I don't know this patch is correct...
>

I'm afraid the proposed patch is a sort of overkill, because FEAT_GUI_GTK
is broader than FEAT_GUI_GNOME.

So, let me explain another way to fix the issue.

With the small build, FEAT_GETTEXT is kept undefined (feature.h:607--613),
and hence Vim is supposed not to include libintl.h; instead, Vim defines
ngettext() and other libintl macros such as _() and N_() for itself
(vim.h:584--619).

Meanwhile, when the gnome2 feature is enabled, gui_gtk.c includes gnome.h
at line 72, and, as written in the comment at gui_gtk.c:50, gnome.h is said
to redefine some libintl macros.

Seeing the error message, I guess gnome.h also redefines ngettext().

Therefore, I think following the way gui_gtk.c:49--73 does could give
another solution to the issue, namely,

diff --git a/src/gui_gtk.c b/src/gui_gtk.c
index 8686381b0..c015d7ee6 100644
--- a/src/gui_gtk.c
+++ b/src/gui_gtk.c
@@ -51,6 +51,9 @@
 # ifdef _
 #  undef _
 # endif
+# ifdef ngettext
+#  undef ngettext
+# endif
 # ifdef N_
 #  undef N_
 # endif

--
> Best regards,
> Hirohito Higashi (a.k.a. h_east)
>

Best regards,
Kazunobu Kuriyama

>
> --
> --
> You received this message from the "vim_dev" maillist.
> Do not top-post! Type your reply below the text you are replying to.
> For more information, visit http://www.vim.org/maillist.php
>
> ---
> You received this message because you are subscribed to the Google Groups
> "vim_dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui