--- playerwin.py.orig 2005-03-01 17:47:03.000000000 -0500 +++ playerwin.py 2005-05-11 19:15:15.000000000 -0400 @@ -43,7 +43,11 @@ window.window.__init__(self, screen, h, w, y, x, config.colors.playerwindow, _("Playback Info"), border) - + try: + self.playerinfofd = open(self.playerinfofile, "w") + except IOError, e: + log.error(_("error '%s' occured during write to playerinfofile") % e) + self.playerinfofd = None # we don't want to have the focus self.panel.bottom() @@ -102,18 +106,17 @@ self.update() # update player info file, if configured - if self.playerinfofile: + if self.playerinfofd and self.song: try: - f = open(config.general.playerinfofile, "w") - if self.song: - f.write("%s - %s (%s/%s)\n" % ( self.song.artist, - self.song.title, - formattime(self.time), - formattime(self.song.length))) - f.close() + self.playerinfofd.seek(0) + self.playerinfofd.write("%s - %s (%s/%s)\n" % ( self.song.artist, + self.song.title, + formattime(self.time), + formattime(self.song.length))) + os.fsync(self.playerinfofd) except IOError, e: log.error(_("error '%s' occured during write to playerinfofile") % e) - self.playerinfofile = None + self.playerinfofd = None def keypressed(self, event):