changeset 8604:41a1e5dbb552

This patch fixes the reading of the menu.conf, because stream_open() isn't a good idea, it messes with dvd playback. Andreas Hess <jaska@gmx.net>
author arpi
date Sat, 28 Dec 2002 13:46:55 +0000
parents 30bef3c97b8b
children 553653787cea
files libmenu/menu.c
diffstat 1 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libmenu/menu.c	Sat Dec 28 13:45:04 2002 +0000
+++ b/libmenu/menu.c	Sat Dec 28 13:46:55 2002 +0000
@@ -4,6 +4,8 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
 
 #include "../libvo/osd.h"
 #include "../libvo/font_load.h"
@@ -115,8 +117,8 @@
   char* buffer = NULL;
   int bl = BUF_STEP, br = 0;
   int f;
-  stream_t* stream = open_stream(cfg_file,0,&f);
-  if(!stream) {
+  int fd = open(cfg_file, O_RDONLY);
+  if(fd < 0) {
     printf("Can't open menu config file: %s\n",cfg_file);
     return 0;
   }
@@ -126,14 +128,14 @@
     if(bl - br < BUF_MIN) {
       if(bl >= BUF_MAX) {
 	printf("Menu config file is too big (> %d KB)\n",BUF_MAX/1024);
-	free_stream(stream);
+	close(fd);
 	free(buffer);
 	return 0;
       }
       bl += BUF_STEP;
       buffer = realloc(buffer,bl);
     }
-    r = stream_read(stream,buffer+br,bl-br);
+    r = read(fd,buffer+br,bl-br);
     if(r == 0) break;
     br += r;
   }
@@ -143,6 +145,8 @@
   }
   buffer[br-1] = '\0';
 
+  close(fd);
+
   f = menu_parse_config(buffer);
   free(buffer);
   return f;