*** ./mkisofs/joliet.c.orig     Thu Aug  8 22:24:40 2002
--- ./mkisofs/joliet.c  Tue Nov 19 18:11:24 2002
***************
*** 1051,1056 ****
--- 1051,1099 ----
        if (strcmp(lpnt, "..") == 0)
                return 1;
  
+ #ifdef DVD_VIDEO
+       /*
+        * There're rumors claiming that some players assume VIDEO_TS.IFO
+        * to be the first file in VIDEO_TS catalog. Well, it's basically
+        * the only file player has to actually look for, as the whole
+        * video content can be "rolled down" from this file alone.
+        *                              <[EMAIL PROTECTED]>
+        */
+ #if 0
+       if (dvd_video) {
+               if (!strcasecmp (lpnt,"VIDEO_TS.IFO"))  return 1;
+               if (!strcasecmp (rpnt,"VIDEO_TS.IFO"))  return -1;
+               }
+ #else
+       /*
+        * What the hell... Why not take a step further and sort the list
+        * according to the disc layout? I.e. ????.IFO followed by
+        * corresponding .VOBs and finally .BUP. At the very least
+        * directories on discs produced by SONY apparently are sorted
+        * just like this...
+        */
+       while (dvd_video) {
+               char *ldot;
+               size_t len;
+               int ret;
+ 
+               if ((ldot=strchr (lpnt,'.')) == NULL)   break;
+               len = ldot-lpnt;
+               if (len!=8)                             break;
+               if ((ret=strncasecmp (lpnt,"VTS_",4)) &&
+                   strncasecmp (lpnt,"VIDEO_TS.",9))   break;
+               if (ret==0 && isdigit(ldot[-1]))
+                       len--; /* disregard the last digit in VTS_XY_Z */
+               if (strncmp (lpnt,rpnt,len))            break;
+               if (!strncasecmp (lpnt+8,".IFO",4))     return 1;
+               if (!strncasecmp (lpnt+8,".BUP",4))     return -1;
+               if (!strncasecmp (rpnt+8,".IFO",4))     return -1;
+               if (!strncasecmp (rpnt+8,".BUP",4))     return 1;
+               break;
+               }
+ #endif
+ #endif
+ 
        while (*rpnt && *lpnt) {
                if (*rpnt == ';' && *lpnt != ';')
                        return -1;


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to