diff -Naur mplayer-a/libvo/vo_aa.c mplayer-b/libvo/vo_aa.c --- mplayer-a/libvo/vo_aa.c 2010-11-14 15:46:13.000000000 +0200 +++ mplayer-b/libvo/vo_aa.c 2011-03-07 10:40:02.000000000 +0200 @@ -23,7 +23,9 @@ #include #include +#include #include +#include #include #include @@ -666,7 +668,6 @@ char * hidis = NULL; struct stat sbuf; int fd, vt, major, minor; - FILE * fp; char fname[12]; if(arg) @@ -686,15 +687,21 @@ major = sbuf.st_rdev >> 8; vt = minor = sbuf.st_rdev & 0xff; close (fd); - sprintf (fname, "/dev/vcsa%2.2i", vt); - fp = fopen (fname, "w+"); - if (fp==NULL){ + sprintf(fname, "/dev/vcsa%d", vt); + fd = open(fname, O_WRONLY); + if (fd == -1) { + sprintf(fname, "/dev/vcsa%2.2i", vt); + fd = open(fname, O_WRONLY); + } + if (fd == -1) { fprintf(stderr,"VO: [aa] cannot open %s for writing," "so we'll not use linux driver\n", fname); aa_recommendlowdisplay("linux"); aa_recommendhidisplay("curses"); aa_recommendhidisplay("X11"); - }else fclose(fp); + } else { + close(fd); + } } else aa_recommendhidisplay(hidis); c = aa_autoinit(&aa_defparams);