git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] send-email: recognize absolute path on Windows

From
Erik Faye-Lund <kusmabite@gmail.com>
Date
Apr 15, 2014, 10:42 UTC
Message-ID
<CABPQNSafmC-7zNJZJSZm598pF37_xUMUopgZ3c=ttL_wRDYsfQ@mail.gmail.com>
In-Reply-To
<534D0ADB.7070702@viscovery.net>
On Tue, Apr 15, 2014 at 12:32 PM, Johannes Sixt <j.sixt@viscovery.net> wrote:
Show 26 quoted lines
> Am 4/15/2014 10:44, schrieb Erik Faye-Lund:
>> From: Erik Faye-Lund <kusmabite@googlemail.com>
>>
>> On Windows, absolute paths might start with a DOS drive prefix,
>> which this check fails to recognize.
>>
>> Unfortunately, we cannot simply use the file_name_is_absolute
>> helper in File::Spec::Functions, because Git for Windows has an
>> MSYS-based Perl, where this helper doesn't grok DOS
>> drive-prefixes.
>>
>> So let's manually check for these in that case, and fall back to
>> the File::Spec-helper on other platforms (e.g Win32 with native
>> Perl)
>>
>> Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
>> ---
>>
>> Here's a patch that we've been running with a variation of in
>> Git for Windows for a while. That version wasn't quite palatable,
>> as it recognized DOS drive-prefixes on all platforms.
>
> Did you consider patching msysgit's lib/perl5/5.8.8/File/Spec.pm by
> inserting a line "msys => 'Win32'," near the top of the file; it is the
> hash table that decides which path "style" is selected depending on $^O.
> Then File::Spec->file_name_is_absolute($path) could be used without a wrapper.
I did not, but that works, and is IMO much nicer. Thanks for the idea!
Show 40 quoted lines
>>
>>  git-send-email.perl | 14 +++++++++++++-
>>  1 file changed, 13 insertions(+), 1 deletion(-)
>>
>> diff --git a/git-send-email.perl b/git-send-email.perl
>> index fdb0029..c4d85a7 100755
>> --- a/git-send-email.perl
>> +++ b/git-send-email.perl
>> @@ -1113,6 +1113,18 @@ sub ssl_verify_params {
>>       }
>>  }
>>
>> +sub file_name_is_absolute {
>> +     my ($path) = @_;
>> +
>> +     # msys does not grok DOS drive-prefixes
>> +     if ($^O eq 'msys') {
>> +             return ($path =~ m#^/# || $path =~ m#[a-zA-Z]\:#)
>> +     }
>> +
>> +     require File::Spec::Functions;
>> +     return File::Spec::Functions::file_name_is_absolute($path);
>> +}
>> +
>>  # Returns 1 if the message was sent, and 0 otherwise.
>>  # In actuality, the whole program dies when there
>>  # is an error sending a message.
>> @@ -1197,7 +1209,7 @@ X-Mailer: git-send-email $gitversion
>>
>>       if ($dry_run) {
>>               # We don't want to send the email.
>> -     } elsif ($smtp_server =~ m#^/#) {
>> +     } elsif (file_name_is_absolute($smtp_server)) {
>>               my $pid = open my $sm, '|-';
>>               defined $pid or die $!;
>>               if (!$pid) {
>>
>
> There's another instance in the non-$quiet code path around line 1275 that
> needs the same treatment.
Good catch, thanks!
-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Previous: Johannes SixtNext: Junio C Hamano
Message 3 of 8 in “send-email: recognize absolute path on Windows”
  1. send-email: recognize absolute path on WindowsErik Faye-Lund, Apr 15, 2014
  2. Johannes SixtApr 15, 2014
  3. Erik Faye-LundApr 15, 2014
  4. Re* [PATCH] send-email: recognize absolute path on WindowsJunio C Hamano, Apr 15, 2014
  5. Junio C HamanoApr 15, 2014
  6. Erik Faye-LundApr 15, 2014
  7. Junio C HamanoApr 15, 2014
  8. Erik Faye-LundApr 15, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.