From: Russ Cox Date: Mon, 24 Nov 2008 19:21:56 +0000 (-0800) Subject: gobuild: X-Git-Tag: weekly.2009-11-06~2628 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=6c4d8f830965d04854dd42294c939c48d3d61d83;p=gostls13.git gobuild: recognize "// package foo" in non-go files recognize "gobuild: ignore" to exclude from build R=r DELTA=10 (7 added, 2 deleted, 1 changed) OCL=19878 CL=19905 --- diff --git a/src/cmd/gobuild/gobuild.c b/src/cmd/gobuild/gobuild.c index 55553ec364..091e2af6fc 100644 --- a/src/cmd/gobuild/gobuild.c +++ b/src/cmd/gobuild/gobuild.c @@ -206,12 +206,17 @@ getpkg(char *file) char *p, *q; int i; - if(!suffix(file, ".go")) - return nil; if((b = Bopen(file, OREAD)) == nil) sysfatal("open %s: %r", file); while((p = Brdline(b, '\n')) != nil) { p[Blinelen(b)-1] = '\0'; + if(!suffix(file, ".go")) { + if(*p != '/' || *(p+1) != '/') + continue; + p += 2; + } + if(strstr(p, "gobuild: ignore")) + return "main"; while(*p == ' ' || *p == '\t') p++; if(strncmp(p, "package", 7) == 0 && (p[7] == ' ' || p[7] == '\t')) { @@ -487,7 +492,7 @@ main(int argc, char **argv) njob = 0; job = emalloc(argc*sizeof job[0]); for(i=0; i