From: Matthias Clasen Date: Wed, 5 Nov 2003 21:07:47 +0000 (+0000) Subject: New headers defining common gettext-support macros. X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=2807b4e6eb29c52ac8bd4e9f59c5c58580a9a4e3;p=dana%2Fcg-glib.git New headers defining common gettext-support macros. Wed Nov 5 22:05:19 2003 Matthias Clasen * 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_(). --- diff --git a/ChangeLog b/ChangeLog index 7f357fd5..3440ca83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +Wed Nov 5 22:05:19 2003 Matthias Clasen + + * 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 * glib/garray.c (g_ptr_array_remove_range): Make it compile. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 7f357fd5..3440ca83 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,16 @@ +Wed Nov 5 22:05:19 2003 Matthias Clasen + + * 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 * glib/garray.c (g_ptr_array_remove_range): Make it compile. diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 7f357fd5..3440ca83 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,16 @@ +Wed Nov 5 22:05:19 2003 Matthias Clasen + + * 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 * glib/garray.c (g_ptr_array_remove_range): Make it compile. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 7f357fd5..3440ca83 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,16 @@ +Wed Nov 5 22:05:19 2003 Matthias Clasen + + * 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 * glib/garray.c (g_ptr_array_remove_range): Make it compile. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 7f357fd5..3440ca83 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,16 @@ +Wed Nov 5 22:05:19 2003 Matthias Clasen + + * 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 * glib/garray.c (g_ptr_array_remove_range): Make it compile. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 7f357fd5..3440ca83 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,16 @@ +Wed Nov 5 22:05:19 2003 Matthias Clasen + + * 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 * glib/garray.c (g_ptr_array_remove_range): Make it compile. diff --git a/glib/Makefile.am b/glib/Makefile.am index 1dc317a8..2741dccb 100644 --- a/glib/Makefile.am +++ b/glib/Makefile.am @@ -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 index 00000000..dc1a6208 --- /dev/null +++ b/glib/gi18n-lib.h @@ -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 + +#ifdef ENABLE_NLS + +#include + +#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 index 00000000..1bbb6eb6 --- /dev/null +++ b/glib/gi18n.h @@ -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 + +#ifdef ENABLE_NLS + +#include +#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__ */ + + diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c index 30072a0a..31c65540 100644 --- a/glib/gstrfuncs.c +++ b/glib/gstrfuncs.c @@ -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; +} diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h index 4b182c42..785bee6f 100644 --- a/glib/gstrfuncs.h +++ b/glib/gstrfuncs.h @@ -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__ */