From 0aee4eaf401101bdf9fc9dc4d70c89beeae064a5 Mon Sep 17 00:00:00 2001 From: WebFreak001 Date: Mon, 12 Dec 2016 21:52:36 +0100 Subject: [PATCH] Allow stdin everywhere fix #317 --- src/analysis/run.d | 4 ++-- src/ctags.d | 2 +- src/etags.d | 2 +- src/readers.d | 4 +++- src/symbol_finder.d | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/analysis/run.d b/src/analysis/run.d index 8bf9267..9e6d8d8 100644 --- a/src/analysis/run.d +++ b/src/analysis/run.d @@ -117,7 +117,7 @@ void generateReport(string[] fileNames, const StaticAnalysisConfig config, ulong lineOfCodeCount; foreach (fileName; fileNames) { - auto code = fileName == "stdin" ? readStdin() : readFile(fileName); + auto code = readFile(fileName); // Skip files that could not be read and continue with the rest if (code.length == 0) continue; @@ -155,7 +155,7 @@ bool analyze(string[] fileNames, const StaticAnalysisConfig config, bool hasErrors = false; foreach (fileName; fileNames) { - auto code = fileName == "stdin" ? readStdin() : readFile(fileName); + auto code = readFile(fileName); // Skip files that could not be read and continue with the rest if (code.length == 0) continue; diff --git a/src/ctags.d b/src/ctags.d index 757bbd6..e023acc 100644 --- a/src/ctags.d +++ b/src/ctags.d @@ -33,7 +33,7 @@ void printCtags(File output, string[] fileNames) foreach (fileName; fileNames) { RollbackAllocator rba; - File f = File(fileName); + File f = fileName == "stdin" ? std.stdio.stdin : File(fileName); if (f.size == 0) continue; auto bytes = uninitializedArray!(ubyte[])(to!size_t(f.size)); diff --git a/src/etags.d b/src/etags.d index 91fea50..c331abf 100644 --- a/src/etags.d +++ b/src/etags.d @@ -42,7 +42,7 @@ void printEtags(File output, bool tagAll, string[] fileNames) foreach (fileName; fileNames) { RollbackAllocator rba; - File f = File(fileName); + File f = fileName == "stdin" ? std.stdio.stdin : File(fileName); if (f.size == 0) continue; auto bytes = uninitializedArray!(ubyte[])(to!size_t(f.size)); diff --git a/src/readers.d b/src/readers.d index df0a8bd..1ea8767 100644 --- a/src/readers.d +++ b/src/readers.d @@ -21,6 +21,8 @@ ubyte[] readStdin() ubyte[] readFile(string fileName) { + if (fileName == "stdin") + return readStdin(); if (!exists(fileName)) { stderr.writefln("%s does not exist", fileName); @@ -54,7 +56,7 @@ string[] expandArgs(string[] args) args ~= "."; foreach (arg; args[1 .. $]) { - if (isFileSafe(arg)) + if (arg == "stdin" || isFileSafe(arg)) rVal ~= arg; else foreach (item; dirEntries(arg, SpanMode.breadth).map!(a => a.name)) diff --git a/src/symbol_finder.d b/src/symbol_finder.d index 0d759a7..baf63da 100644 --- a/src/symbol_finder.d +++ b/src/symbol_finder.d @@ -23,8 +23,8 @@ void findDeclarationOf(File output, string symbolName, string[] fileNames) auto visitor = new FinderVisitor(output, symbolName); foreach (fileName; fileNames) { - File f = File(fileName); - assert(isFile(fileName)); + File f = fileName == "stdin" ? std.stdio.stdin : File(fileName); + assert(fileName == "stdin" || isFile(fileName)); if (f.size == 0) continue; auto bytes = uninitializedArray!(ubyte[])(to!size_t(f.size));