documentor: Fixed first Save on doc file creation
authorJerome St-Louis <jerome@ecere.com>
Wed, 28 Aug 2013 09:14:18 +0000 (05:14 -0400)
committerJerome St-Louis <jerome@ecere.com>
Wed, 28 Aug 2013 09:14:18 +0000 (05:14 -0400)
documentor/src/Documentor.ec
ecere/src/sys/EARArchive.ec

index 99ff545..06bebe6 100644 (file)
@@ -2284,9 +2284,26 @@ class HelpView : HTMLView
 
             sprintf(docFile, "%s/%s.eCdoc", settings.docDir, (!module || !module.name || (ns && ns->name && !strcmp(ns->name, "namespaces/ecere/namespaces/com"))) ? "ecereCOM" : module.name);
 
-            archive = ArchiveOpen(docFile, { true } );
-            readOnly = archive == null;
-            delete archive;
+            if(FileExists(docFile))
+            {
+               archive = ArchiveOpen(docFile, { true } );
+               readOnly = archive == null;
+               delete archive;
+            }
+            else
+            {
+               readOnly = true;
+               archive = ArchiveOpen(docFile, { true } );
+               if(archive)
+               {
+                  // Must create root directory on archive creation
+                  ArchiveDir dir = archive.OpenDirectory("", null, replace);
+                  if(dir)
+                     readOnly = false;
+                  delete dir;
+               }
+               delete archive;
+            }
          }
 
          page.Generate(f);
index 5004f91..e3912ac 100644 (file)
@@ -1191,7 +1191,7 @@ class EARArchiveDir : ArchiveDir
 
          last = position;
          if(!first) first = position;
-         if(newPosition) *newPosition = (bool)position;
+         if(newPosition) *newPosition = position;
       }
       else
       {