mirror of https://github.com/mpv-player/mpv
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> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8605 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
bd814ee879
commit
cfa30a8b32
|
@ -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 @@ int menu_init(char* cfg_file) {
|
|||
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 @@ int menu_init(char* cfg_file) {
|
|||
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 @@ int menu_init(char* cfg_file) {
|
|||
}
|
||||
buffer[br-1] = '\0';
|
||||
|
||||
close(fd);
|
||||
|
||||
f = menu_parse_config(buffer);
|
||||
free(buffer);
|
||||
return f;
|
||||
|
|
Loading…
Reference in New Issue