summaryrefslogtreecommitdiff
path: root/multimedia/ldvd/files/patch-ldvd-ls.c
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/ldvd/files/patch-ldvd-ls.c')
-rw-r--r--multimedia/ldvd/files/patch-ldvd-ls.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/multimedia/ldvd/files/patch-ldvd-ls.c b/multimedia/ldvd/files/patch-ldvd-ls.c
new file mode 100644
index 000000000000..002ca12bc748
--- /dev/null
+++ b/multimedia/ldvd/files/patch-ldvd-ls.c
@@ -0,0 +1,34 @@
+--- ldvd-ls.c.orig Thu Dec 8 22:09:02 2005
++++ ldvd-ls.c Thu Dec 8 22:51:43 2005
+@@ -155,18 +155,25 @@
+ return -1;
+ }
+
+- if ( fseek(filehandle, 32808, SEEK_SET )) {
++ if ( fseek(filehandle, 32768, SEEK_SET )) {
+ fclose(filehandle);
+ fprintf(stderr, "Couldn't seek in %s for title\n", dvd_device);
+ strcpy(title, "unknown");
+ return -1;
+ }
+
+- if ( 32 != (i = fread(title, 1, 32, filehandle)) ) {
+- fclose(filehandle);
+- fprintf(stderr, "Couldn't read enough bytes for title.\n");
+- strcpy(title, "unknown");
+- return -1;
++ {
++ #define DVD_SEC_SIZ 2048
++ char tempBuf[ DVD_SEC_SIZ ];
++
++ if ( DVD_SEC_SIZ != fread(tempBuf, 1, DVD_SEC_SIZ, filehandle) ) {
++ fclose(filehandle);
++ fprintf(stderr, "Couldn't read enough bytes for title.\n");
++ strcpy(title, "unknown");
++ return -1;
++ }
++ snprintf( title, 32, "%s", tempBuf + 40 );
++ i=32;
+ }
+
+ fclose (filehandle);