gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnugo-devel] another SGF patch


From: Paul Pogonyshev
Subject: [gnugo-devel] another SGF patch
Date: Fri, 23 Jan 2004 03:00:21 +0000
User-agent: KMail/1.5.94

This simple patch breaks sgf_write_header_reduced() out of
sgf_write_header().  The former is now always called from
writesgf(), so that all files (including traces) have `FF',
`AP' and `DT' SGF properties.

Without FF[4], SGFC (SGF syntax checker) yells at `B[]' and
`W[]' (pass moves) -- this is SGF 4 format.  In earlier SGFs,
those were expressed as `W[tt]' and `B[tt]'.

Paul



--- sgfnode.c.~1.25.~   2004-01-15 00:18:26.000000000 +0000
+++ sgfnode.c   2004-01-23 02:54:30.000000000 +0000
@@ -807,29 +807,40 @@ sgfWriteResult(SGFNode *node, float scor
 }
 
 
-void
-sgf_write_header(SGFNode *root, int overwrite, int seed, float komi,
-                int level, int rules)
+static void
+sgf_write_header_reduced(SGFNode *root, int overwrite)
 {
   time_t curtime = time(NULL);
   struct tm *loctime = localtime(&curtime);
   char str[128];
   int dummy;
 
-  gg_snprintf(str, 128, "GNU Go %s Random Seed %d level %d", 
-             VERSION, seed, level);
-  if (overwrite || !sgfGetIntProperty(root, "GN", &dummy))
-    sgfOverwriteProperty(root, "GN", str);
   gg_snprintf(str, 128, "%4.4i-%2.2i-%2.2i",
              loctime->tm_year+1900, loctime->tm_mon+1, loctime->tm_mday);
   if (overwrite || !sgfGetIntProperty(root, "DT", &dummy))
     sgfOverwriteProperty(root, "DT", str);
   if (overwrite || !sgfGetIntProperty(root, "AP", &dummy))
     sgfOverwriteProperty(root, "AP", "GNU Go:"VERSION);
+  sgfOverwriteProperty(root, "FF", "4");
+}
+
+
+void
+sgf_write_header(SGFNode *root, int overwrite, int seed, float komi,
+                int level, int rules)
+{
+  char str[128];
+  int dummy;
+
+  gg_snprintf(str, 128, "GNU Go %s Random Seed %d level %d", 
+             VERSION, seed, level);
+  if (overwrite || !sgfGetIntProperty(root, "GN", &dummy))
+    sgfOverwriteProperty(root, "GN", str);
   if (overwrite || !sgfGetIntProperty(root, "RU", &dummy))
     sgfOverwriteProperty(root, "RU", rules ? "Chinese" : "Japanese");
-  sgfOverwriteProperty(root, "FF", "4");
   sgfOverwritePropertyFloat(root, "KM", komi);
+
+  sgf_write_header_reduced(root, overwrite);
 }
 
 
@@ -1487,6 +1498,8 @@ writesgf(SGFNode *root, const char *file
     return 0;
   }
 
+  sgf_write_header_reduced(root, 0);
+
   sgf_column = 0;
   unparse_game(outfile, root, 1);
   fclose(outfile);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]