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