]> mj.ucw.cz Git - libucw.git/commitdiff
When O_APPEND is given to bopen(), don't forget to set fb->pos and fb->fdpos.
authorMartin Mares <mj@ucw.cz>
Sun, 23 Jun 2002 16:01:16 +0000 (16:01 +0000)
committerMartin Mares <mj@ucw.cz>
Sun, 23 Jun 2002 16:01:16 +0000 (16:01 +0000)
lib/fb-file.c

index ac25dcf3e954b1c663dcc5b288ba33625302abd4..6715c7aaf57932bd4bfe35861833140b983269b2 100644 (file)
@@ -91,11 +91,15 @@ bfdopen_internal(int fd, uns buflen, byte *name)
 struct fastbuf *
 bopen(byte *name, uns mode, uns buffer)
 {
+  struct fastbuf *b;
   int fd = sh_open(name, mode, 0666);
   if (fd < 0)
     die("Unable to %s file %s: %m",
        (mode & O_CREAT) ? "create" : "open", name);
-  return bfdopen_internal(fd, buffer, name);
+  b = bfdopen_internal(fd, buffer, name);
+  if (mode & O_APPEND)
+    bfd_seek(b, 0, SEEK_END);
+  return b;
 }
 
 struct fastbuf *