diff --git a/compiler/modules.nim b/compiler/modules.nim index 0371f34f3b..2fa46f3568 100644 --- a/compiler/modules.nim +++ b/compiler/modules.nim @@ -148,7 +148,7 @@ proc compileModule*(fileIdx: int32, flags: TSymFlags): PSym = return else: result.id = getID() - if sfMainModule in flags and gProjectName == "-": + if sfMainModule in flags and gProjectIsStdin: processModule(result, llStreamOpen(stdin), rd) else: processModule(result, nil, rd) diff --git a/compiler/nim.nim b/compiler/nim.nim index f04c616fcf..89db22e8f8 100644 --- a/compiler/nim.nim +++ b/compiler/nim.nim @@ -42,6 +42,7 @@ proc handleCmdLine() = gProjectName = "stdinfile" gProjectFull = "stdinfile" gProjectPath = getCurrentDir() + gProjectIsStdin = true elif gProjectName != "": try: gProjectFull = canonicalizePath(gProjectName) diff --git a/compiler/options.nim b/compiler/options.nim index d07342fce4..b3060a1807 100644 --- a/compiler/options.nim +++ b/compiler/options.nim @@ -149,6 +149,7 @@ var gProjectName* = "" # holds a name like 'nimrod' gProjectPath* = "" # holds a path like /home/alice/projects/nimrod/compiler/ gProjectFull* = "" # projectPath/projectName + gProjectIsStdin* = false # whether we're compiling from stdin gProjectMainIdx*: int32 # the canonical path id of the main module nimcacheDir* = "" command* = "" # the main command (e.g. cc, check, scan, etc)