[AVFS] unrar support for urar module
Mark <stopverf-irGDp5a2xbY/[email protected]> Mon, 13 Feb 2006 13:59:03 +0100
| Newsgroups | gmane.comp.file-systems.avfs.user |
|---|---|
| Message-ID | <[email protected]> |
Hi, I attached a patch to make the urar module try unrar if rar failes to execute. Mark
avfs-unrar.diff
(text/plain, 828 B)
--- avfs/modules/urar.c 2006-02-13 11:09:25.000000000 +0100
+++ avfs-urar/modules/urar.c 2006-02-13 11:15:41.000000000 +0100
@@ -520,7 +520,6 @@
if(res < 0)
return res;
- /* FIXME: if the program 'rar' doesn't exist, try 'unrar' */
prog[0] = "rar";
prog[1] = "p";
prog[2] = "-c-";
@@ -541,6 +540,23 @@
if(res == 0)
res = av_wait_prog(&pri, 0, 0);
+ if(res == -EIO)
+ {
+ // rar failed, Try unrar
+ prog[0] = "unrar";
+ av_init_proginfo(&pri);
+ pri.prog = prog;
+ pri.ifd = open("/dev/null", O_RDONLY);
+ pri.ofd = fd;
+ pri.efd = pri.ifd;
+
+ res = av_start_prog(&pri);
+ close(pri.ifd);
+
+ if(res == 0)
+ res = av_wait_prog(&pri, 0, 0);
+ }
+
av_unref_obj(rf);
return res;