exiftool-vendored.exe 12.82.0 → 12.82.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +6 -0
  2. package/bin/exiftool.exe +0 -0
  3. package/bin/exiftool_files/Licenses_Strawberry_Perl.zip +0 -0
  4. package/bin/exiftool_files/lib/Archive/Zip/Archive.pm +399 -65
  5. package/bin/exiftool_files/lib/Archive/Zip/DirectoryMember.pm +1 -1
  6. package/bin/exiftool_files/lib/Archive/Zip/FileMember.pm +1 -1
  7. package/bin/exiftool_files/lib/Archive/Zip/Member.pm +499 -195
  8. package/bin/exiftool_files/lib/Archive/Zip/NewFileMember.pm +1 -1
  9. package/bin/exiftool_files/lib/Archive/Zip/StringMember.pm +2 -2
  10. package/bin/exiftool_files/lib/Archive/Zip/ZipFileMember.pm +79 -20
  11. package/bin/exiftool_files/lib/Archive/Zip.pm +179 -29
  12. package/bin/exiftool_files/lib/AutoLoader.pm +453 -0
  13. package/bin/exiftool_files/lib/B/Deparse.pm +209 -137
  14. package/bin/exiftool_files/lib/B.pm +1 -1
  15. package/bin/exiftool_files/lib/Benchmark.pm +1123 -0
  16. package/bin/exiftool_files/lib/Class/Struct.pm +2 -2
  17. package/bin/exiftool_files/lib/Compress/Raw/Bzip2.pm +14 -9
  18. package/bin/exiftool_files/lib/Compress/Raw/Lzma.pm +982 -0
  19. package/bin/exiftool_files/lib/Compress/Raw/Zlib.pm +91 -86
  20. package/bin/exiftool_files/lib/Compress/Zlib.pm +105 -100
  21. package/bin/exiftool_files/lib/Config.pm +9 -9
  22. package/bin/exiftool_files/lib/Config_heavy.pl +36 -33
  23. package/bin/exiftool_files/lib/CryptX.pm +2 -82
  24. package/bin/exiftool_files/lib/Data/Dumper.pm +2 -2
  25. package/bin/exiftool_files/lib/Digest/MD5.pm +12 -9
  26. package/bin/exiftool_files/lib/Digest/Perl/MD5.pm +1 -191
  27. package/bin/exiftool_files/lib/Digest/base.pm +26 -20
  28. package/bin/exiftool_files/lib/DynaLoader.pm +7 -4
  29. package/bin/exiftool_files/lib/Encode.pm +3 -3
  30. package/bin/exiftool_files/lib/Errno.pm +13 -13
  31. package/bin/exiftool_files/lib/Exporter/Heavy.pm +2 -2
  32. package/bin/exiftool_files/lib/Exporter.pm +1 -1
  33. package/bin/exiftool_files/lib/ExtUtils/Command/MM.pm +323 -0
  34. package/bin/exiftool_files/lib/ExtUtils/Command.pm +382 -0
  35. package/bin/exiftool_files/lib/File/Find.pm +1 -1
  36. package/bin/exiftool_files/lib/File/Glob.pm +1 -8
  37. package/bin/exiftool_files/lib/File/GlobMapper.pm +2 -2
  38. package/bin/exiftool_files/lib/File/HomeDir/Darwin/Carbon.pm +2 -40
  39. package/bin/exiftool_files/lib/File/HomeDir/Darwin/Cocoa.pm +2 -34
  40. package/bin/exiftool_files/lib/File/HomeDir/Darwin.pm +2 -28
  41. package/bin/exiftool_files/lib/File/HomeDir/Driver.pm +2 -35
  42. package/bin/exiftool_files/lib/File/HomeDir/FreeDesktop.pm +2 -62
  43. package/bin/exiftool_files/lib/File/HomeDir/MacOS9.pm +2 -53
  44. package/bin/exiftool_files/lib/File/HomeDir/Test.pm +2 -43
  45. package/bin/exiftool_files/lib/File/HomeDir/Unix.pm +2 -53
  46. package/bin/exiftool_files/lib/File/HomeDir/Windows.pm +2 -69
  47. package/bin/exiftool_files/lib/File/HomeDir.pm +5 -416
  48. package/bin/exiftool_files/lib/File/Path.pm +3 -3
  49. package/bin/exiftool_files/lib/File/Spec/Win32.pm +2 -2
  50. package/bin/exiftool_files/lib/File/Temp.pm +70 -35
  51. package/bin/exiftool_files/lib/File/Which.pm +1 -240
  52. package/bin/exiftool_files/lib/File/stat.pm +3 -2
  53. package/bin/exiftool_files/lib/IO/Compress/Adapter/Bzip2.pm +16 -17
  54. package/bin/exiftool_files/lib/IO/Compress/Adapter/Deflate.pm +19 -20
  55. package/bin/exiftool_files/lib/IO/Compress/Base/Common.pm +5 -5
  56. package/bin/exiftool_files/lib/IO/Compress/Base.pm +35 -26
  57. package/bin/exiftool_files/lib/IO/Compress/Brotli.pm +159 -0
  58. package/bin/exiftool_files/lib/IO/Compress/Bzip2.pm +50 -25
  59. package/bin/exiftool_files/lib/IO/Compress/Gzip/Constants.pm +6 -6
  60. package/bin/exiftool_files/lib/IO/Compress/Gzip.pm +58 -32
  61. package/bin/exiftool_files/lib/IO/Compress/RawDeflate.pm +63 -38
  62. package/bin/exiftool_files/lib/IO/Compress/Zlib/Extra.pm +20 -20
  63. package/bin/exiftool_files/lib/IO/Dir.pm +1 -1
  64. package/bin/exiftool_files/lib/IO/File.pm +1 -1
  65. package/bin/exiftool_files/lib/IO/Handle.pm +1 -21
  66. package/bin/exiftool_files/lib/IO/Pipe.pm +1 -1
  67. package/bin/exiftool_files/lib/IO/Seekable.pm +1 -1
  68. package/bin/exiftool_files/lib/IO/Select.pm +16 -2
  69. package/bin/exiftool_files/lib/IO/Socket/INET.pm +14 -9
  70. package/bin/exiftool_files/lib/IO/Socket/UNIX.pm +17 -1
  71. package/bin/exiftool_files/lib/IO/Socket.pm +474 -126
  72. package/bin/exiftool_files/lib/IO/String.pm +425 -0
  73. package/bin/exiftool_files/lib/IO/Uncompress/Adapter/Inflate.pm +13 -14
  74. package/bin/exiftool_files/lib/IO/Uncompress/Base.pm +142 -132
  75. package/bin/exiftool_files/lib/IO/Uncompress/Brotli.pm +119 -0
  76. package/bin/exiftool_files/lib/IO/Uncompress/Gunzip.pm +43 -37
  77. package/bin/exiftool_files/lib/IO/Uncompress/RawInflate.pm +49 -43
  78. package/bin/exiftool_files/lib/IO.pm +2 -2
  79. package/bin/exiftool_files/lib/List/Util.pm +97 -8
  80. package/bin/exiftool_files/lib/MIME/Base64.pm +5 -5
  81. package/bin/exiftool_files/lib/MIME/Charset/_Compat.pm +106 -0
  82. package/bin/exiftool_files/lib/MIME/Charset.pm +1303 -0
  83. package/bin/exiftool_files/lib/Math/BigFloat.pm +444 -27
  84. package/bin/exiftool_files/lib/Math/BigInt/Calc.pm +296 -313
  85. package/bin/exiftool_files/lib/Math/BigInt/FastCalc.pm +1 -1
  86. package/bin/exiftool_files/lib/Math/BigInt/GMP.pm +2 -115
  87. package/bin/exiftool_files/lib/Math/BigInt/LTM.pm +2 -24
  88. package/bin/exiftool_files/lib/Math/BigInt/Lib.pm +61 -32
  89. package/bin/exiftool_files/lib/Math/BigInt.pm +292 -107
  90. package/bin/exiftool_files/lib/POSIX.pm +1 -1
  91. package/bin/exiftool_files/lib/PerlIO/scalar.pm +41 -0
  92. package/bin/exiftool_files/lib/PerlIO.pm +397 -0
  93. package/bin/exiftool_files/lib/Portable/CPAN.pm +94 -94
  94. package/bin/exiftool_files/lib/Portable/Config.pm +94 -94
  95. package/bin/exiftool_files/lib/Portable/FileSpec.pm +180 -180
  96. package/bin/exiftool_files/lib/Portable/HomeDir.pm +110 -110
  97. package/bin/exiftool_files/lib/Portable/LoadYaml.pm +430 -430
  98. package/bin/exiftool_files/lib/Portable/minicpan.pm +55 -55
  99. package/bin/exiftool_files/lib/Portable.pm +246 -320
  100. package/bin/exiftool_files/lib/Scalar/Util.pm +9 -4
  101. package/bin/exiftool_files/lib/Socket.pm +16 -12
  102. package/bin/exiftool_files/lib/Storable.pm +1444 -1441
  103. package/bin/exiftool_files/lib/TAP/Base.pm +133 -0
  104. package/bin/exiftool_files/lib/TAP/Formatter/Base.pm +467 -0
  105. package/bin/exiftool_files/lib/TAP/Formatter/Color.pm +116 -0
  106. package/bin/exiftool_files/lib/TAP/Formatter/Console/ParallelSession.pm +201 -0
  107. package/bin/exiftool_files/lib/TAP/Formatter/Console/Session.pm +205 -0
  108. package/bin/exiftool_files/lib/TAP/Formatter/Console.pm +100 -0
  109. package/bin/exiftool_files/lib/TAP/Formatter/File/Session.pm +95 -0
  110. package/bin/exiftool_files/lib/TAP/Formatter/File.pm +56 -0
  111. package/bin/exiftool_files/lib/TAP/Formatter/Session.pm +220 -0
  112. package/bin/exiftool_files/lib/TAP/Harness/Beyond.pod +426 -0
  113. package/bin/exiftool_files/lib/TAP/Harness/Env.pm +215 -0
  114. package/bin/exiftool_files/lib/TAP/Harness.pm +1054 -0
  115. package/bin/exiftool_files/lib/TAP/Object.pm +155 -0
  116. package/bin/exiftool_files/lib/TAP/Parser/Aggregator.pm +414 -0
  117. package/bin/exiftool_files/lib/TAP/Parser/Grammar.pm +584 -0
  118. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Array.pm +100 -0
  119. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Process.pm +378 -0
  120. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Stream.pm +116 -0
  121. package/bin/exiftool_files/lib/TAP/Parser/Iterator.pm +162 -0
  122. package/bin/exiftool_files/lib/TAP/Parser/IteratorFactory.pm +339 -0
  123. package/bin/exiftool_files/lib/TAP/Parser/Multiplexer.pm +194 -0
  124. package/bin/exiftool_files/lib/TAP/Parser/Result/Bailout.pm +62 -0
  125. package/bin/exiftool_files/lib/TAP/Parser/Result/Comment.pm +60 -0
  126. package/bin/exiftool_files/lib/TAP/Parser/Result/Plan.pm +119 -0
  127. package/bin/exiftool_files/lib/TAP/Parser/Result/Pragma.pm +62 -0
  128. package/bin/exiftool_files/lib/TAP/Parser/Result/Test.pm +271 -0
  129. package/bin/exiftool_files/lib/TAP/Parser/Result/Unknown.pm +48 -0
  130. package/bin/exiftool_files/lib/TAP/Parser/Result/Version.pm +62 -0
  131. package/bin/exiftool_files/lib/TAP/Parser/Result/YAML.pm +61 -0
  132. package/bin/exiftool_files/lib/TAP/Parser/Result.pm +297 -0
  133. package/bin/exiftool_files/lib/TAP/Parser/ResultFactory.pm +183 -0
  134. package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Job.pm +127 -0
  135. package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Spinner.pm +61 -0
  136. package/bin/exiftool_files/lib/TAP/Parser/Scheduler.pm +448 -0
  137. package/bin/exiftool_files/lib/TAP/Parser/Source.pm +381 -0
  138. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Executable.pm +184 -0
  139. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/File.pm +136 -0
  140. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Handle.pm +124 -0
  141. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Perl.pm +370 -0
  142. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/RawTAP.pm +130 -0
  143. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler.pm +191 -0
  144. package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Reader.pm +332 -0
  145. package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Writer.pm +254 -0
  146. package/bin/exiftool_files/lib/TAP/Parser.pm +1931 -0
  147. package/bin/exiftool_files/lib/Test/Builder/Formatter.pm +107 -0
  148. package/bin/exiftool_files/lib/Test/Builder/IO/Scalar.pm +659 -0
  149. package/bin/exiftool_files/lib/Test/Builder/Module.pm +182 -0
  150. package/bin/exiftool_files/lib/Test/Builder/Tester/Color.pm +51 -0
  151. package/bin/exiftool_files/lib/Test/Builder/Tester.pm +675 -0
  152. package/bin/exiftool_files/lib/Test/Builder/TodoDiag.pm +68 -0
  153. package/bin/exiftool_files/lib/Test/Builder.pm +2653 -0
  154. package/bin/exiftool_files/lib/Test/Harness.pm +618 -0
  155. package/bin/exiftool_files/lib/Test/More.pm +1997 -0
  156. package/bin/exiftool_files/lib/Test/Simple.pm +220 -0
  157. package/bin/exiftool_files/lib/Test/Tester/Capture.pm +241 -0
  158. package/bin/exiftool_files/lib/Test/Tester/CaptureRunner.pm +79 -0
  159. package/bin/exiftool_files/lib/Test/Tester/Delegate.pm +45 -0
  160. package/bin/exiftool_files/lib/Test/Tester.pm +695 -0
  161. package/bin/exiftool_files/lib/Test/Tutorial.pod +618 -0
  162. package/bin/exiftool_files/lib/Test/use/ok.pm +64 -0
  163. package/bin/exiftool_files/lib/Text/ParseWords.pm +303 -0
  164. package/bin/exiftool_files/lib/Tie/StdHandle.pm +2 -2
  165. package/bin/exiftool_files/lib/Time/HiRes.pm +73 -68
  166. package/bin/exiftool_files/lib/Time/Local.pm +82 -35
  167. package/bin/exiftool_files/lib/Time/Piece.pm +19 -4
  168. package/bin/exiftool_files/lib/Time/Seconds.pm +1 -1
  169. package/bin/exiftool_files/lib/UNIVERSAL.pm +203 -0
  170. package/bin/exiftool_files/lib/Unicode/GCString.pm +60 -0
  171. package/bin/exiftool_files/lib/Unicode/LineBreak/Constants.pm +68 -0
  172. package/bin/exiftool_files/lib/Unicode/LineBreak.pm +248 -0
  173. package/bin/exiftool_files/lib/Win32/API/Struct.pm +1 -177
  174. package/bin/exiftool_files/lib/Win32/API/Type.pm +1 -100
  175. package/bin/exiftool_files/lib/Win32/API.pm +1 -830
  176. package/bin/exiftool_files/lib/Win32/FindFile.pm +2 -123
  177. package/bin/exiftool_files/lib/Win32.pm +213 -89
  178. package/bin/exiftool_files/lib/Win32API/File.pm +1 -1
  179. package/bin/exiftool_files/lib/auto/B/B.xs.dll +0 -0
  180. package/bin/exiftool_files/lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll +0 -0
  181. package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/Lzma.xs.dll +0 -0
  182. package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/autosplit.ix +3 -0
  183. package/bin/exiftool_files/lib/auto/Compress/Raw/Zlib/Zlib.xs.dll +0 -0
  184. package/bin/exiftool_files/lib/auto/CryptX/CryptX.xs.dll +0 -0
  185. package/bin/exiftool_files/lib/auto/Cwd/Cwd.xs.dll +0 -0
  186. package/bin/exiftool_files/lib/auto/Data/Dumper/Dumper.xs.dll +0 -0
  187. package/bin/exiftool_files/lib/auto/Digest/MD5/MD5.xs.dll +0 -0
  188. package/bin/exiftool_files/lib/auto/Digest/SHA/SHA.xs.dll +0 -0
  189. package/bin/exiftool_files/lib/auto/Encode/Encode.xs.dll +0 -0
  190. package/bin/exiftool_files/lib/auto/Fcntl/Fcntl.xs.dll +0 -0
  191. package/bin/exiftool_files/lib/auto/File/Glob/Glob.xs.dll +0 -0
  192. package/bin/exiftool_files/lib/auto/IO/Compress/Brotli/Brotli.xs.dll +0 -0
  193. package/bin/exiftool_files/lib/auto/IO/IO.xs.dll +0 -0
  194. package/bin/exiftool_files/lib/auto/List/Util/Util.xs.dll +0 -0
  195. package/bin/exiftool_files/lib/auto/MIME/Base64/Base64.xs.dll +0 -0
  196. package/bin/exiftool_files/lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll +0 -0
  197. package/bin/exiftool_files/lib/auto/Math/BigInt/GMP/GMP.xs.dll +0 -0
  198. package/bin/exiftool_files/lib/auto/POSIX/POSIX.xs.dll +0 -0
  199. package/bin/exiftool_files/lib/auto/PerlIO/scalar/scalar.xs.dll +0 -0
  200. package/bin/exiftool_files/lib/auto/Socket/Socket.xs.dll +0 -0
  201. package/bin/exiftool_files/lib/auto/Storable/Storable.xs.dll +0 -0
  202. package/bin/exiftool_files/lib/auto/Time/HiRes/HiRes.xs.dll +0 -0
  203. package/bin/exiftool_files/lib/auto/Time/Piece/Piece.xs.dll +0 -0
  204. package/bin/exiftool_files/lib/auto/Unicode/LineBreak/LineBreak.xs.dll +0 -0
  205. package/bin/exiftool_files/lib/auto/Win32/API/API.xs.dll +0 -0
  206. package/bin/exiftool_files/lib/auto/Win32/FindFile/FindFile.xs.dll +0 -0
  207. package/bin/exiftool_files/lib/auto/Win32/Win32.xs.dll +0 -0
  208. package/bin/exiftool_files/lib/auto/Win32API/File/File.xs.dll +0 -0
  209. package/bin/exiftool_files/lib/auto/mro/mro.xs.dll +0 -0
  210. package/bin/exiftool_files/lib/auto/re/re.xs.dll +0 -0
  211. package/bin/exiftool_files/lib/feature.pm +49 -17
  212. package/bin/exiftool_files/lib/mro.pm +4 -20
  213. package/bin/exiftool_files/lib/overload.pm +15 -15
  214. package/bin/exiftool_files/lib/parent.pm +10 -2
  215. package/bin/exiftool_files/lib/re.pm +91 -33
  216. package/bin/exiftool_files/lib/warnings.pm +17 -6
  217. package/bin/exiftool_files/libgcc_s_seh-1.dll +0 -0
  218. package/bin/exiftool_files/liblzma-5__.dll +0 -0
  219. package/bin/exiftool_files/libstdc++-6.dll +0 -0
  220. package/bin/exiftool_files/libwinpthread-1.dll +0 -0
  221. package/bin/exiftool_files/perl.exe +0 -0
  222. package/bin/exiftool_files/perl532.dll +0 -0
  223. package/package.json +5 -3
  224. package/bin/exiftool_files/libgcc_s_dw2-1.dll +0 -0
  225. package/bin/exiftool_files/perl530.dll +0 -0
@@ -16,7 +16,7 @@ use base qw(Exporter);
16
16
 
17
17
  BEGIN
18
18
  {
19
- $VERSION = '1.004';
19
+ $VERSION = '1.006';
20
20
 
21
21
  # Inherit manually
22
22
  require Exporter;
@@ -156,8 +156,8 @@ sub my_data
156
156
  sub my_dist_data
157
157
  {
158
158
  my $params = ref $_[-1] eq 'HASH' ? pop : {};
159
- my $dist = pop or Carp::croak("The my_dist_data method requires an argument");
160
- my $data = my_data();
159
+ my $dist = pop or Carp::croak("The my_dist_data method requires an argument");
160
+ my $data = my_data();
161
161
 
162
162
  # If datadir is not defined, there's nothing we can do: bail out
163
163
  # and return nothing...
@@ -184,7 +184,7 @@ sub my_dist_data
184
184
  sub my_dist_config
185
185
  {
186
186
  my $params = ref $_[-1] eq 'HASH' ? pop : {};
187
- my $dist = pop or Carp::croak("The my_dist_config method requires an argument");
187
+ my $dist = pop or Carp::croak("The my_dist_config method requires an argument");
188
188
 
189
189
  # not all platforms support a specific my_config() method
190
190
  my $config =
@@ -312,415 +312,4 @@ eval {
312
312
 
313
313
  __END__
314
314
 
315
- =pod
316
-
317
- =encoding UTF-8
318
-
319
- =head1 NAME
320
-
321
- File::HomeDir - Find your home and other directories on any platform
322
-
323
- =begin html
324
-
325
- <a href="https://travis-ci.org/perl5-utils/File-HomeDir"><img src="https://travis-ci.org/perl5-utils/File-HomeDir.svg?branch=master" alt="Travis CI"/></a>
326
- <a href='https://coveralls.io/github/perl5-utils/File-HomeDir?branch=master'><img src='https://coveralls.io/repos/github/perl5-utils/File-HomeDir/badge.svg?branch=master' alt='Coverage Status'/></a>
327
-
328
- =end html
329
-
330
- =head1 SYNOPSIS
331
-
332
- use File::HomeDir;
333
-
334
- # Modern Interface (Current User)
335
- $home = File::HomeDir->my_home;
336
- $desktop = File::HomeDir->my_desktop;
337
- $docs = File::HomeDir->my_documents;
338
- $music = File::HomeDir->my_music;
339
- $pics = File::HomeDir->my_pictures;
340
- $videos = File::HomeDir->my_videos;
341
- $data = File::HomeDir->my_data;
342
- $dist = File::HomeDir->my_dist_data('File-HomeDir');
343
- $dist = File::HomeDir->my_dist_config('File-HomeDir');
344
-
345
- # Modern Interface (Other Users)
346
- $home = File::HomeDir->users_home('foo');
347
- $desktop = File::HomeDir->users_desktop('foo');
348
- $docs = File::HomeDir->users_documents('foo');
349
- $music = File::HomeDir->users_music('foo');
350
- $pics = File::HomeDir->users_pictures('foo');
351
- $video = File::HomeDir->users_videos('foo');
352
- $data = File::HomeDir->users_data('foo');
353
-
354
- =head1 DESCRIPTION
355
-
356
- B<File::HomeDir> is a module for locating the directories that are "owned"
357
- by a user (typically your user) and to solve the various issues that arise
358
- trying to find them consistently across a wide variety of platforms.
359
-
360
- The end result is a single API that can find your resources on any platform,
361
- making it relatively trivial to create Perl software that works elegantly
362
- and correctly no matter where you run it.
363
-
364
- =head2 Platform Neutrality
365
-
366
- In the Unix world, many different types of data can be mixed together
367
- in your home directory (although on some Unix platforms this is no longer
368
- the case, particularly for "desktop"-oriented platforms).
369
-
370
- On some non-Unix platforms, separate directories are allocated for
371
- different types of data and have been for a long time.
372
-
373
- When writing applications on top of B<File::HomeDir>, you should thus
374
- always try to use the most specific method you can. User documents should
375
- be saved in C<my_documents>, data that supports an application but isn't
376
- normally editing by the user directory should go into C<my_data>.
377
-
378
- On platforms that do not make any distinction, all these different
379
- methods will harmlessly degrade to the main home directory, but on
380
- platforms that care B<File::HomeDir> will always try to Do The Right
381
- Thing(tm).
382
-
383
- =head1 METHODS
384
-
385
- Two types of methods are provided. The C<my_method> series of methods for
386
- finding resources for the current user, and the C<users_method> (read as
387
- "user's method") series for finding resources for arbitrary users.
388
-
389
- This split is necessary, as on most platforms it is B<much> easier to find
390
- information about the current user compared to other users, and indeed
391
- on a number you cannot find out information such as C<users_desktop> at
392
- all, due to security restrictions.
393
-
394
- All methods will double check (using a C<-d> test) that a directory
395
- actually exists before returning it, so you may trust in the values
396
- that are returned (subject to the usual caveats of race conditions of
397
- directories being deleted at the moment between a directory being returned
398
- and you using it).
399
-
400
- However, because in some cases platforms may not support the concept of home
401
- directories at all, any method may return C<undef> (both in scalar and list
402
- context) to indicate that there is no matching directory on the system.
403
-
404
- For example, most untrusted 'nobody'-type users do not have a home
405
- directory. So any modules that are used in a CGI application that
406
- at some level of recursion use your code, will result in calls to
407
- File::HomeDir returning undef, even for a basic home() call.
408
-
409
- =head2 my_home
410
-
411
- The C<my_home> method takes no arguments and returns the main home/profile
412
- directory for the current user.
413
-
414
- If the distinction is important to you, the term "current" refers to the
415
- real user, and not the effective user.
416
-
417
- This is also the case for all of the other "my" methods.
418
-
419
- Returns the directory path as a string, C<undef> if the current user
420
- does not have a home directory, or dies on error.
421
-
422
- =head2 my_desktop
423
-
424
- The C<my_desktop> method takes no arguments and returns the "desktop"
425
- directory for the current user.
426
-
427
- Due to the diversity and complexity of implementations required to deal with
428
- implementing the required functionality fully and completely, the
429
- C<my_desktop> method may or may not be implemented on each platform.
430
-
431
- That said, I am extremely interested in code to implement C<my_desktop> on
432
- Unix, as long as it is capable of dealing (as the Windows implementation
433
- does) with internationalization. It should also avoid false positive
434
- results by making sure it only returns the appropriate directories for the
435
- appropriate platforms.
436
-
437
- Returns the directory path as a string, C<undef> if the current user
438
- does not have a desktop directory, or dies on error.
439
-
440
- =head2 my_documents
441
-
442
- The C<my_documents> method takes no arguments and returns the directory (for
443
- the current user) where the user's documents are stored.
444
-
445
- Returns the directory path as a string, C<undef> if the current user
446
- does not have a documents directory, or dies on error.
447
-
448
- =head2 my_music
449
-
450
- The C<my_music> method takes no arguments and returns the directory
451
- where the current user's music is stored.
452
-
453
- No bias is made to any particular music type or music program, rather the
454
- concept of a directory to hold the user's music is made at the level of the
455
- underlying operating system or (at least) desktop environment.
456
-
457
- Returns the directory path as a string, C<undef> if the current user
458
- does not have a suitable directory, or dies on error.
459
-
460
- =head2 my_pictures
461
-
462
- The C<my_pictures> method takes no arguments and returns the directory
463
- where the current user's pictures are stored.
464
-
465
- No bias is made to any particular picture type or picture program, rather the
466
- concept of a directory to hold the user's pictures is made at the level of the
467
- underlying operating system or (at least) desktop environment.
468
-
469
- Returns the directory path as a string, C<undef> if the current user
470
- does not have a suitable directory, or dies on error.
471
-
472
- =head2 my_videos
473
-
474
- The C<my_videos> method takes no arguments and returns the directory
475
- where the current user's videos are stored.
476
-
477
- No bias is made to any particular video type or video program, rather the
478
- concept of a directory to hold the user's videos is made at the level of the
479
- underlying operating system or (at least) desktop environment.
480
-
481
- Returns the directory path as a string, C<undef> if the current user
482
- does not have a suitable directory, or dies on error.
483
-
484
- =head2 my_data
485
-
486
- The C<my_data> method takes no arguments and returns the directory where
487
- local applications should store their internal data for the current
488
- user.
489
-
490
- Generally an application would create a subdirectory such as C<.foo>,
491
- beneath this directory, and store its data there. By creating your
492
- directory this way, you get an accurate result on the maximum number of
493
- platforms. But see the documentation about C<my_dist_config()> or
494
- C<my_dist_data()> below.
495
-
496
- For example, on Unix you get C<~/.foo> and on Win32 you get
497
- C<~/Local Settings/Application Data/.foo>
498
-
499
- Returns the directory path as a string, C<undef> if the current user
500
- does not have a data directory, or dies on error.
501
-
502
-
503
- =head2 my_dist_config
504
-
505
- File::HomeDir->my_dist_config( $dist [, \%params] );
506
-
507
- # For example...
508
-
509
- File::HomeDir->my_dist_config( 'File-HomeDir' );
510
- File::HomeDir->my_dist_config( 'File-HomeDir', { create => 1 } );
511
-
512
- The C<my_dist_config> method takes a distribution name as argument and
513
- returns an application-specific directory where they should store their
514
- internal configuration.
515
-
516
- The base directory will be either C<my_config> if the platform supports
517
- it, or C<my_documents> otherwise. The subdirectory itself will be
518
- C<BASE/Perl/Dist-Name>. If the base directory is the user's home directory,
519
- C<my_dist_config> will be in C<~/.perl/Dist-Name> (and thus be hidden on
520
- all Unixes).
521
-
522
- The optional last argument is a hash reference to tweak the method
523
- behaviour. The following hash keys are recognized:
524
-
525
- =over 4
526
-
527
- =item * create
528
-
529
- Passing a true value to this key will force the creation of the
530
- directory if it doesn't exist (remember that C<File::HomeDir>'s policy
531
- is to return C<undef> if the directory doesn't exist).
532
-
533
- Defaults to false, meaning no automatic creation of directory.
534
-
535
- =back
536
-
537
-
538
- =head2 my_dist_data
539
-
540
- File::HomeDir->my_dist_data( $dist [, \%params] );
541
-
542
- # For example...
543
-
544
- File::HomeDir->my_dist_data( 'File-HomeDir' );
545
- File::HomeDir->my_dist_data( 'File-HomeDir', { create => 1 } );
546
-
547
- The C<my_dist_data> method takes a distribution name as argument and
548
- returns an application-specific directory where they should store their
549
- internal data.
550
-
551
- This directory will be of course a subdirectory of C<my_data>. Platforms
552
- supporting data-specific directories will use
553
- C<DATA_DIR/perl/dist/Dist-Name> following the common
554
- "DATA/vendor/application" pattern. If the C<my_data> directory is the
555
- user's home directory, C<my_dist_data> will be in C<~/.perl/dist/Dist-Name>
556
- (and thus be hidden on all Unixes).
557
-
558
- The optional last argument is a hash reference to tweak the method
559
- behaviour. The following hash keys are recognized:
560
-
561
- =over 4
562
-
563
- =item * create
564
-
565
- Passing a true value to this key will force the creation of the
566
- directory if it doesn't exist (remember that C<File::HomeDir>'s policy
567
- is to return C<undef> if the directory doesn't exist).
568
-
569
- Defaults to false, meaning no automatic creation of directory.
570
-
571
- =back
572
-
573
- =head2 users_home
574
-
575
- $home = File::HomeDir->users_home('foo');
576
-
577
- The C<users_home> method takes a single parameter and is used to locate the
578
- parent home/profile directory for an identified user on the system.
579
-
580
- While most of the time this identifier would be some form of user name,
581
- it is permitted to vary per-platform to support user ids or UUIDs as
582
- applicable for that platform.
583
-
584
- Returns the directory path as a string, C<undef> if that user
585
- does not have a home directory, or dies on error.
586
-
587
- =head2 users_documents
588
-
589
- $docs = File::HomeDir->users_documents('foo');
590
-
591
- Returns the directory path as a string, C<undef> if that user
592
- does not have a documents directory, or dies on error.
593
-
594
- =head2 users_data
595
-
596
- $data = File::HomeDir->users_data('foo');
597
-
598
- Returns the directory path as a string, C<undef> if that user
599
- does not have a data directory, or dies on error.
600
-
601
- =head2 users_desktop
602
-
603
- $docs = File::HomeDir->users_desktop('foo');
604
-
605
- Returns the directory path as a string, C<undef> if that user
606
- does not have a desktop directory, or dies on error.
607
-
608
- =head2 users_music
609
-
610
- $docs = File::HomeDir->users_music('foo');
611
-
612
- Returns the directory path as a string, C<undef> if that user
613
- does not have a music directory, or dies on error.
614
-
615
- =head2 users_pictures
616
-
617
- $docs = File::HomeDir->users_pictures('foo');
618
-
619
- Returns the directory path as a string, C<undef> if that user
620
- does not have a pictures directory, or dies on error.
621
-
622
- =head2 users_videos
623
-
624
- $docs = File::HomeDir->users_videos('foo');
625
-
626
- Returns the directory path as a string, C<undef> if that user
627
- does not have a videos directory, or dies on error.
628
-
629
- =head1 FUNCTIONS
630
-
631
- =head2 home
632
-
633
- use File::HomeDir;
634
- $home = home();
635
- $home = home('foo');
636
- $home = File::HomeDir::home();
637
- $home = File::HomeDir::home('foo');
638
-
639
- The C<home> function is exported by default and is provided for
640
- compatibility with legacy applications. In new applications, you should
641
- use the newer method-based interface above.
642
-
643
- Returns the directory path to a named user's home/profile directory.
644
-
645
- If provided no parameter, returns the directory path to the current user's
646
- home/profile directory.
647
-
648
- =head1 TO DO
649
-
650
- =over 4
651
-
652
- =item * Add more granularity to Unix, and add support to VMS and other
653
- esoteric platforms, so we can consider going core.
654
-
655
- =item * Add consistent support for users_* methods
656
-
657
- =back
658
-
659
- =head1 SUPPORT
660
-
661
- This module is stored in an Open Repository at the following address.
662
-
663
- L<http://svn.ali.as/cpan/trunk/File-HomeDir>
664
-
665
- Write access to the repository is made available automatically to any
666
- published CPAN author, and to most other volunteers on request.
667
-
668
- If you are able to submit your bug report in the form of new (failing)
669
- unit tests, or can apply your fix directly instead of submitting a patch,
670
- you are B<strongly> encouraged to do so as the author currently maintains
671
- over 100 modules and it can take some time to deal with non-Critical bug
672
- reports or patches.
673
-
674
- This will guarantee that your issue will be addressed in the next
675
- release of the module.
676
-
677
- If you cannot provide a direct test or fix, or don't have time to do so,
678
- then regular bug reports are still accepted and appreciated via the CPAN
679
- bug tracker.
680
-
681
- L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-HomeDir>
682
-
683
- For other issues, for commercial enhancement or support, or to have your
684
- write access enabled for the repository, contact the author at the email
685
- address above.
686
-
687
- =head1 ACKNOWLEDGEMENTS
688
-
689
- The biggest acknowledgement goes to Chris Nandor, who wielded his
690
- legendary Mac-fu and turned my initial fairly ordinary Darwin
691
- implementation into something that actually worked properly everywhere,
692
- and then donated a Mac OS X license to allow it to be maintained properly.
693
-
694
- =head1 AUTHORS
695
-
696
- Adam Kennedy E<lt>adamk@cpan.orgE<gt>
697
-
698
- Sean M. Burke E<lt>sburke@cpan.orgE<gt>
699
-
700
- Chris Nandor E<lt>cnandor@cpan.orgE<gt>
701
-
702
- Stephen Steneker E<lt>stennie@cpan.orgE<gt>
703
-
704
- =head1 SEE ALSO
705
-
706
- L<File::ShareDir>, L<File::HomeDir::Win32> (legacy)
707
-
708
- =head1 COPYRIGHT
709
-
710
- Copyright 2005 - 2012 Adam Kennedy.
711
-
712
- Some parts copyright 2000 Sean M. Burke.
713
-
714
- Some parts copyright 2006 Chris Nandor.
715
-
716
- Some parts copyright 2006 Stephen Steneker.
717
-
718
- Some parts copyright 2009-2011 Jérôme Quelin.
719
-
720
- This program is free software; you can redistribute
721
- it and/or modify it under the same terms as Perl itself.
722
-
723
- The full text of the license can be found in the
724
- LICENSE file included with this module.
725
-
726
- =cut
315
+ #line 729
@@ -18,7 +18,7 @@ BEGIN {
18
18
 
19
19
  use Exporter ();
20
20
  use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
21
- $VERSION = '2.16';
21
+ $VERSION = '2.18';
22
22
  $VERSION = eval $VERSION;
23
23
  @ISA = qw(Exporter);
24
24
  @EXPORT = qw(mkpath rmtree);
@@ -633,7 +633,7 @@ File::Path - Create or remove directory trees
633
633
 
634
634
  =head1 VERSION
635
635
 
636
- 2.16 - released August 31 2018.
636
+ 2.18 - released November 4 2020.
637
637
 
638
638
  =head1 SYNOPSIS
639
639
 
@@ -1277,7 +1277,7 @@ Contributors to File::Path, in alphabetical order by first name.
1277
1277
  =head1 COPYRIGHT
1278
1278
 
1279
1279
  This module is copyright (C) Charles Bailey, Tim Bunce, David Landgren,
1280
- James Keenan and Richard Elberger 1995-2018. All rights reserved.
1280
+ James Keenan and Richard Elberger 1995-2020. All rights reserved.
1281
1281
 
1282
1282
  =head1 LICENSE
1283
1283
 
@@ -5,7 +5,7 @@ use strict;
5
5
  use Cwd ();
6
6
  require File::Spec::Unix;
7
7
 
8
- our $VERSION = '3.78';
8
+ our $VERSION = '3.79';
9
9
  $VERSION =~ tr/_//d;
10
10
 
11
11
  our @ISA = qw(File::Spec::Unix);
@@ -84,7 +84,7 @@ sub tmpdir {
84
84
  MSWin32 case-tolerance depends on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE,
85
85
  indicating the case significance when comparing file specifications.
86
86
  Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem.
87
- See http://cygwin.com/ml/cygwin/2007-07/msg00891.html
87
+ See L<http://cygwin.com/ml/cygwin/2007-07/msg00891.html>
88
88
  Default: 1
89
89
 
90
90
  =cut