New headers defining common gettext-support macros.
authorMatthias Clasen <maclas@gmx.de>
Wed, 5 Nov 2003 21:07:47 +0000 (21:07 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 5 Nov 2003 21:07:47 +0000 (21:07 +0000)
Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>

* glib/gi18n-lib.h:
* glib/gi18n.h: New headers defining common gettext-support
macros.

* glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
and gi18n-lib.h.

* glib/gstrfuncs.h:
* glib/gstrfuncs.c (g_strip_context): Auxiliary function for
the implementation of Q_().

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/Makefile.am
glib/gi18n-lib.h [new file with mode: 0644]
glib/gi18n.h [new file with mode: 0644]
glib/gstrfuncs.c
glib/gstrfuncs.h

index 7f357fd5e292288bbee1d9f651b24f83004dc433..3440ca83bde5f4b83c9559b431e4bd1a35bb037b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gi18n-lib.h: 
+       * glib/gi18n.h: New headers defining common gettext-support
+       macros.
+
+       * glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
+       and gi18n-lib.h.
+
+       * glib/gstrfuncs.h: 
+       * glib/gstrfuncs.c (g_strip_context): Auxiliary function for
+       the implementation of Q_().
+
 2003-11-05  Morten Welinder  <terra@gnome.org>
 
        * glib/garray.c (g_ptr_array_remove_range): Make it compile.
index 7f357fd5e292288bbee1d9f651b24f83004dc433..3440ca83bde5f4b83c9559b431e4bd1a35bb037b 100644 (file)
@@ -1,3 +1,16 @@
+Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gi18n-lib.h: 
+       * glib/gi18n.h: New headers defining common gettext-support
+       macros.
+
+       * glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
+       and gi18n-lib.h.
+
+       * glib/gstrfuncs.h: 
+       * glib/gstrfuncs.c (g_strip_context): Auxiliary function for
+       the implementation of Q_().
+
 2003-11-05  Morten Welinder  <terra@gnome.org>
 
        * glib/garray.c (g_ptr_array_remove_range): Make it compile.
index 7f357fd5e292288bbee1d9f651b24f83004dc433..3440ca83bde5f4b83c9559b431e4bd1a35bb037b 100644 (file)
@@ -1,3 +1,16 @@
+Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gi18n-lib.h: 
+       * glib/gi18n.h: New headers defining common gettext-support
+       macros.
+
+       * glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
+       and gi18n-lib.h.
+
+       * glib/gstrfuncs.h: 
+       * glib/gstrfuncs.c (g_strip_context): Auxiliary function for
+       the implementation of Q_().
+
 2003-11-05  Morten Welinder  <terra@gnome.org>
 
        * glib/garray.c (g_ptr_array_remove_range): Make it compile.
index 7f357fd5e292288bbee1d9f651b24f83004dc433..3440ca83bde5f4b83c9559b431e4bd1a35bb037b 100644 (file)
@@ -1,3 +1,16 @@
+Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gi18n-lib.h: 
+       * glib/gi18n.h: New headers defining common gettext-support
+       macros.
+
+       * glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
+       and gi18n-lib.h.
+
+       * glib/gstrfuncs.h: 
+       * glib/gstrfuncs.c (g_strip_context): Auxiliary function for
+       the implementation of Q_().
+
 2003-11-05  Morten Welinder  <terra@gnome.org>
 
        * glib/garray.c (g_ptr_array_remove_range): Make it compile.
index 7f357fd5e292288bbee1d9f651b24f83004dc433..3440ca83bde5f4b83c9559b431e4bd1a35bb037b 100644 (file)
@@ -1,3 +1,16 @@
+Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gi18n-lib.h: 
+       * glib/gi18n.h: New headers defining common gettext-support
+       macros.
+
+       * glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
+       and gi18n-lib.h.
+
+       * glib/gstrfuncs.h: 
+       * glib/gstrfuncs.c (g_strip_context): Auxiliary function for
+       the implementation of Q_().
+
 2003-11-05  Morten Welinder  <terra@gnome.org>
 
        * glib/garray.c (g_ptr_array_remove_range): Make it compile.
index 7f357fd5e292288bbee1d9f651b24f83004dc433..3440ca83bde5f4b83c9559b431e4bd1a35bb037b 100644 (file)
@@ -1,3 +1,16 @@
+Wed Nov  5 22:05:19 2003  Matthias Clasen  <maclas@gmx.de>
+
+       * glib/gi18n-lib.h: 
+       * glib/gi18n.h: New headers defining common gettext-support
+       macros.
+
+       * glib/Makefile.am (glibsubinclude_HEADERS): Add gi18n.h
+       and gi18n-lib.h.
+
+       * glib/gstrfuncs.h: 
+       * glib/gstrfuncs.c (g_strip_context): Auxiliary function for
+       the implementation of Q_().
+
 2003-11-05  Morten Welinder  <terra@gnome.org>
 
        * glib/garray.c (g_ptr_array_remove_range): Make it compile.
index 1dc317a8930d98a570d6732a86cec07f14f15b5f..2741dccb54bfffc771aded8385a63a857cd79fc5 100644 (file)
@@ -123,6 +123,8 @@ glibsubinclude_HEADERS =   \
        gfileutils.h    \
        ghash.h         \
        ghook.h         \
+       gi18n.h         \
+       gi18n-lib.h     \
        giochannel.h    \
        glist.h         \
        gmacros.h       \
diff --git a/glib/gi18n-lib.h b/glib/gi18n-lib.h
new file mode 100644 (file)
index 0000000..dc1a620
--- /dev/null
@@ -0,0 +1,55 @@
+/* GLIB - Library of useful routines for C programming
+ * Copyright (C) 1995-1997, 2002  Peter Mattis, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+#ifndef __G_I18N_LIB_H__
+#define __G_I18N_LIB_H__
+
+#include <glib/gstrfuncs.h>
+
+#ifdef ENABLE_NLS
+
+#include <libintl.h>
+
+#ifndef GETTEXT_PACKAGE
+#error You must define GETTEXT_PACKAGE before including gi18n-lib.h.
+#endif
+
+#define _(String) dgettext (GETTEXT_PACKAGE, String)
+#define Q_(String) g_strip_context ((String), dgettext (GETTEXT_PACKAGE, String))
+#ifdef gettext_noop
+#define N_(String) gettext_noop (String)
+#else
+#define N_(String) (String)
+#endif
+
+#else /* NLS is disabled */
+
+#define _(String) (String)
+#define Q_(String) (String)
+#define N_(String) (String)
+#define textdomain(String) (String)
+#define gettext(String) (String)
+#define dgettext(Domain,String) (String)
+#define dcgettext(Domain,String,Type) (String)
+#define bindtextdomain(Domain,Directory) (Domain) 
+
+#endif
+
+#endif  /* __G_I18N_LIB_H__ */
+
+
diff --git a/glib/gi18n.h b/glib/gi18n.h
new file mode 100644 (file)
index 0000000..1bbb6eb
--- /dev/null
@@ -0,0 +1,50 @@
+/* GLIB - Library of useful routines for C programming
+ * Copyright (C) 1995-1997, 2002  Peter Mattis, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+#ifndef __G_I18N_H__
+#define __G_I18N_H__
+
+#include <glib/gstrfuncs.h>
+
+#ifdef ENABLE_NLS
+
+#include <libintl.h>
+#define _(String) gettext (String)
+#define Q_(String) g_strip_context ((String), gettext (String))
+#ifdef gettext_noop
+#define N_(String) gettext_noop (String)
+#else
+#define N_(String) (String)
+#endif
+
+#else /* NLS is disabled */
+
+#define _(String) (String)
+#define Q_(String) (String)
+#define N_(String) (String)
+#define textdomain(String) (String)
+#define gettext(String) (String)
+#define dgettext(Domain,String) (String)
+#define dcgettext(Domain,String,Type) (String)
+#define bindtextdomain(Domain,Directory) (Domain) 
+
+#endif
+
+#endif  /* __G_I18N_H__ */
+
+
index 30072a0a6fddba7e769dbf12bd31766bd44a17aa..31c655401f586b6cccc8925a7aa9aa3fd853f7bf 100644 (file)
@@ -2545,3 +2545,30 @@ g_str_has_prefix (const gchar  *str,
   return strncmp (str, prefix, prefix_len) == 0;
 }
 
+
+/**
+ * g_strip_context:
+ * @msgid: a string
+ * @msgval: another string
+ * 
+ * An auxiliary function for gettext() support (see Q_()).
+ * 
+ * Return value: @msgval, unless @msgval is identical to @msgid and contains
+ *   a '|' character, in which case a pointer to the substring of msgid after
+ *   the first '|' character is returned. 
+ *
+ * Since: 2.4
+ **/
+G_CONST_RETURN gchar *
+g_strip_context  (const gchar *msgid, 
+                 const gchar *msgval)
+{
+  if (msgval == msgid)
+    {
+      const char *c = strchr (msgid, '|');
+      if (c != NULL)
+       return c + 1;
+    }
+  
+  return msgval;
+}
index 4b182c42dde4519004ae4f6924229a8863e26286..785bee6f8a591ee7eb239ae2ff8f2f4e521412b2 100644 (file)
@@ -231,6 +231,9 @@ gchar**               g_strdupv        (gchar       **str_array);
 gchar*                g_stpcpy         (gchar        *dest,
                                         const char   *src);
 
+G_CONST_RETURN gchar *g_strip_context  (const gchar *msgid, 
+                                       const gchar *msgval);
+
 G_END_DECLS
 
 #endif /* __G_STRFUNCS_H__ */