Mercurial > projects > dstress
changeset 741:3f45fca47bec
added reporter and list features
author | thomask |
---|---|
date | Sat, 12 Nov 2005 21:56:58 +0000 |
parents | a14f98c3ae83 |
children | 5906350b5048 |
files | unique.d |
diffstat | 1 files changed, 44 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/unique.d Sat Nov 12 17:57:06 2005 +0000 +++ b/unique.d Sat Nov 12 21:56:58 2005 +0000 @@ -7,6 +7,11 @@ private char[][char[]] known; private uint doppelgaenger; +version(reporters){ + private import std.string; + private uint[char[]] reporters; +} + private char[] lastPathElem(char[] path){ size_t end=path.length-1; size_t start; @@ -42,6 +47,35 @@ }else{ known[base] = file; } + + version(reporters){ + // only works for UTF-8 + char[] data=cast(char[]) read(file); + + size_t index = find(data, "@author@"); + if(index != index.max){ + data = data[index + "@author@".length .. data.length]; + + foreach(char end; "\r\n\x00\x0A"){ + index = find(data, end); + if(index != index.max){ + data = data[0 .. index]; + } + } + + data = strip(data); + + version(verbose){ + if(data in reporters){ + reporters[data]++; + }else{ + reporters[data]=1; + } + }else{ + reporters[data]=1; + } + } + } } if(isdir(file) && (base[0]!='.')){ @@ -72,6 +106,16 @@ } } + version(reporters){ + foreach(char[] entry; reporters.keys.sort){ + version(verbose){ + fprintf(stderr, "%i\t%.*s\n", reporters[entry], entry); + }else{ + fprintf(stderr, "%.*s\n", entry); + } + } + } + fwritef(stdout, "hits : %s\n", doppelgaenger); return doppelgaenger > 0;