[Issue 3420] Impossible to specify -J path for subdirectories

2009-11-30 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3420


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||WONTFIX


--- Comment #1 from Walter Bright bugzi...@digitalmars.com 2009-11-30 
02:36:43 PST ---
Paths are not allowed in the string supplied to the import statement. This is
for security reasons. To get the example to compile, use:

import (data.txt);

and use the switch:

-Jdir

This behavior is as intended.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3420] Impossible to specify -J path for subdirectories

2009-11-30 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3420


Vladimir thecybersha...@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|WONTFIX |


--- Comment #2 from Vladimir thecybersha...@gmail.com 2009-11-30 02:40:45 PST 
---
That's fine and dandy, except it doesn't work either:

C:\Temp\D\Bug3420 dir
 Volume in drive C is WS2008X64
 Volume Serial Number is 4CC8-8E34

 Directory of C:\Temp\D\Bug3420

2009.11.30  12:38DIR  .
2009.11.30  12:38DIR  ..
2009.11.30  12:38DIR  dir
2009.11.30  12:3838 test.d
   1 File(s) 38 bytes
   3 Dir(s)  11,197,788,160 bytes free

C:\Temp\D\Bug3420 dir dir
 Volume in drive C is WS2008X64
 Volume Serial Number is 4CC8-8E34

 Directory of C:\Temp\D\Bug3420\dir

2009.11.30  12:38DIR  .
2009.11.30  12:38DIR  ..
2009.11.30  12:38 4 data.txt
   1 File(s)  4 bytes
   2 Dir(s)  11,197,788,160 bytes free

C:\Temp\D\Bug3420 cat test.d
const data = import(dir/data.txt);

C:\Temp\D\Bug3420 dmd -Jdir test.d
test.d(1): Error: use -Jpath switch to provide path for filename dir/data.txt

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3420] Impossible to specify -J path for subdirectories

2009-11-30 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3420



--- Comment #4 from Vladimir thecybersha...@gmail.com 2009-11-30 14:01:19 PST 
---
Ah, I see. This should be clarified in the documentation... Also, doesn't
anyone think that this could be too constricting? What if you have a directory
tree of data to import? Not to mention not being able to import two files with
the same filename but from different directories...

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3420] Impossible to specify -J path for subdirectories

2009-11-30 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3420



--- Comment #5 from Leandro Lucarella llu...@gmail.com 2009-11-30 14:10:12 
PST ---
(In reply to comment #4)
 Ah, I see. This should be clarified in the documentation... Also, doesn't
 anyone think that this could be too constricting?

I do.

Maybe this can be changed to be a feature request. I really can't see how
allowing subdirectories can be a security risk, you only have to check that the
canonical name of the imported file is still in a subdirectory of an -J'ed
directory.

In POSIX you can use realpath(3) to get the canonical name of a file, then just
check if the imported canonical name starts with any -J directory canonical
name.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3420] Impossible to specify -J path for subdirectories

2009-11-30 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3420



--- Comment #7 from Leandro Lucarella llu...@gmail.com 2009-11-30 16:51:47 
PST ---
Created an attachment (id=521)
Test cases

Here are some test cases, they are packed in a tarball because it includes a
directory structure.

Tests are in the directory d2, and they should be compiled in that directory.
The tests have a small comment indicating what -J should be used to compile
(other -J options should fail).

You can test them all with this simple bash script (run it in the d2
directory):
for f in test{1..7}.d
do
for j in . ..
do
echo -n $f: ; head -n1 $f
dmd -J$j $f  ./`basename $f .d`
done
done

You have to go through the results and check them visually, the script can be
improve to make the verification automatically.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3420] Impossible to specify -J path for subdirectories

2009-11-30 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3420



--- Comment #8 from Leandro Lucarella llu...@gmail.com 2009-11-30 16:54:59 
PST ---
BTW, the patch I consider the patch only a proof of concept because it lacks
Windows support (and testing on other unixes). Besides that, I think the patch
is not bad =)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---