source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Put mandocerrs and mandoclevels arrays into libmandoc with
@ 2011-03-28 21:49 kristaps
  0 siblings, 0 replies; only message in thread
From: kristaps @ 2011-03-28 21:49 UTC (permalink / raw)
  To: source

Log Message:
-----------
Put mandocerrs and mandoclevels arrays into libmandoc with accessors
mparse_strerror() and mparse_strlevel().

Modified Files:
--------------
    mdocml:
        Makefile
        main.c
        mandoc.3
        mandoc.h
        read.c

Revision Data
-------------
Index: mandoc.3
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mandoc.3,v
retrieving revision 1.1
retrieving revision 1.2
diff -Lmandoc.3 -Lmandoc.3 -u -p -r1.1 -r1.2
--- mandoc.3
+++ mandoc.3
@@ -28,7 +28,9 @@
 .Nm mparse_free ,
 .Nm mparse_readfd ,
 .Nm mparse_reset ,
-.Nm mparse_result
+.Nm mparse_result ,
+.Nm mparse_strerror ,
+.Nm mparse_strlevel
 .Nd mandoc macro compiler library
 .Sh SYNOPSIS
 .In man.h
@@ -76,6 +78,14 @@
 .Fa "struct mparse *parse"
 .Fa "struct mdoc **mdoc"
 .Fa "struct man **man"
+.Fc
+.Ft "const char *"
+.Fo mparse_strerror
+.Fa "enum mandocerr"
+.Fc
+.Ft "const char *"
+.Fo mparse_strlevel
+.Fa "enum mandoclevel"
 .Fc
 .Vt extern const char * const * man_macronames;
 .Vt extern const char * const * mdoc_argnames;
Index: mandoc.h
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/mandoc.h,v
retrieving revision 1.68
retrieving revision 1.69
diff -Lmandoc.h -Lmandoc.h -u -p -r1.68 -r1.69
--- mandoc.h
+++ mandoc.h
@@ -303,6 +303,8 @@ struct mparse	 *mparse_alloc(enum mparse
 			enum mandoclevel, mandocmsg, void *);
 enum mandoclevel  mparse_readfd(struct mparse *, int, const char *);
 void		  mparse_result(struct mparse *, struct mdoc **, struct man **);
+const char	 *mparse_strerror(enum mandocerr);
+const char	 *mparse_strlevel(enum mandoclevel);
 
 void		 *mandoc_calloc(size_t, size_t);
 void		 *mandoc_malloc(size_t);
Index: Makefile
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/Makefile,v
retrieving revision 1.323
retrieving revision 1.324
diff -LMakefile -LMakefile -u -p -r1.323 -r1.324
--- Makefile
+++ Makefile
@@ -232,7 +232,7 @@ install: all
 	mkdir -p $(DESTDIR)$(MANDIR)/man3
 	mkdir -p $(DESTDIR)$(MANDIR)/man7
 	$(INSTALL_PROGRAM) mandoc $(DESTDIR)$(BINDIR)
-	$(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)/
+	$(INSTALL_LIB) libmandoc.a $(DESTDIR)$(LIBDIR)
 	$(INSTALL_MAN) mandoc.1 $(DESTDIR)$(MANDIR)/man1
 	$(INSTALL_MAN) mandoc.3 $(DESTDIR)$(MANDIR)/man3
 	$(INSTALL_MAN) man.7 mdoc.7 roff.7 eqn.7 tbl.7 mandoc_char.7 $(DESTDIR)$(MANDIR)/man7
Index: read.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/read.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -Lread.c -Lread.c -u -p -r1.6 -r1.7
--- read.c
+++ read.c
@@ -78,6 +78,124 @@ static	const enum mandocerr	mandoclimits
 	MANDOCERR_MAX
 };
 
+static	const char * const	mandocerrs[MANDOCERR_MAX] = {
+	"ok",
+
+	"generic warning",
+
+	/* related to the prologue */
+	"no title in document",
+	"document title should be all caps",
+	"unknown manual section",
+	"date missing, using today's date",
+	"cannot parse date, using it verbatim",
+	"prologue macros out of order",
+	"duplicate prologue macro",
+	"macro not allowed in prologue",
+	"macro not allowed in body",
+
+	/* related to document structure */
+	".so is fragile, better use ln(1)",
+	"NAME section must come first",
+	"bad NAME section contents",
+	"manual name not yet set",
+	"sections out of conventional order",
+	"duplicate section name",
+	"section not in conventional manual section",
+
+	/* related to macros and nesting */
+	"skipping obsolete macro",
+	"skipping paragraph macro",
+	"skipping no-space macro",
+	"blocks badly nested",
+	"child violates parent syntax",
+	"nested displays are not portable",
+	"already in literal mode",
+	"line scope broken",
+
+	/* related to missing macro arguments */
+	"skipping empty macro",
+	"argument count wrong",
+	"missing display type",
+	"list type must come first",
+	"tag lists require a width argument",
+	"missing font type",
+	"skipping end of block that is not open",
+
+	/* related to bad macro arguments */
+	"skipping argument",
+	"duplicate argument",
+	"duplicate display type",
+	"duplicate list type",
+	"unknown AT&T UNIX version",
+	"bad Boolean value",
+	"unknown font",
+	"unknown standard specifier",
+	"bad width argument",
+
+	/* related to plain text */
+	"blank line in non-literal context",
+	"tab in non-literal context",
+	"end of line whitespace",
+	"bad comment style",
+	"unknown escape sequence",
+	"unterminated quoted string",
+	
+	"generic error",
+
+	/* related to tables */
+	"bad table syntax",
+	"bad table option",
+	"bad table layout",
+	"no table layout cells specified",
+	"no table data cells specified",
+	"ignore data in cell",
+	"data block still open",
+	"ignoring extra data cells",
+
+	"input stack limit exceeded, infinite loop?",
+	"skipping bad character",
+	"escaped character not allowed in a name",
+	"skipping text before the first section header",
+	"skipping unknown macro",
+	"NOT IMPLEMENTED, please use groff: skipping request",
+	"argument count wrong",
+	"skipping end of block that is not open",
+	"missing end of block",
+	"scope open on exit",
+	"uname(3) system call failed",
+	"macro requires line argument(s)",
+	"macro requires body argument(s)",
+	"macro requires argument(s)",
+	"missing list type",
+	"line argument(s) will be lost",
+	"body argument(s) will be lost",
+
+	"generic fatal error",
+
+	"not a manual",
+	"column syntax is inconsistent",
+	"NOT IMPLEMENTED: .Bd -file",
+	"line scope broken, syntax violated",
+	"argument count wrong, violates syntax",
+	"child violates parent syntax",
+	"argument count wrong, violates syntax",
+	"NOT IMPLEMENTED: .so with absolute path or \"..\"",
+	"no document body",
+	"no document prologue",
+	"static buffer exhausted",
+};
+
+static	const char * const	mandoclevels[MANDOCLEVEL_MAX] = {
+	"SUCCESS",
+	"RESERVED",
+	"WARNING",
+	"ERROR",
+	"FATAL",
+	"BADARG",
+	"SYSERR"
+};
+
 static void
 resize_buf(struct buf *buf, size_t initial)
 {
@@ -626,4 +744,17 @@ mandoc_msg(enum mandocerr er, struct mpa
 
 	if (m->file_status < level)
 		m->file_status = level;
+}
+
+const char *
+mparse_strerror(enum mandocerr er)
+{
+
+	return(mandocerrs[er]);
+}
+
+const char *
+mparse_strlevel(enum mandoclevel lvl)
+{
+	return(mandoclevels[lvl]);
 }
Index: main.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/main.c,v
retrieving revision 1.159
retrieving revision 1.160
diff -Lmain.c -Lmain.c -u -p -r1.159 -r1.160
--- main.c
+++ main.c
@@ -63,124 +63,6 @@ struct	curparse {
 	char		  outopts[BUFSIZ]; /* buf of output opts */
 };
 
-static	const char * const	mandoclevels[MANDOCLEVEL_MAX] = {
-	"SUCCESS",
-	"RESERVED",
-	"WARNING",
-	"ERROR",
-	"FATAL",
-	"BADARG",
-	"SYSERR"
-};
-
-static	const char * const	mandocerrs[MANDOCERR_MAX] = {
-	"ok",
-
-	"generic warning",
-
-	/* related to the prologue */
-	"no title in document",
-	"document title should be all caps",
-	"unknown manual section",
-	"date missing, using today's date",
-	"cannot parse date, using it verbatim",
-	"prologue macros out of order",
-	"duplicate prologue macro",
-	"macro not allowed in prologue",
-	"macro not allowed in body",
-
-	/* related to document structure */
-	".so is fragile, better use ln(1)",
-	"NAME section must come first",
-	"bad NAME section contents",
-	"manual name not yet set",
-	"sections out of conventional order",
-	"duplicate section name",
-	"section not in conventional manual section",
-
-	/* related to macros and nesting */
-	"skipping obsolete macro",
-	"skipping paragraph macro",
-	"skipping no-space macro",
-	"blocks badly nested",
-	"child violates parent syntax",
-	"nested displays are not portable",
-	"already in literal mode",
-	"line scope broken",
-
-	/* related to missing macro arguments */
-	"skipping empty macro",
-	"argument count wrong",
-	"missing display type",
-	"list type must come first",
-	"tag lists require a width argument",
-	"missing font type",
-	"skipping end of block that is not open",
-
-	/* related to bad macro arguments */
-	"skipping argument",
-	"duplicate argument",
-	"duplicate display type",
-	"duplicate list type",
-	"unknown AT&T UNIX version",
-	"bad Boolean value",
-	"unknown font",
-	"unknown standard specifier",
-	"bad width argument",
-
-	/* related to plain text */
-	"blank line in non-literal context",
-	"tab in non-literal context",
-	"end of line whitespace",
-	"bad comment style",
-	"unknown escape sequence",
-	"unterminated quoted string",
-	
-	"generic error",
-
-	/* related to tables */
-	"bad table syntax",
-	"bad table option",
-	"bad table layout",
-	"no table layout cells specified",
-	"no table data cells specified",
-	"ignore data in cell",
-	"data block still open",
-	"ignoring extra data cells",
-
-	"input stack limit exceeded, infinite loop?",
-	"skipping bad character",
-	"escaped character not allowed in a name",
-	"skipping text before the first section header",
-	"skipping unknown macro",
-	"NOT IMPLEMENTED, please use groff: skipping request",
-	"argument count wrong",
-	"skipping end of block that is not open",
-	"missing end of block",
-	"scope open on exit",
-	"uname(3) system call failed",
-	"macro requires line argument(s)",
-	"macro requires body argument(s)",
-	"macro requires argument(s)",
-	"missing list type",
-	"line argument(s) will be lost",
-	"body argument(s) will be lost",
-
-	"generic fatal error",
-
-	"not a manual",
-	"column syntax is inconsistent",
-	"NOT IMPLEMENTED: .Bd -file",
-	"line scope broken, syntax violated",
-	"argument count wrong, violates syntax",
-	"child violates parent syntax",
-	"argument count wrong, violates syntax",
-	"NOT IMPLEMENTED: .so with absolute path or \"..\"",
-	"no document body",
-	"no document prologue",
-	"static buffer exhausted",
-};
-
 static	int		  moptions(enum mparset *, char *);
 static	void		  mmsg(enum mandocerr, enum mandoclevel,
 				const char *, int, int, const char *);
@@ -477,7 +359,8 @@ mmsg(enum mandocerr t, enum mandoclevel 
 
 	fprintf(stderr, "%s:%d:%d: %s: %s", 
 			file, line, col + 1, 
-			mandoclevels[lvl], mandocerrs[t]);
+			mparse_strlevel(lvl),
+			mparse_strerror(t));
 
 	if (msg)
 		fprintf(stderr, ": %s", msg);
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-03-28 21:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-28 21:49 mdocml: Put mandocerrs and mandoclevels arrays into libmandoc with kristaps

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).