diff src/os_win32.c @ 9754:a990e7ed260b v7.4.2152

commit https://github.com/vim/vim/commit/ee695f787ade7fd88fc5f5497553d95c0c3645b5 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Aug 3 22:08:45 2016 +0200 patch 7.4.2152 Problem: No proper translation of messages with a count. Solution: Use ngettext(). (Sergey Alyoshin)
author Christian Brabandt <cb@256bit.org>
date Wed, 03 Aug 2016 22:15:06 +0200
parents 0f4b76b2757a
children 93dcc4329c74
line wrap: on
line diff
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -472,12 +472,15 @@ vimLoadLib(char *name)
 # endif
 /* Dummy functions */
 static char *null_libintl_gettext(const char *);
+static char *null_libintl_ngettext(const char *, const char *, unsigned long n);
 static char *null_libintl_textdomain(const char *);
 static char *null_libintl_bindtextdomain(const char *, const char *);
 static char *null_libintl_bind_textdomain_codeset(const char *, const char *);
 
 static HINSTANCE hLibintlDLL = NULL;
 char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
+char *(*dyn_libintl_ngettext)(const char *, const char *, unsigned long n)
+						= null_libintl_ngettext;
 char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
 char *(*dyn_libintl_bindtextdomain)(const char *, const char *)
 						= null_libintl_bindtextdomain;
@@ -495,6 +498,7 @@ dyn_libintl_init(void)
     } libintl_entry[] =
     {
 	{"gettext", (FARPROC*)&dyn_libintl_gettext},
+	{"ngettext", (FARPROC*)&dyn_libintl_ngettext},
 	{"textdomain", (FARPROC*)&dyn_libintl_textdomain},
 	{"bindtextdomain", (FARPROC*)&dyn_libintl_bindtextdomain},
 	{NULL, NULL}
@@ -553,6 +557,7 @@ dyn_libintl_end(void)
 	FreeLibrary(hLibintlDLL);
     hLibintlDLL			= NULL;
     dyn_libintl_gettext		= null_libintl_gettext;
+    dyn_libintl_ngettext	= null_libintl_ngettext;
     dyn_libintl_textdomain	= null_libintl_textdomain;
     dyn_libintl_bindtextdomain	= null_libintl_bindtextdomain;
     dyn_libintl_bind_textdomain_codeset = null_libintl_bind_textdomain_codeset;
@@ -567,6 +572,16 @@ null_libintl_gettext(const char *msgid)
 
 /*ARGSUSED*/
     static char *
+null_libintl_ngettext(
+	const char *msgid,
+	const char *msgid_plural,
+	unsigned long n)
+{
+    return n == 1 ? msgid : msgid_plural;
+}
+
+/*ARGSUSED*/
+    static char *
 null_libintl_bindtextdomain(const char *domainname, const char *dirname)
 {
     return NULL;