From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jan Krüger" <jk@jk.gs>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH 09/20] gettext: add GETTEXT_POISON support for shell scripts
Date: Tue, 7 Sep 2010 16:47:45 +0000 [thread overview]
Message-ID: <1283878065-19349-6-git-send-email-avarab@gmail.com> (raw)
In-Reply-To: <1283877955-19105-1-git-send-email-avarab@gmail.com>
Expand the existing GETTEXT_POISON=YesPlease support to support shell
scripts. Analogous the existing C support this is needed to test that
changes to the output of the shell scripts don't break the plumbing
output.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
git-sh-i18n.sh | 73 ++++++++++++++++++++++++++----------------
t/t0201-gettext-fallbacks.sh | 12 +++---
t/test-lib.sh | 8 ++++-
3 files changed, 58 insertions(+), 35 deletions(-)
diff --git a/git-sh-i18n.sh b/git-sh-i18n.sh
index 698a000..b8b645a 100644
--- a/git-sh-i18n.sh
+++ b/git-sh-i18n.sh
@@ -28,44 +28,61 @@ else
fi
export TEXTDOMAINDIR
-if test -z "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" && type gettext.sh >/dev/null 2>&1
+if test -z "$GIT_INTERNAL_GETTEXT_GETTEXT_POISON"
then
- # This is GNU libintl's gettext.sh, we don't need to do anything
- # else than setting up the environment and loading gettext.sh
- GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
- export GIT_INTERNAL_GETTEXT_SH_SCHEME
+ if test -z "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" && type gettext.sh >/dev/null 2>&1
+ then
+ # This is GNU libintl's gettext.sh, we don't need to do anything
+ # else than setting up the environment and loading gettext.sh
+ GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
+ export GIT_INTERNAL_GETTEXT_SH_SCHEME
- # Try to use libintl's gettext.sh, or fall back to English if we
- # can't.
- . gettext.sh
-elif test -z "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" && test "$(gettext -h 2>&1)" = "-h"
-then
- # We don't have gettext.sh, but there's a gettext binary in our
- # path. This is probably Solaris or something like it which has a
- # gettext implementation that isn't GNU libintl.
- GIT_INTERNAL_GETTEXT_SH_SCHEME=solaris
- export GIT_INTERNAL_GETTEXT_SH_SCHEME
+ # Try to use libintl's gettext.sh, or fall back to English if we
+ # can't.
+ . gettext.sh
+ elif test -z "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" && test "$(gettext -h 2>&1)" = "-h"
+ then
+ # We don't have gettext.sh, but there's a gettext binary in our
+ # path. This is probably Solaris or something like it which has a
+ # gettext implementation that isn't GNU libintl.
+ GIT_INTERNAL_GETTEXT_SH_SCHEME=solaris
+ export GIT_INTERNAL_GETTEXT_SH_SCHEME
- # Solaris has a gettext(1) but no eval_gettext(1)
- eval_gettext () {
- gettext_out=$(gettext "$1")
- gettext_eval="printf '%s' \"$gettext_out\""
- printf "%s" "`eval \"$gettext_eval\"`"
- }
+ # Solaris has a gettext(1) but no eval_gettext(1)
+ eval_gettext () {
+ gettext_out=$(gettext "$1")
+ gettext_eval="printf '%s' \"$gettext_out\""
+ printf "%s" "`eval \"$gettext_eval\"`"
+ }
+ else
+ # Since gettext.sh isn't available we'll have to define our own
+ # dummy pass-through functions.
+
+ # Tell our tests that we don't have the real gettext.sh
+ GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
+ export GIT_INTERNAL_GETTEXT_SH_SCHEME
+
+ gettext () {
+ printf "%s" "$1"
+ }
+
+ eval_gettext () {
+ gettext_eval="printf '%s' \"$1\""
+ printf "%s" "`eval \"$gettext_eval\"`"
+ }
+ fi
else
- # Since gettext.sh isn't available we'll have to define our own
- # dummy pass-through functions.
+ # Emit garbage under GETTEXT_POISON=YesPlease. Unlike the C tests
+ # this relies on an environment variable
- # Tell our tests that we don't have the real gettext.sh
- GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
+ GIT_INTERNAL_GETTEXT_SH_SCHEME=poison
export GIT_INTERNAL_GETTEXT_SH_SCHEME
gettext () {
- printf "%s" "$1"
+ printf "%s" "# GETTEXT POISON #"
}
eval_gettext () {
- gettext_eval="printf '%s' \"$1\""
- printf "%s" "`eval \"$gettext_eval\"`"
+ printf "%s" "# GETTEXT POISON #"
}
fi
diff --git a/t/t0201-gettext-fallbacks.sh b/t/t0201-gettext-fallbacks.sh
index 47ce4f6..7a85d9b 100755
--- a/t/t0201-gettext-fallbacks.sh
+++ b/t/t0201-gettext-fallbacks.sh
@@ -10,19 +10,19 @@ export GIT_INTERNAL_GETTEXT_TEST_FALLBACKS
. ./lib-gettext.sh
-test_expect_success "sanity: \$GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to $GIT_INTERNAL_GETTEXT_SH_SCHEME)" '
+test_expect_success NO_GETTEXT_POISON "sanity: \$GIT_INTERNAL_GETTEXT_SH_SCHEME is set (to $GIT_INTERNAL_GETTEXT_SH_SCHEME)" '
test -n "$GIT_INTERNAL_GETTEXT_SH_SCHEME"
'
-test_expect_success 'sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set' '
+test_expect_success NO_GETTEXT_POISON 'sanity: $GIT_INTERNAL_GETTEXT_TEST_FALLBACKS is set' '
test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"
'
-test_expect_success 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough' '
+test_expect_success NO_GETTEXT_POISON 'sanity: $GIT_INTERNAL_GETTEXT_SH_SCHEME" is fallthrough' '
test "$GIT_INTERNAL_GETTEXT_SH_SCHEME" = "fallthrough"
'
-test_expect_success 'gettext: our gettext() fallback has pass-through semantics' '
+test_expect_success NO_GETTEXT_POISON 'gettext: our gettext() fallback has pass-through semantics' '
printf "test" >expect &&
gettext "test" >actual &&
test_cmp expect actual &&
@@ -31,7 +31,7 @@ test_expect_success 'gettext: our gettext() fallback has pass-through semantics'
test_cmp expect actual
'
-test_expect_success 'eval_gettext: our eval_gettext() fallback has pass-through semantics' '
+test_expect_success NO_GETTEXT_POISON 'eval_gettext: our eval_gettext() fallback has pass-through semantics' '
printf "test" >expect &&
eval_gettext "test" >actual &&
test_cmp expect actual &&
@@ -40,7 +40,7 @@ test_expect_success 'eval_gettext: our eval_gettext() fallback has pass-through
test_cmp expect actual
'
-test_expect_success 'eval_gettext: our eval_gettext() fallback can interpolate variables' '
+test_expect_success NO_GETTEXT_POISON 'eval_gettext: our eval_gettext() fallback can interpolate variables' '
printf "test YesPlease" >expect &&
eval_gettext "test \$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" >actual &&
test_cmp expect actual
diff --git a/t/test-lib.sh b/t/test-lib.sh
index b297ef6..5a9f989 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -963,7 +963,13 @@ esac
test -z "$NO_PERL" && test_set_prereq PERL
test -z "$NO_PYTHON" && test_set_prereq PYTHON
test -z "$NO_GETTEXT" && test_set_prereq GETTEXT
-test -z "$GETTEXT_POISON" && test_set_prereq NO_GETTEXT_POISON
+if test -z "$GETTEXT_POISON"
+then
+ test_set_prereq NO_GETTEXT_POISON
+else
+ GIT_INTERNAL_GETTEXT_GETTEXT_POISON=YesPlease
+ export GIT_INTERNAL_GETTEXT_GETTEXT_POISON
+fi
# test whether the filesystem supports symbolic links
ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS
--
1.7.2.3.313.gcd15
next prev parent reply other threads:[~2010-09-07 16:51 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-07 16:45 [PATCH 00/20] [CONTINUE] Add gettext support to Git Ævar Arnfjörð Bjarmason
2010-09-07 16:45 ` [PATCH 01/20] gettextize: git-clean clean.requireForce braces Ævar Arnfjörð Bjarmason
2010-09-07 16:45 ` [PATCH 02/20] gettextize: git-clone "Cloning into" message braces Ævar Arnfjörð Bjarmason
2010-09-07 16:47 ` [PATCH 04/20] Makefile: add GNU_GETTEXT, set when we expect GNU gettext Ævar Arnfjörð Bjarmason
2010-09-07 16:47 ` [PATCH 05/20] Makefile: MSGFMT="msgfmt --check" under GNU_GETTEXT Ævar Arnfjörð Bjarmason
2010-09-07 16:47 ` [PATCH 06/20] Revert "gettextize: git-revert mark the "me" variable for translation" Ævar Arnfjörð Bjarmason
2010-09-07 16:47 ` [PATCH 07/20] gettextize: git-revert "Your local changes" message Ævar Arnfjörð Bjarmason
2010-09-07 16:47 ` [PATCH 08/20] gettextize: git-revert literal "me" messages Ævar Arnfjörð Bjarmason
2010-09-07 16:47 ` Ævar Arnfjörð Bjarmason [this message]
2010-09-07 16:48 ` [PATCH 10/20] gettext: add GETTEXT_POISON tests for shell scripts Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 11/20] gettextize: git-am add git-sh-i18n Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 12/20] gettextize: git-am one-line gettext $msg; echo Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 13/20] gettextize: git-am multi-line getttext " Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 14/20] gettextize: git-am eval_gettext messages Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 15/20] gettextize: git-am die messages Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 16/20] gettextize: git-am cannot_fallback messages Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 17/20] gettextize: git-am clean_abort messages Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 18/20] gettextize: git-am "Apply?" message Ævar Arnfjörð Bjarmason
2010-09-07 16:48 ` [PATCH 19/20] gettextize: git-am core say messages Ævar Arnfjörð Bjarmason
2010-09-07 16:50 ` [PATCH 20/20] gettextize: git-am printf(1) message to eval_gettext Ævar Arnfjörð Bjarmason
2010-09-07 20:10 ` Jonathan Nieder
2010-09-07 20:29 ` Ævar Arnfjörð Bjarmason
2010-09-07 20:32 ` Jonathan Nieder
2010-09-07 20:46 ` [PATCH v2 " Ævar Arnfjörð Bjarmason
2010-09-07 20:45 ` [PATCH v2 19/20] gettextize: git-am core say messages Ævar Arnfjörð Bjarmason
2010-09-08 16:43 ` [PATCH 00/20] [CONTINUE] Add gettext support to Git Junio C Hamano
2010-09-08 23:32 ` Ævar Arnfjörð Bjarmason
2010-09-10 12:00 ` Ævar Arnfjörð Bjarmason
2010-09-10 16:01 ` Junio C Hamano
2010-09-10 17:17 ` Ævar Arnfjörð Bjarmason
2010-09-10 19:35 ` [PATCH 0/5] gettext docs: programmer docs in po/README Ævar Arnfjörð Bjarmason
2010-09-10 23:21 ` Ævar Arnfjörð Bjarmason
2010-09-10 19:35 ` [PATCH 1/5] gettext docs: add a "Testing your changes" section to po/README Ævar Arnfjörð Bjarmason
2010-09-10 19:35 ` [PATCH 2/5] gettext docs: add "Marking strings for translation" section in po/README Ævar Arnfjörð Bjarmason
2010-09-10 22:26 ` Junio C Hamano
2010-09-10 22:31 ` Ævar Arnfjörð Bjarmason
2010-09-10 19:35 ` [PATCH 3/5] gettext docs: the gettext.h C interface Ævar Arnfjörð Bjarmason
2010-09-10 22:30 ` Junio C Hamano
2010-09-10 22:53 ` Ævar Arnfjörð Bjarmason
2010-09-10 22:52 ` Junio C Hamano
2010-09-10 23:03 ` Ævar Arnfjörð Bjarmason
2010-09-10 23:06 ` Junio C Hamano
2010-09-10 23:16 ` Ævar Arnfjörð Bjarmason
2010-09-10 19:35 ` [PATCH 4/5] gettext docs: the git-sh-i18n.sh Shell interface Ævar Arnfjörð Bjarmason
2010-09-10 22:54 ` Junio C Hamano
2010-09-10 22:58 ` Ævar Arnfjörð Bjarmason
2010-09-10 19:35 ` [PATCH 5/5] gettext docs: the Git::I18N Perl interface Ævar Arnfjörð Bjarmason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1283878065-19349-6-git-send-email-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jk@jk.gs \
--cc=jrnieder@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).