here it goes.

I did:
diff -Naur src/util.c _darcs/pristine/src/util.c > util.c.diff

If it is not what you meant, tell me.

[]'s


On 3/28/07, Gabriel C <[EMAIL PROTECTED]> wrote:
Cláudio Henrique wrote:
> here goes setup diff. I only touched util.c so far.
>
> []'s
> claudio.
>
> ps.: I am not a zombie, we've got 4h of difference between us. :)
>
>

Uhh :) pls use diff -Naur or at last -ruN :)

Thx


_______________________________________________
Frugalware-devel mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-devel



--
In order to be effective truth must penetrate like an arrow - and that
is likely to hurt. 'Posthumous Pieces' by Wei Wu Wei


--- src/util.c	2007-03-28 21:02:02.000000000 -0300
+++ _darcs/pristine/src/util.c	2007-03-26 22:11:33.000000000 -0300
@@ -125,7 +125,7 @@
 	dialog_msgbox(_("Setup complete"), _("Ejecting installation media..."),
 			0, 0, 0);
 
-	umount2(target,MNT_FORCE);
+	umount(target);
 
 	if((fd = open(dev, O_RDONLY|O_NONBLOCK))==-1)
 		return(1);
@@ -251,11 +251,46 @@
 /* does the same thing as 'rm -rf' */
 int rmrf(char *path)
 {
-	char *ptr = g_strdup_printf("rm -rf %s", path);
-	int ret = fw_system(ptr);
-	free(ptr);
-	
-	return(ret);
+	int errflag = 0;
+	struct dirent *dp;
+	DIR *dirp;
+	char name[PATH_MAX];
+
+	if(!unlink(path))
+		return(0);
+	else
+	{
+		if(errno == ENOENT)
+			return(0);
+		else if(errno == EPERM)
+		{
+			/* fallthrough */
+		}
+		else if(errno == EISDIR)
+		{
+			/* fallthrough */
+		}
+		else if(errno == ENOTDIR)
+			return(1);
+		else
+			/* not a directory */
+			return(1);
+
+		if((dirp = opendir(path)) == (DIR *)-1)
+			return(1);
+		for(dp = readdir(dirp); dp != NULL; dp = readdir(dirp))
+			if(dp->d_ino)
+			{
+				sprintf(name, "%s/%s", path, dp->d_name);
+				if(strcmp(dp->d_name, "..") && strcmp(dp->d_name, "."))
+					errflag += rmrf(name);
+			}
+		closedir(dirp);
+		if(rmdir(path))
+			errflag++;
+		return(errflag);
+	}
+	return(0);
 }
 
 int umount_if_needed(char *sourcedir)
@@ -287,21 +322,18 @@
 	}
 	fclose(fp);
 	if(dev != NULL)
-		return (umount2(dev,0));
+		system(g_strdup_printf("umount %s >%s 2>%s", dev, LOGDEV, LOGDEV));
 	return(0);
 }
 
 int fw_system(char* cmd)
 {
-	char *ptr;
 #ifdef FINAL
-	ptr = g_strdup_printf("%s >%s 2>%s", cmd, LOGDEV, LOGDEV);
+	return(system(g_strdup_printf("%s >%s 2>%s", cmd, LOGDEV, LOGDEV)));
 #else
-	ptr = g_strdup_printf("echo %s >%s 2>%s", cmd, LOGDEV, LOGDEV);
+	return(system(g_strdup_printf("echo %s >%s 2>%s", cmd, LOGDEV,
+		LOGDEV)));
 #endif
-	int ret = system(ptr);
-	free(ptr);
-	return (ret);
 }
 
 char *drop_version(char *str)
_______________________________________________
Frugalware-devel mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-devel

Reply via email to