Annotation of embedaddon/sudo/include/gettext.h, revision 1.1.1.2

1.1       misho       1: /*
                      2:  * Copyright (c) 2011 Todd C. Miller <Todd.Miller@courtesan.com>
                      3:  *
                      4:  * Permission to use, copy, modify, and distribute this software for any
                      5:  * purpose with or without fee is hereby granted, provided that the above
                      6:  * copyright notice and this permission notice appear in all copies.
                      7:  *
                      8:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                      9:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                     10:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                     11:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     12:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     13:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
                     14:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                     15:  */
                     16: 
                     17: #ifndef _SUDO_GETTEXT_H
                     18: #define _SUDO_GETTEXT_H
                     19: 
                     20: /*
                     21:  * Solaris locale.h includes libintl.h which causes problems when we
                     22:  * redefine the gettext functions.  We include it first to avoid this.
                     23:  */
1.1.1.2 ! misho      24: #if defined(HAVE_SETLOCALE) && defined(__sun__) && defined(__svr4__)
1.1       misho      25: # include <locale.h>
                     26: #endif
                     27: 
                     28: #ifdef HAVE_LIBINTL_H
                     29: 
                     30: # include <libintl.h>
                     31: 
                     32: /*
                     33:  * If DEFAULT_TEXT_DOMAIN is defined, use its value as the domain for
                     34:  * gettext() and ngettext() instead of the value set by textdomain().
                     35:  * This is used by the sudoers plugin as well as the convenience libraries.
                     36:  */
                     37: # ifdef DEFAULT_TEXT_DOMAIN
                     38: #  undef gettext
                     39: #  define gettext(String) \
                     40:     dgettext(DEFAULT_TEXT_DOMAIN, String)
                     41: #  undef ngettext
                     42: #  define ngettext(String, String_Plural, N) \
                     43:     dngettext(DEFAULT_TEXT_DOMAIN, String, String_Plural, N)
                     44: # endif
                     45: 
1.1.1.2 ! misho      46: /*
        !            47:  * Older versions of Solaris lack ngettext() so we have to kludge it.
        !            48:  */
        !            49: # ifndef HAVE_NGETTEXT
        !            50: #  undef ngettext
        !            51: #  define ngettext(String, String_Plural, N) \
        !            52:     ((N) == 1 ? gettext(String) : gettext(String_Plural))
        !            53: # endif
        !            54: 
1.1       misho      55: /* Gettext convenience macros */
                     56: # define _(String) gettext(String)
                     57: # define gettext_noop(String) String
                     58: # define N_(String) gettext_noop(String)
                     59: 
                     60: #else /* !HAVE_LIBINTL_H */
                     61: 
                     62: /*
                     63:  * Internationalization is either unavailable or has been disabled.
                     64:  * Define away the gettext functions used by sudo.
                     65:  */
                     66: # define _(String) String 
                     67: # define N_(String) String
                     68: # define textdomain(Domain)
                     69: # define bindtextdomain(Package, Directory)
                     70: # define ngettext(String, String_Plural, N) \
                     71:     ((N) == 1 ? (String) : (String_Plural))
                     72: 
                     73: #endif /* HAVE_LIBINTL_H */
                     74: 
                     75: #endif /* _SUDO_GETTEXT_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>