Yevgeny Kliteynik wrote:
Sasha Khapyorsky wrote:
Hi Yevgeny,

On 14:03 Thu 15 Nov     , Yevgeny Kliteynik wrote:
When parsing QoS policy file for the first time, print
first syntax error to stdout and to the osm log.

Signed-off-by: Yevgeny Kliteynik <[EMAIL PROTECTED]>
---
 opensm/opensm/osm_qos_parser.y |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/opensm/opensm/osm_qos_parser.y b/opensm/opensm/osm_qos_parser.y
index 4738831..71f41fe 100644
--- a/opensm/opensm/osm_qos_parser.y
+++ b/opensm/opensm/osm_qos_parser.y
@@ -1873,12 +1873,21 @@ int __qos_parser_wrap()

 void __qos_parser_error (char *s)
 {
+    static boolean_t first_time = TRUE;

Could we avoid using static variables?

Would you prefer global flags instead?
Is there any other way? Nothing comes to mind right now...

I can also remove the flag and have the error message printed
to stderr with every sweep, until the syntax error is fixed.
Sounds better?

-- Yevgeny

(But seems __qos_parser_error() function itself should be declared as static).

Sorry, can't do - it's defined by yacc, and
it's even declared as extern in this file.

-- Yevgeny

Sasha


+    char * last_text_read = __parser_strip_white(__qos_parser_text);
     OSM_LOG_ENTER(p_qos_parser_osm_log, __qos_parser_error);
     osm_log(p_qos_parser_osm_log, OSM_LOG_ERROR,
             "__qos_parser_error: ERR AC05: "
             "Syntax error (line %d:%d): %s. "
             "Last text read: \"%s\"\n",
- line_num, column_num, s, __parser_strip_white(__qos_parser_text));
+            line_num, column_num, s, last_text_read);
+    if (first_time)
+    {
+        first_time = FALSE;
+        printf("Error parsing QoS Policy File (line %d:%d): \"%s\". "
+               "Last text read: \"%s\".\n",
+               line_num, column_num, s, last_text_read);
+    }
     OSM_LOG_EXIT(p_qos_parser_osm_log);
 }

--
1.5.1.4




_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general


_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to