the current directory is no longer taken into account when resolving module paths

This commit is contained in:
Zahary Karadjov
2011-12-11 12:41:06 +02:00
parent 67bc23bb60
commit caa4766a33
5 changed files with 24 additions and 30 deletions

View File

@@ -11,7 +11,7 @@
import
msgs, hashes, nversion, options, strutils, crc, ropes, idents, lists,
intsets, idgen, os
intsets, idgen
const
ImportTablePos* = 0 # imported symbols are at level 0
@@ -1001,18 +1001,3 @@ proc getStrOrChar*(a: PNode): string =
internalError(a.info, "getStrOrChar")
result = ""
proc getModuleName*(n: PNode): string =
# This returns a short relative module name without the nim extension
# e.g. like "system", "importer" or "somepath/module"
# The proc won't perform any checks that the path is actually valid
case n.kind
of nkStrLit, nkRStrLit, nkTripleStrLit:
result = UnixToNativePath(n.strVal)
of nkIdent:
result = n.ident.s
of nkSym:
result = n.sym.name.s
else:
internalError(n.info, "getModuleName")
result = ""

View File

@@ -13,7 +13,7 @@
import
ast, astalgo, strutils, hashes, options, nversion, msgs, os, ropes, idents,
wordrecg, math, syntaxes, renderer, lexer, rst, times, highlite
wordrecg, math, syntaxes, renderer, lexer, rst, times, highlite, importer
proc CommandDoc*()
proc CommandRst2Html*()

View File

@@ -17,6 +17,21 @@ proc evalImport*(c: PContext, n: PNode): PNode
proc evalFrom*(c: PContext, n: PNode): PNode
proc importAllSymbols*(c: PContext, fromMod: PSym)
proc getModuleName*(n: PNode): string =
# This returns a short relative module name without the nim extension
# e.g. like "system", "importer" or "somepath/module"
# The proc won't perform any checks that the path is actually valid
case n.kind
of nkStrLit, nkRStrLit, nkTripleStrLit:
result = UnixToNativePath(n.strVal)
of nkIdent:
result = n.ident.s
of nkSym:
result = n.sym.name.s
else:
internalError(n.info, "getModuleName")
result = ""
proc checkModuleName*(n: PNode): string =
# This returns the full canonical path for a given module import
var modulename = n.getModuleName

View File

@@ -2,6 +2,7 @@
--hint[XDeclaredButNotUsed]=off
path="llvm"
path="$projectPath/.."
@if llvm_gcc or gcc:
# GCC, LLVM and Visual C++ have a problem to optimize some modules.

View File

@@ -186,21 +186,14 @@ iterator iterSearchPath*(): string =
var it = PStrEntry(SearchPaths.head)
while it != nil:
yield it.data
it = PStrEntry(it.Next)
it = PStrEntry(it.Next)
proc rawFindFile(f: string): string =
template ret(e: expr) =
result = e.canonicalizePath
return
if ExistsFile(f):
ret f
else:
for it in iterSearchPath():
result = JoinPath(it, f)
if ExistsFile(result):
ret result
result = ""
for it in iterSearchPath():
result = JoinPath(it, f)
if ExistsFile(result):
return result.canonicalizePath
result = ""
proc FindFile*(f: string): string =
result = rawFindFile(f)