Bump version numbers for modules that have changed since 5.8.3
[p5sagit/p5-mst-13.2.git] / ext / DynaLoader / DynaLoader_pm.PL
index f442579..e4a1ba8 100644 (file)
@@ -29,7 +29,7 @@ package DynaLoader;
 
 use vars qw($VERSION *AUTOLOAD);
 
-$VERSION = 1.04;       # avoid typo warning
+$VERSION = '1.05';     # avoid typo warning
 
 require AutoLoader;
 *AUTOLOAD = \&AutoLoader::AUTOLOAD;
@@ -80,6 +80,7 @@ $Is_MacOS  = $^O eq 'MacOS';
 my $Mac_FS;
 $Mac_FS = eval { require Mac::FileSpec::Unixish } if $Is_MacOS;
 
+@dl_shared_objects  = ();       # shared objects for symbols we have 
 @dl_require_symbols = ();       # names of symbols we need
 @dl_resolve_using   = ();       # names of files to link with
 @dl_library_path    = ();       # path to look for files
@@ -229,6 +230,15 @@ sub bootstrap {
        "  dynamic loading or has the $module module statically linked into it.)\n")
        unless defined(&dl_load_file);
 
+EOT
+
+print OUT <<'EOT' if $^O eq 'os2';
+    # Can dynaload, but cannot dynaload Perl modules...
+    die 'Dynaloaded Perl modules are not available in this build of Perl' if $OS2::is_static;
+
+EOT
+
+print OUT <<'EOT';
     my @modparts = split(/::/,$module);
     my $modfname = $modparts[-1];
 
@@ -237,6 +247,7 @@ sub bootstrap {
     # It may also edit @modparts if required.
     $modfname = &mod2fname(\@modparts) if defined &mod2fname;
 
+    # Truncate the module name to 8.3 format for NetWare
        if (($^O eq 'NetWare') && (length($modfname) > 8)) {
                $modfname = substr($modfname, 0, 8);
        }
@@ -262,22 +273,13 @@ sub bootstrap {
        } else {
            $dir = "$_/auto/$modpname";
        }
-       if ($^O ne 'NetWare') {
-               next unless -d $dir; # skip over uninteresting directories
-       }
-       else {
-               next if -f $dir; # skip over uninteresting directories
-       }
-
+       
+       next unless -d $dir; # skip over uninteresting directories
+       
        # check for common cases to avoid autoload of dl_findfile
        my $try = $Is_MacOS ? "$dir:$modfname.$dl_dlext" : "$dir/$modfname.$dl_dlext";
-       if ($^O ne 'NetWare') {
-               last if $file = ($do_expand) ? dl_expandspec($try) : ((-f $try) && $try);
-       }
-       elsif (!(-d $try)) {
-               last if $file = ($do_expand) ? dl_expandspec($try) : ($try);
-       }
-
+       last if $file = ($do_expand) ? dl_expandspec($try) : ((-f $try) && $try);
+       
        # no luck here, save dir for possible later dl_findfile search
        push @dirs, $dir;
     }
@@ -338,6 +340,9 @@ sub bootstrap {
     my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file);
 
     # See comment block above
+
+       push(@dl_shared_objects, $file); # record files loaded
+
     &$xs(@args);
 }
 
@@ -509,8 +514,6 @@ sub dl_find_symbol_anywhere
 
 DynaLoader - Dynamically load C libraries into Perl code
 
-dl_error(), dl_findfile(), dl_expandspec(), dl_load_file(), dl_unload_file(), dl_find_symbol(), dl_find_symbol_anywhere(), dl_undef_symbols(), dl_install_xsub(), dl_load_flags(), bootstrap() - routines used by DynaLoader modules
-
 =head1 SYNOPSIS
 
     package YourPackage;
@@ -544,7 +547,9 @@ useless for accessing non-Perl libraries because it provides almost no
 Perl-to-C 'glue'.  There is, for example, no mechanism for calling a C
 library function or supplying arguments.  A C::DynaLib module
 is available from CPAN sites which performs that function for some
-common system types.
+common system types.  And since the year 2000, there's also Inline::C,
+a module that allows you to write Perl subroutines in C.  Also available
+from your local CPAN site.
 
 DynaLoader Interface Summary
 
@@ -554,6 +559,7 @@ DynaLoader Interface Summary
   $dl_debug
   @dl_librefs
   @dl_modules
+  @dl_shared_objects
                                                   Implemented in:
   bootstrap($modulename)                               Perl
   @filepaths = dl_findfile(@names)                     Perl
@@ -629,6 +635,10 @@ the loaded files.
 
 An array of module (package) names that have been bootstrap'ed.
 
+=item @dl_shared_objects
+
+An array of file names for the shared objects that were loaded.
+
 =item dl_error()
 
 Syntax:
@@ -775,11 +785,11 @@ Apache and mod_perl built with the APXS mechanism.
 Linux, and is a common choice when providing a "wrapper" on other
 mechanisms as is done in the OS/2 port.)
 
-=item dl_loadflags()
+=item dl_load_flags()
 
 Syntax:
 
-    $flags = dl_loadflags $modulename;
+    $flags = dl_load_flags $modulename;
 
 Designed to be a method call, and to be overridden by a derived class
 (i.e. a class which has DynaLoader in its @ISA).  The definition in