Thread (9 messages) flat view 9 messages, 2 authors, 2016-06-15

Re: [PATCHv2/RFC] gitweb: Prepare for splitting gitweb

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:49:05

On Wed, 7 Jul 2010, Ævar Arnfjörð Bjarmason napisał:
On Wed, Jul 7, 2010 at 09:57, Jakub Narebski [off-list ref] wrote:
quoted
[...]
 use strict;
 use warnings;
+
+use File::Spec;
+# __DIR__ is taken from Dir::Self __DIR__ fragment
+sub __DIR__ () {
+       File::Spec->rel2abs(join '', (File::Spec->splitpath(__FILE__))[0, 1]);
+}
+use lib __DIR__ . '/lib';
+
What was the result of the discussion about using __DIR__ again? You
only need to use that method when you call a perl program whith *then*
includes a module. If you just need to add the lib/ directory relative
to the script you're invoking you can use FindBin:

    use FindBin qw($Bin);
    use lib "$Bin/lib";
It's

      use lib "$Bin/../lib";

(I don't like this ../lib here, but that's my personal preference).

But you might be right that I am overly cautious in avoiding FindBin.
It is nowadays not recommended solution (on #perl, for example), but
it is perhaps true that the conditions where it fails are not fulfilled
for the case of gitweb.

Or perhaps not:

  KNOWN ISSUES

  If there are two modules using FindBin from different directories
  under the same interpreter, this won't work. Since FindBin uses a
  BEGIN block, it'll be executed only once, and only the first caller
  will get it right. This is a problem under **mod_perl** and other
  persistent Perl environments, where you shouldn't use this module.

Gitweb can be used under mod_perl (to be more exact ModPerl::Registry).
quoted
 use CGI qw(:standard :escapeHTML -nosticky);
 use CGI::Util qw(unescape);
 use CGI::Carp qw(fatalsToBrowser set_message);
@@ -16,6 +24,7 @@ use Encode;
 use Fcntl ':mode';
 use File::Find qw();
 use File::Basename qw(basename);
+
 binmode STDOUT, ':utf8';
The whitespace change distracts from the real patch a bit.
Ooops, I'm sorry.

I'll fix it in resend, if required.
-- 
Jakub Narebski
Poland
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help