]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/dist: ignore file names beginning with . or _
authorRuss Cox <rsc@golang.org>
Mon, 6 Feb 2012 18:33:22 +0000 (13:33 -0500)
committerRuss Cox <rsc@golang.org>
Mon, 6 Feb 2012 18:33:22 +0000 (13:33 -0500)
This is the same heuristic that build.ScanDir uses.
It avoids considering 'resource fork' files on OS X;
the resource for x.go is ._x.go.

R=gri
CC=golang-dev
https://golang.org/cl/5616073

src/cmd/dist/build.c

index 04818e12654bb4ffec8970c9328110721c870181..54510db1daaaca5c5883c1e3e22727207e18dd87 100644 (file)
@@ -555,6 +555,22 @@ install(char *dir)
        // Everything in that directory, and any target-specific
        // additions.
        xreaddir(&files, bstr(&path));
+
+       // Remove files beginning with . or _,
+       // which are likely to be editor temporary files.
+       // This is the same heuristic build.ScanDir uses.
+       // There do exist real C files beginning with _,
+       // so limit that check to just Go files.
+       n = 0;
+       for(i=0; i<files.len; i++) {
+               p = files.p[i];
+               if(hasprefix(p, ".") || (hasprefix(p, "_") && hassuffix(p, ".go")))
+                       xfree(p);
+               else
+                       files.p[n++] = p;
+       }
+       files.len = n;
+
        for(i=0; i<nelem(deptab); i++) {
                if(hasprefix(dir, deptab[i].prefix)) {
                        for(j=0; (p=deptab[i].dep[j])!=nil; j++) {
@@ -595,7 +611,7 @@ install(char *dir)
                }
        }
        vuniq(&files);
-
+       
        // Convert to absolute paths.
        for(i=0; i<files.len; i++) {
                if(!isabs(files.p[i])) {