> Am 27.04.2015 um 22:29 schrieb Graham Knop <ha...@haarg.org>:
> 
> On 4/27/15 4:10 PM, Jens Rehsack wrote:
>> 
>>> Am 24.04.2015 um 05:37 schrieb Aristotle Pagaltzis <pagalt...@gmx.de>:
>>> 
>>> * David Golden <x...@xdg.me> [2015-04-23 17:40]:
>>> [...]
>>>> Please see https://rt.cpan.org/Ticket/Display.html?id=60340 for context.
>>>> 
>>>> I think File::Temp needs to be able to work around File::Spec::Win32
>>>> returning a non-writable directory.
>>>> 
>>>> My proposal was to warn and fall back to ".".  That's a small breaking
>>>> change, but I think doing something in a different place than
>>>> requested is better than failing entirely.
>>>> 
>>>> Alternatively, it needs to validate the Win32 response and throw an error
>>>> early, before attempting to make the directory so that the error message is
>>>> more informative.
>>>> 
>>>> Thoughts?
>>> 
>>> Windows considers the current directory an implied part of %PATH%,
>> 
>> True
>> 
>>> has no concept like the executable bit of Unixoid OSes,
>> 
>> Nope - it has such a concept, but it's in ACL's, not in attributes. History 
>> of
>> Windows was non-multi-user *shrug* - weird implementation, crummy supported 
>> ;)
>> 
> This also depends on the filesystem, and isn't really the same concept.

Not the same concept, but a concept like executable bits on Unices. It is 
possible
(investing enough effort) to implement a simplified access. Since POSIC 
specifies
ACL's meanwhile showing that the idea itself wasn't that wrong (and ACL's > 
i-node
attributes, if any).

But there is no reason to fight this - the result stays the same whatever we
finally agree ;)

>>> nor does it allow
>>> unlinking files while they’re open.
>> 
>> Depends on Filesystem ...
>> 
>>> So I’d feel uncomfortable about just
>>> unexpectedly dropping junk into the current directory, announced or not.
>>> Therefore I’d tend toward the latter.
>> 
>> Is there a reason not to tryout Win32 API function GetTempPath 
>> (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364992%28v=vs.85%29.aspx)?
>> I dunno how File::Spec/File::Temp on Unix behaves tmp points to a 
>> non-writable directory (think r/o file-system).
> 
> This uses the environment just like File::Spec->tmpdir does.  The only
> important difference is that File::Temp checks for tainting.  Switching
> to GetTempPath would be the same thing as removing the taint checks.

IIRC it checks some more and has %system%/temp as fallback. As non-native
speaker (checked several translations) I don't get the sanity of tainting
at all.

>>> But someone with better instincts for Windows may be able to call this
>>> bunk. Mostly I didn’t want to leave the question warnocked.
>> 
>> I agree - '.' is the worst choice one can make - and I intend to say 'start 
>> again with TMP="."' or so.
>> 
> 
> The closest thing I can think of would be using the local application
> data directory.  This is the same place that the user's temp directory
> lives.  Win32::GetFolderPath(Win32::CSIDL_LOCAL_APPDATA)."\\Temp" should
> give you the current user's temp directory.  It would probably be wrong
> for programs not running under a login user account, like daemons or CGI
> scripts.  Those would likely want to fall back to C:\WINDOWS\Temp.

/me nods - that's fine at all. 

Cheers
-- 
Jens Rehsack
rehs...@gmail.com

Reply via email to