perl: use mock i18n functions under NO_GETTEXT=Y
Change the logic of the i18n functions I added in 5e9637c629
(i18n:
add infrastructure for translating Git with gettext, 2011-11-18) to
use pass-through functions when NO_GETTEXT is defined.
This speeds up the compilation time of commands that use this library
when NO_GETTEXT=Y is in effect. Loading it and POSIX.pm is around 20ms
on my machine, whereas it takes 2ms to just instantiate perl itself.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
368a50d9ee
commit
256c2dc42c
3
Makefile
3
Makefile
@ -1986,6 +1986,7 @@ ETC_GITCONFIG_SQ = $(subst ','\'',$(ETC_GITCONFIG))
|
||||
ETC_GITATTRIBUTES_SQ = $(subst ','\'',$(ETC_GITATTRIBUTES))
|
||||
|
||||
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
|
||||
NO_GETTEXT_SQ = $(subst ','\'',$(NO_GETTEXT))
|
||||
bindir_SQ = $(subst ','\'',$(bindir))
|
||||
bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
|
||||
mandir_SQ = $(subst ','\'',$(mandir))
|
||||
@ -2276,6 +2277,7 @@ PERL_DEFINES += $(PERLLIB_EXTRA_SQ)
|
||||
PERL_DEFINES += $(perllibdir_SQ)
|
||||
PERL_DEFINES += $(RUNTIME_PREFIX)
|
||||
PERL_DEFINES += $(NO_PERL_CPAN_FALLBACKS)
|
||||
PERL_DEFINES += $(NO_GETTEXT)
|
||||
|
||||
# Support Perl runtime prefix. In this mode, a different header is installed
|
||||
# into Perl scripts.
|
||||
@ -2680,6 +2682,7 @@ endif
|
||||
perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES
|
||||
$(QUIET_GEN)mkdir -p $(dir $@) && \
|
||||
sed -e 's|@@LOCALEDIR@@|$(perl_localedir_SQ)|g' \
|
||||
-e 's|@@NO_GETTEXT@@|$(NO_GETTEXT_SQ)|g' \
|
||||
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|$(NO_PERL_CPAN_FALLBACKS_SQ)|g' \
|
||||
< $< > $@
|
||||
|
||||
|
@ -16,9 +16,19 @@ BEGIN {
|
||||
our @EXPORT = qw(__ __n N__);
|
||||
our @EXPORT_OK = @EXPORT;
|
||||
|
||||
# See Git::LoadCPAN's NO_PERL_CPAN_FALLBACKS_STR for a description of
|
||||
# this "'@@' [...] '@@'" pattern.
|
||||
use constant NO_GETTEXT_STR => '@@' . 'NO_GETTEXT' . '@@';
|
||||
use constant NO_GETTEXT => (
|
||||
q[@@NO_GETTEXT@@] ne ''
|
||||
and
|
||||
q[@@NO_GETTEXT@@] ne NO_GETTEXT_STR
|
||||
);
|
||||
|
||||
sub __bootstrap_locale_messages {
|
||||
our $TEXTDOMAIN = 'git';
|
||||
our $TEXTDOMAINDIR ||= $ENV{GIT_TEXTDOMAINDIR} || '@@LOCALEDIR@@';
|
||||
die "NO_GETTEXT=" . NO_GETTEXT_STR if NO_GETTEXT;
|
||||
|
||||
require POSIX;
|
||||
POSIX->import(qw(setlocale));
|
||||
|
Loading…
Reference in New Issue
Block a user