* 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).