Ignore:
Timestamp:
Jun 23, 2014, 9:45:51 PM (11 years ago)
Author:
dmik
Message:

git: Merge version 2.0.0 from vendor to dmik branch.

Location:
git/branches/dmik
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • git/branches/dmik

  • TabularUnified git/branches/dmik/git-sh-i18n.sh

    r626 r782  
    1 #!/bin/sh
     1# This shell library is Git's interface to gettext.sh. See po/README
     2# for usage instructions.
    23#
    34# Copyright (c) 2010 Ævar Arnfjörð Bjarmason
    45#
    5 # This is Git's interface to gettext.sh. See po/README for usage
    6 # instructions.
    76
    87# Export the TEXTDOMAIN* data that we need for Git
     
    1716export TEXTDOMAINDIR
    1817
    19 if test -z "$GIT_GETTEXT_POISON"
     18# First decide what scheme to use...
     19GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
     20if test -n "@@USE_GETTEXT_SCHEME@@"
    2021then
    21         if test -z "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" && type gettext.sh >/dev/null 2>&1
    22         then
    23                 # This is GNU libintl's gettext.sh, we don't need to do anything
    24                 # else than setting up the environment and loading gettext.sh
    25                 GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
    26                 export GIT_INTERNAL_GETTEXT_SH_SCHEME
     22        GIT_INTERNAL_GETTEXT_SH_SCHEME="@@USE_GETTEXT_SCHEME@@"
     23elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"
     24then
     25        : no probing necessary
     26elif test -n "$GIT_GETTEXT_POISON"
     27then
     28        GIT_INTERNAL_GETTEXT_SH_SCHEME=poison
     29elif type gettext.sh >/dev/null 2>&1
     30then
     31        # GNU libintl's gettext.sh
     32        GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
     33elif test "$(gettext -h 2>&1)" = "-h"
     34then
     35        # gettext binary exists but no gettext.sh. likely to be a gettext
     36        # binary on a Solaris or something that is not GNU libintl and
     37        # lack eval_gettext.
     38        GIT_INTERNAL_GETTEXT_SH_SCHEME=gettext_without_eval_gettext
     39fi
     40export GIT_INTERNAL_GETTEXT_SH_SCHEME
    2741
    28                 # Try to use libintl's gettext.sh, or fall back to English if we
    29                 # can't.
    30                 . gettext.sh
    31 
    32         elif test -z "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" && test "$(gettext -h 2>&1)" = "-h"
    33         then
    34                 # We don't have gettext.sh, but there's a gettext binary in our
    35                 # path. This is probably Solaris or something like it which has a
    36                 # gettext implementation that isn't GNU libintl.
    37                 GIT_INTERNAL_GETTEXT_SH_SCHEME=solaris
    38                 export GIT_INTERNAL_GETTEXT_SH_SCHEME
    39 
    40                 # Solaris has a gettext(1) but no eval_gettext(1)
    41                 eval_gettext () {
    42                         gettext "$1" | (
    43                                 export PATH $(git sh-i18n--envsubst --variables "$1");
    44                                 git sh-i18n--envsubst "$1"
    45                         )
    46                 }
    47 
    48         else
    49                 # Since gettext.sh isn't available we'll have to define our own
    50                 # dummy pass-through functions.
    51 
    52                 # Tell our tests that we don't have the real gettext.sh
    53                 GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
    54                 export GIT_INTERNAL_GETTEXT_SH_SCHEME
    55 
    56                 gettext () {
    57                         printf "%s" "$1"
    58                 }
    59 
    60                 eval_gettext () {
    61                         printf "%s" "$1" | (
    62                                 export PATH $(git sh-i18n--envsubst --variables "$1");
    63                                 git sh-i18n--envsubst "$1"
    64                         )
    65                 }
    66         fi
    67 else
    68         # Emit garbage under GETTEXT_POISON=YesPlease. Unlike the C tests
    69         # this relies on an environment variable
    70 
    71         GIT_INTERNAL_GETTEXT_SH_SCHEME=poison
    72         export GIT_INTERNAL_GETTEXT_SH_SCHEME
    73 
     42# ... and then follow that decision.
     43case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in
     44gnu)
     45        # Use libintl's gettext.sh, or fall back to English if we can't.
     46        . gettext.sh
     47        ;;
     48gettext_without_eval_gettext)
     49        # Solaris has a gettext(1) but no eval_gettext(1)
     50        eval_gettext () {
     51                gettext "$1" | (
     52                        export PATH $(git sh-i18n--envsubst --variables "$1");
     53                        git sh-i18n--envsubst "$1"
     54                )
     55        }
     56        ;;
     57poison)
     58        # Emit garbage so that tests that incorrectly rely on translatable
     59        # strings will fail.
    7460        gettext () {
    7561                printf "%s" "# GETTEXT POISON #"
     
    7965                printf "%s" "# GETTEXT POISON #"
    8066        }
    81 fi
     67        ;;
     68*)
     69        gettext () {
     70                printf "%s" "$1"
     71        }
     72
     73        eval_gettext () {
     74                printf "%s" "$1" | (
     75                        export PATH $(git sh-i18n--envsubst --variables "$1");
     76                        git sh-i18n--envsubst "$1"
     77                )
     78        }
     79        ;;
     80esac
    8281
    8382# Git-specific wrapper functions
Note: See TracChangeset for help on using the changeset viewer.