New __FILE_DIR__ trait?

Jonathan Marler via Digitalmars-d digitalmars-d at puremagic.com
Wed Jul 27 06:59:23 PDT 2016


On Friday, 22 July 2016 at 02:08:44 UTC, Jonathan Marler wrote:
> I've got some batch scripts I wanted to convert to D.  I'd like 
> users to run them using rdmd, so it's obvious where the source 
> code lives and easy to modify.  The problem is that the batch 
> scripts I want to convert rely on the %~dp0 variable, which 
> contains the path to the batch script itself.  Note that this 
> variable is different then the current directory.  I haven't 
> been able to find a nice way to do this in D.  (Note that 
> thisExePath won't work because rdmd compiles the code to a 
> temporary directory, which makes sense.)
>
> Having known about the special __FILE__ and __LINE__ traits, I 
> figured there might be a trait for the file directory as well, 
> but it appears there is none.  I'd like to see what people 
> think about adding a new trait for this.  Maybe something like 
> __FILE_DIR__?  This would contain the directory of the 
> source-code file it appears in.  Also if this trait was added, 
> one could argue that a trait containing the path and the 
> filename should also be added, maybe something like 
> __FILE_FULL_PATH__?
>
>
> P.S. If you know of an existing solution to this problem please 
> let me know.

For others who may see this thread, the __FULL_FILE_PATH__ 
special trait was added to the dmd compiler with this PR: 
https://github.com/dlang/dmd/pull/5959

At the time of this post, the latest released version of D is 
2.071.1, so this trait should be available on any release after 
that.



More information about the Digitalmars-d mailing list