pushd / popd for std.process/std.file

Jakob Ovrum jakobovrum at gmail.com
Tue Jul 9 08:04:18 PDT 2013


On Tuesday, 9 July 2013 at 15:02:59 UTC, Jakob Ovrum wrote:
> On Tuesday, 9 July 2013 at 14:21:48 UTC, David wrote:
>> Having pushd/popd in std.process would make a lot of code look 
>> better,
>> often you have to change the workding directory only for a few 
>> commands,
>> with pushd/popd you don't have to temporarily store the old 
>> one explicitly.
>>
>> pushd/popd: https://en.wikipedia.org/wiki/Pushd_and_popd
>>
>> What do you think?
>>
>>
>> void build() {
>>    pushd("../build")
>>    scope(exit) popd();
>>
>>    shell("cmake ../src/c/bla");
>>    shell("make");
>> }
>
> I think it's a good idea, except instead of maintaing a 
> separate stack it could use the call stack through RAII. Also, 
> considering `getcwd` and `chdir` are in std.file, maybe that's 
> the better location?
>
> -snip-

Apropos threads; this isn't thread-safe at all, is it... does it 
make sense to define semantics with multi-threading in mind?




More information about the Digitalmars-d mailing list