[openfirmware] r988 - clients/lib ofw/core

svn at openfirmware.info svn at openfirmware.info
Tue Oct 28 00:37:02 CET 2008


Author: wmb
Date: 2008-10-28 00:37:02 +0100 (Tue, 28 Oct 2008)
New Revision: 988

Modified:
   clients/lib/lib.c
   ofw/core/filecmds.fth
Log:
OLPC trac 8897 - EMACS was leaving cruft at the end of files.


Modified: clients/lib/lib.c
===================================================================
--- clients/lib/lib.c	2008-10-25 00:54:23 UTC (rev 987)
+++ clients/lib/lib.c	2008-10-27 23:37:02 UTC (rev 988)
@@ -105,10 +105,13 @@
   if (fp == (FILE *)NULL)
       return ((FILE *)NULL);
 
+  if (mode[0] == 'w') {
+      if ((fp->id = OFCreate(name)) == 0)
+          return ((FILE *)NULL);
+      goto good;
+  }
+
   if ((fp->id = OFOpen(name)) == 0) {
-      if (mode[0] == 'w' && ((fp->id = OFCreate(name)) != 0))
-          goto good;
-
       return ((FILE *)NULL);
   }
   

Modified: ofw/core/filecmds.fth
===================================================================
--- ofw/core/filecmds.fth	2008-10-25 00:54:23 UTC (rev 987)
+++ ofw/core/filecmds.fth	2008-10-27 23:37:02 UTC (rev 988)
@@ -527,7 +527,18 @@
 
 dev /client-services
 : firmworks,create  ( cstr -- ihandle )
-   cscount  ['] $create-file  catch  if  2drop 0  then
+   cscount                   ( path$ )
+
+   \ If the file already exists, delete it so it can be
+   \ recreated with 0 initial length.
+   2dup ['] $open-file catch  if  ( path$ x x )
+      2drop                       ( path$ )
+   else                           ( path$ ih )
+      close-dev                   ( path$ )
+      2dup ['] $delete catch  if  2drop  then  ( path$ )
+   then                           ( path$ )
+
+   ['] $create-file  catch  if  2drop 0  then
 ;
 device-end
 




More information about the openfirmware mailing list