mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
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))
|
ETC_GITATTRIBUTES_SQ = $(subst ','\'',$(ETC_GITATTRIBUTES))
|
||||||
|
|
||||||
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
|
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
|
||||||
|
NO_GETTEXT_SQ = $(subst ','\'',$(NO_GETTEXT))
|
||||||
bindir_SQ = $(subst ','\'',$(bindir))
|
bindir_SQ = $(subst ','\'',$(bindir))
|
||||||
bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
|
bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
|
||||||
mandir_SQ = $(subst ','\'',$(mandir))
|
mandir_SQ = $(subst ','\'',$(mandir))
|
||||||
|
@ -2276,6 +2277,7 @@ PERL_DEFINES += $(PERLLIB_EXTRA_SQ)
|
||||||
PERL_DEFINES += $(perllibdir_SQ)
|
PERL_DEFINES += $(perllibdir_SQ)
|
||||||
PERL_DEFINES += $(RUNTIME_PREFIX)
|
PERL_DEFINES += $(RUNTIME_PREFIX)
|
||||||
PERL_DEFINES += $(NO_PERL_CPAN_FALLBACKS)
|
PERL_DEFINES += $(NO_PERL_CPAN_FALLBACKS)
|
||||||
|
PERL_DEFINES += $(NO_GETTEXT)
|
||||||
|
|
||||||
# Support Perl runtime prefix. In this mode, a different header is installed
|
# Support Perl runtime prefix. In this mode, a different header is installed
|
||||||
# into Perl scripts.
|
# into Perl scripts.
|
||||||
|
@ -2680,6 +2682,7 @@ endif
|
||||||
perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES
|
perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES
|
||||||
$(QUIET_GEN)mkdir -p $(dir $@) && \
|
$(QUIET_GEN)mkdir -p $(dir $@) && \
|
||||||
sed -e 's|@@LOCALEDIR@@|$(perl_localedir_SQ)|g' \
|
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' \
|
-e 's|@@NO_PERL_CPAN_FALLBACKS@@|$(NO_PERL_CPAN_FALLBACKS_SQ)|g' \
|
||||||
< $< > $@
|
< $< > $@
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,19 @@ BEGIN
|
||||||
our @EXPORT = qw(__ __n N__);
|
our @EXPORT = qw(__ __n N__);
|
||||||
our @EXPORT_OK = @EXPORT;
|
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 {
|
sub __bootstrap_locale_messages {
|
||||||
our $TEXTDOMAIN = 'git';
|
our $TEXTDOMAIN = 'git';
|
||||||
our $TEXTDOMAINDIR ||= $ENV{GIT_TEXTDOMAINDIR} || '@@LOCALEDIR@@';
|
our $TEXTDOMAINDIR ||= $ENV{GIT_TEXTDOMAINDIR} || '@@LOCALEDIR@@';
|
||||||
|
die "NO_GETTEXT=" . NO_GETTEXT_STR if NO_GETTEXT;
|
||||||
|
|
||||||
require POSIX;
|
require POSIX;
|
||||||
POSIX->import(qw(setlocale));
|
POSIX->import(qw(setlocale));
|
||||||
|
|
Loading…
Reference in a new issue