@@ -168,7 +168,8 @@ sub format_2822_time {
168
168
# Example reply to:
169
169
# $initial_reply_to = ''; #<[email protected] >';
170
170
171
- my $repo = Git-> repository();
171
+ my $repo = eval { Git-> repository() };
172
+ my @repo = $repo ? ($repo ) : ();
172
173
my $term = eval {
173
174
$ENV {" GIT_SEND_EMAIL_NOTTY" }
174
175
? new Term::ReadLine ' git-send-email' , \*STDIN , \*STDOUT
@@ -271,25 +272,25 @@ sub read_config {
271
272
272
273
foreach my $setting (keys %config_bool_settings ) {
273
274
my $target = $config_bool_settings {$setting }-> [0];
274
- $$target = $repo -> config_bool(" $prefix .$setting " ) unless (defined $$target );
275
+ $$target = Git:: config_bool(@repo , " $prefix .$setting " ) unless (defined $$target );
275
276
}
276
277
277
278
foreach my $setting (keys %config_settings ) {
278
279
my $target = $config_settings {$setting };
279
280
if (ref ($target ) eq " ARRAY" ) {
280
281
unless (@$target ) {
281
- my @values = $repo -> config(" $prefix .$setting " );
282
+ my @values = Git:: config(@repo , " $prefix .$setting " );
282
283
@$target = @values if (@values && defined $values [0]);
283
284
}
284
285
}
285
286
else {
286
- $$target = $repo -> config(" $prefix .$setting " ) unless (defined $$target );
287
+ $$target = Git:: config(@repo , " $prefix .$setting " ) unless (defined $$target );
287
288
}
288
289
}
289
290
}
290
291
291
292
# read configuration from [sendemail "$identity"], fall back on [sendemail]
292
- $identity = $repo -> config(" sendemail.identity" ) unless (defined $identity );
293
+ $identity = Git:: config(@repo , " sendemail.identity" ) unless (defined $identity );
293
294
read_config(" sendemail.$identity " ) if (defined $identity );
294
295
read_config(" sendemail" );
295
296
@@ -327,8 +328,9 @@ sub read_config {
327
328
}
328
329
}
329
330
330
- my ($repoauthor ) = $repo -> ident_person(' author' );
331
- my ($repocommitter ) = $repo -> ident_person(' committer' );
331
+ my ($repoauthor , $repocommitter );
332
+ ($repoauthor ) = Git::ident_person(@repo , ' author' );
333
+ ($repocommitter ) = Git::ident_person(@repo , ' committer' );
332
334
333
335
# Verify the user input
334
336
@@ -415,7 +417,7 @@ sub read_config {
415
417
416
418
my $prompting = 0;
417
419
if (!defined $sender ) {
418
- $sender = $repoauthor || $repocommitter ;
420
+ $sender = $repoauthor || $repocommitter || ' ' ;
419
421
420
422
while (1) {
421
423
$_ = $term -> readline(" Who should the emails appear to be from? [$sender ] " );
@@ -509,7 +511,7 @@ sub expand_aliases {
509
511
EOT
510
512
close (C);
511
513
512
- my $editor = $ENV {GIT_EDITOR } || $repo -> config(" core.editor" ) || $ENV {VISUAL } || $ENV {EDITOR } || " vi" ;
514
+ my $editor = $ENV {GIT_EDITOR } || Git:: config(@repo , " core.editor" ) || $ENV {VISUAL } || $ENV {EDITOR } || " vi" ;
513
515
system (' sh' , ' -c' , ' $0 $@' , $editor , $compose_filename );
514
516
515
517
open (C2," >" ,$compose_filename . " .final" )
0 commit comments