summaryrefslogtreecommitdiff
blob: 64336eed98a12abc2128a982791ce90d8242a6d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--- src/extras.c.orig	2006-06-15 10:45:59.000000000 +0100
+++ src/extras.c	2006-06-15 10:45:39.000000000 +0100
@@ -178,20 +178,21 @@
       stat(filename,&statbuf);
       if (S_ISDIR(statbuf.st_mode)==0) /* Is this a directory? */
       {
-        /* File found, check for lock file  */
-	if (strstr(filename,".LOCK")==0) /* Is the file a lock file itself? */
-	  if (!islocked(filename)) /* no, is there a lock file for this file? */
-	  {
-	    /* check if the file grows at the moment (another program writes to it) */
-	    int groesse1;
-	    int groesse2;
-	    groesse1=statbuf.st_size;
-	    sleep(1);
-	    stat(filename,&statbuf);
-	    groesse2=statbuf.st_size;
-	    if (groesse1==groesse2)
-  	      found=1;
-	  }
+        /* File found, check for lock file and skip portage directory locks */
+	if (strstr(filename,".keep")==0) /* Is it a portage directory lock? */
+	  if (strstr(filename,".LOCK")==0) /* Is the file a lock file itself? */
+	    if (!islocked(filename)) /* no, is there a lock file for this file? */
+	    {
+	      /* check if the file grows at the moment (another program writes to it) */
+	      int groesse1;
+	      int groesse2;
+	      groesse1=statbuf.st_size;
+	      sleep(1);
+	      stat(filename,&statbuf);
+	      groesse2=statbuf.st_size;
+	      if (groesse1==groesse2)
+  	        found=1;
+	    }
       }	
     }
     closedir(dirdata);