work
[pspp] / src / libpspp / message.h
index 11e5b9d98eeda0694180836d8149c71ee2d24055..e0c98cebf78da3f154cc57c01ebfea53fec895e0 100644 (file)
@@ -23,6 +23,7 @@
 #include "libpspp/compiler.h"
 
 struct string;
+struct substring;
 
 /* What kind of message is this? */
 enum msg_category
@@ -85,6 +86,8 @@ struct msg_point
     int column;
   };
 
+struct msg_point msg_point_advance (struct msg_point, struct substring);
+
 /* Location of the cause of an error. */
 struct msg_location
   {
@@ -109,6 +112,11 @@ struct msg_location
        Both 'start' and 'end' are inclusive, line-wise and column-wise.
     */
     struct msg_point start, end;
+
+    /* Normally, 'start' and 'end' contain column information, then displaying
+       the message will underline the location.  Setting this to true disables
+       displaying underlines. */
+    bool omit_underlines;
   };
 
 void msg_location_uninit (struct msg_location *);
@@ -151,7 +159,7 @@ struct msg_handler
     void (*output_msg) (const struct msg *, void *aux);
     void *aux;
 
-    void (*lex_source_ref) (const struct lex_source *);
+    struct lex_source *(*lex_source_ref) (const struct lex_source *);
     void (*lex_source_unref) (struct lex_source *);
     struct substring (*lex_source_get_line) (const struct lex_source *,
                                              int line);