{"thread":{"id":"38600","subject":"SVN.pm produces \"Wide character in setenv\" warnings","startedAt":"2015-02-19T06:49:45Z","lastAt":"2015-02-19T06:49:45Z","messageCount":1,"participants":["Orivej Desh"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"256336","messageId":"m3h9ui4cqe.fsf@gmx.fr","threadId":"38600","inReplyTo":null,"subject":"SVN.pm produces \"Wide character in setenv\" warnings","fromName":"Orivej Desh","fromEmail":"orivej@gmx.fr","sentAt":"2015-02-19T06:49:45Z","receivedAt":"2015-02-19T06:49:45Z","isPatch":false,"sender":{"key":"orivej@gmx.fr","avatar":null},"body":"\"git svn fetch\" causes Perl 5.18 or newer to emit \"Wide character in\nsetenv\" warnings when used in combination with svn.authorsfile with\nnon-ASCII names:\n\n     Wide character in setenv at /usr/lib64/perl5/vendor_perl/5.20.1/Git/SVN.pm line 969.\n     Wide character in setenv at /usr/lib64/perl5/vendor_perl/5.20.1/Git/SVN.pm line 973.\n\nI have no taste of Perl so I do not propose this patch for inclusion,\nbut it fixes this for me.\n\n\n\ndiff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm\nindex d9a52a5..2ffebfe 100644\n--- a/perl/Git/SVN.pm\n+++ b/perl/Git/SVN.pm\n@@ -957,6 +957,17 @@ sub full_pushurl {\n \t}\n }\n \n+sub utf8_encode {\n+\tmy ($s) = @_;\n+\tutf8::encode($s);\n+\treturn $s;\n+}\n+\n+sub UENV {\n+\tmy ($var, $val) = @_;\n+\t$ENV{$var} = utf8_encode($val);\n+}\n+\n sub set_commit_header_env {\n \tmy ($log_entry) = @_;\n \tmy %env;\n@@ -966,13 +977,13 @@ sub set_commit_header_env {\n \t\t}\n \t}\n \n-\t$ENV{GIT_AUTHOR_NAME} = $log_entry->{name};\n+\tUENV(\"GIT_AUTHOR_NAME\", $log_entry->{name});\n \t$ENV{GIT_AUTHOR_EMAIL} = $log_entry->{email};\n \t$ENV{GIT_AUTHOR_DATE} = $ENV{GIT_COMMITTER_DATE} = $log_entry->{date};\n \n-\t$ENV{GIT_COMMITTER_NAME} = (defined $log_entry->{commit_name})\n+\tUENV(\"GIT_COMMITTER_NAME\", (defined $log_entry->{commit_name})\n \t\t\t\t\t\t? $log_entry->{commit_name}\n-\t\t\t\t\t\t: $log_entry->{name};\n+\t\t\t\t\t\t: $log_entry->{name});\n \t$ENV{GIT_COMMITTER_EMAIL} = (defined $log_entry->{commit_email})\n \t\t\t\t\t\t? $log_entry->{commit_email}\n \t\t\t\t\t\t: $log_entry->{email};\n"}]}