source@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: kristaps@mdocml.bsd.lv
To: source@mdocml.bsd.lv
Subject: mdocml: Put mandocerrs and mandoclevels arrays into libmandoc with
Date: Mon, 28 Mar 2011 17:49:42 -0400 (EDT)	[thread overview]
Message-ID: <201103282149.p2SLngEK017108@krisdoz.my.domain> (raw)

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

                 reply	other threads:[~2011-03-28 21:49 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201103282149.p2SLngEK017108@krisdoz.my.domain \
    --to=kristaps@mdocml.bsd.lv \
    --cc=source@mdocml.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).