]> git.sesse.net Git - vlc/blob - extras/contrib/src/Patches/libdvdread.patch
* gcc 4.0 fixes for libgcrypt
[vlc] / extras / contrib / src / Patches / libdvdread.patch
1 diff -ru libdvdread-orig/dvdread/bswap.h libdvdread/dvdread/bswap.h
2 --- libdvdread-orig/dvdread/bswap.h     Sat Mar 12 16:42:18 2005
3 +++ libdvdread/dvdread/bswap.h  Sat Mar 12 16:42:25 2005
4 @@ -65,7 +65,7 @@
5   * functionality! 
6   */
7  
8 -#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__)
9 +#elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined( __BEOS__ )
10  #define B2N_16(x) \
11   x = ((((x) & 0xff00) >> 8) | \
12        (((x) & 0x00ff) << 8))
13 diff -ru libdvdread-orig/dvdread/dvd_reader.c libdvdread/dvdread/dvd_reader.c
14 --- libdvdread-orig/dvdread/dvd_reader.c        Sat Mar 12 16:42:18 2005
15 +++ libdvdread/dvdread/dvd_reader.c     Sat Mar 12 16:48:29 2005
16 @@ -344,14 +344,16 @@
17  
18         /* Resolve any symlinks and get the absolut dir name. */
19         {
20 +           char *current_path;
21             char *new_path;
22 -           int cdir = open( ".", O_RDONLY );
23 -           
24 -           if( cdir >= 0 ) {
25 +
26 +           current_path = getcwd( NULL, PATH_MAX );
27 +           if( current_path ) {
28                 chdir( path_copy );
29                 new_path = getcwd( NULL, PATH_MAX );
30 -               fchdir( cdir );
31 -               close( cdir );
32 +               chdir( current_path );
33 +               free( current_path );
34 +
35                 if( new_path ) {
36                     free( path_copy );
37                     path_copy = new_path;
38 @@ -504,10 +506,12 @@
39              sprintf( filename, "%s%s%s", path,
40                       ( ( path[ strlen( path ) - 1 ] == '/' ) ? "" : "/" ),
41                       ent->d_name );
42 +            closedir( dir );
43              return 0;
44          }
45      }
46  
47 +    closedir( dir );
48      return -1;
49  }
50