+
+void displayScan (cstring msg)
+{
+ if (s_scanOpen)
+ {
+ displayScanClose ();
+ }
+
+ llassert (!s_scanOpen);
+
+ if (context_getFlag (FLG_SHOWSCAN))
+ {
+ showHerald ();
+ fprintf (g_messagestream, "< %s >\n", cstring_toCharsSafe (msg));
+ (void) fflush (g_messagestream);
+ }
+
+ cstring_free (msg);
+}
+
+void displayScanOpen (cstring msg)
+{
+ if (s_scanOpen)
+ {
+ displayScanClose ();
+ }
+
+ llassert (!s_scanOpen);
+ s_scanOpen = TRUE;
+
+ if (context_getFlag (FLG_SHOWSCAN))
+ {
+ fprintf (g_messagestream, "< %s", cstring_toCharsSafe (msg));
+ (void) fflush (g_messagestream);
+ }
+
+ cstring_free (msg);
+}
+
+void displayScanContinue (/*@temp@*/ cstring msg)
+{
+ if (context_getFlag (FLG_SHOWSCAN))
+ {
+ if (s_scanOpen)
+ {
+ fprintf (g_messagestream, "%s", cstring_toCharsSafe (msg));
+ (void) fflush (g_messagestream);
+ }
+ else
+ {
+ /*
+ ** Don't call bug recursively
+ */
+
+ fprintf (stderr, "*** Bug: scan continue scan not open\n");
+ }
+ }
+}
+
+void displayScanClose (void)
+{
+ if (s_scanOpen)
+ {
+ if (context_getFlag (FLG_SHOWSCAN))
+ {
+ fprintf (g_messagestream, " >\n");
+ (void) fflush (g_messagestream);
+ }
+ }
+ else
+ {
+ /*
+ ** Don't call bug recursively
+ */
+
+ fprintf (stderr, "*** Bug: scan close scan not open\n");
+ }
+
+ s_scanOpen = FALSE;
+}
+
+