From a7dd551919aa760137d514a8e566611fdd1fad50 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Sun, 17 Mar 2019 18:21:45 +0000 Subject: The header file "html.h" uses enum roff_tok, so "roff.h" must be included before it. Diff from bcallah@ tweaked by me; he found the bug by compiling with pcc. --- Makefile.depend | 6 ++-- eqn_html.c | 3 +- mandoc_headers.3 | 101 +++++++++++++++++++++++++++++++++---------------------- tbl_html.c | 3 +- 4 files changed, 67 insertions(+), 46 deletions(-) diff --git a/Makefile.depend b/Makefile.depend index a0898095..a02a2dc5 100644 --- a/Makefile.depend +++ b/Makefile.depend @@ -29,7 +29,7 @@ dbm.o: dbm.c config.h mansearch.h dbm_map.h dbm.h dbm_map.o: dbm_map.c config.h mansearch.h dbm_map.h dbm.h demandoc.o: demandoc.c config.h mandoc.h roff.h man.h mdoc.h mandoc_parse.h eqn.o: eqn.c config.h mandoc_aux.h mandoc.h roff.h eqn.h libmandoc.h eqn_parse.h -eqn_html.o: eqn_html.c config.h mandoc.h eqn.h out.h html.h +eqn_html.o: eqn_html.c config.h mandoc.h roff.h eqn.h out.h html.h eqn_term.o: eqn_term.c config.h eqn.h out.h term.h html.o: html.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc.h roff.h out.h html.h manconf.h main.h lib.o: lib.c config.h roff.h libmdoc.h lib.in @@ -41,7 +41,7 @@ man_term.o: man_term.c config.h mandoc_aux.h roff.h man.h out.h term.h main.h man_validate.o: man_validate.c config.h mandoc_aux.h mandoc.h roff.h man.h libmandoc.h roff_int.h libman.h mandoc.o: mandoc.c config.h mandoc_aux.h mandoc.h roff.h libmandoc.h roff_int.h mandoc_aux.o: mandoc_aux.c config.h mandoc.h mandoc_aux.h -mandoc_msg.o: mandoc_msg.c mandoc.h +mandoc_msg.o: mandoc_msg.c config.h mandoc.h mandoc_ohash.o: mandoc_ohash.c mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc_xr.o: mandoc_xr.c mandoc_aux.h mandoc_ohash.h compat_ohash.h mandoc_xr.h mandocd.o: mandocd.c config.h mandoc.h roff.h mdoc.h man.h mandoc_parse.h main.h manconf.h @@ -70,7 +70,7 @@ st.o: st.c config.h mandoc.h roff.h libmdoc.h tag.o: tag.c config.h mandoc_aux.h mandoc_ohash.h compat_ohash.h tag.h tbl.o: tbl.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_parse.h tbl_int.h tbl_data.o: tbl_data.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_int.h -tbl_html.o: tbl_html.c config.h mandoc.h tbl.h out.h html.h +tbl_html.o: tbl_html.c config.h mandoc.h roff.h tbl.h out.h html.h tbl_layout.o: tbl_layout.c config.h mandoc_aux.h mandoc.h tbl.h libmandoc.h tbl_int.h tbl_opts.o: tbl_opts.c config.h mandoc.h tbl.h libmandoc.h tbl_int.h tbl_term.o: tbl_term.c config.h mandoc.h tbl.h out.h term.h diff --git a/eqn_html.c b/eqn_html.c index 1fe41ecb..64d06649 100644 --- a/eqn_html.c +++ b/eqn_html.c @@ -1,4 +1,4 @@ -/* $Id: eqn_html.c,v 1.18 2018/12/13 05:23:38 schwarze Exp $ */ +/* $Id: eqn_html.c,v 1.19 2019/03/17 18:21:45 schwarze Exp $ */ /* * Copyright (c) 2011, 2014 Kristaps Dzonsons * Copyright (c) 2017 Ingo Schwarze @@ -26,6 +26,7 @@ #include #include "mandoc.h" +#include "roff.h" #include "eqn.h" #include "out.h" #include "html.h" diff --git a/mandoc_headers.3 b/mandoc_headers.3 index 32138473..2cda75cb 100644 --- a/mandoc_headers.3 +++ b/mandoc_headers.3 @@ -1,4 +1,20 @@ -.Dd $Mdocdate: December 30 2018 $ +.\" $Id: mandoc_headers.3,v 1.31 2019/03/17 18:21:45 schwarze Exp $ +.\" +.\" Copyright (c) 2014-2019 Ingo Schwarze +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: March 17 2019 $ .Dt MANDOC_HEADERS 3 .Os .Sh NAME @@ -129,19 +145,19 @@ and the function Uses pointers to the types .Vt struct ohash from -.Pa mandoc_ohash.h , +.Qq Pa mandoc_ohash.h , .Vt struct mdoc_arg and .Vt union mdoc_data from -.Pa mdoc.h , +.Qq Pa mdoc.h , .Vt struct tbl_span from -.Pa tbl.h , +.Qq Pa tbl.h , and .Vt struct eqn_box from -.Pa eqn.h +.Qq Pa eqn.h as opaque struct members. .It Qq Pa tbl.h Data structures for the @@ -184,13 +200,13 @@ Top level parser interface, for use in the main program and in the main parser, but not in formatters. .Pp Requires -.Pa mandoc.h +.Qq Pa mandoc.h for .Vt enum mandocerr and .Vt enum mandoclevel and -.Pa roff.h +.Qq Pa roff.h for .Vt enum mandoc_os . .Pp @@ -202,7 +218,7 @@ for function prototypes. Uses .Vt struct roff_meta from -.Pa roff.h +.Qq Pa roff.h as an opaque type for function prototypes. .It Qq Pa mandoc_xr.h Cross reference validation; intended for use in the main program @@ -251,11 +267,11 @@ described in Uses the types .Vt struct roff_node from -.Pa roff.h +.Qq Pa roff.h and .Vt struct roff_man from -.Pa roff_int.h +.Qq Pa roff_int.h as opaque types for function prototypes. .Pp When this header is included, the same file should not include @@ -269,7 +285,7 @@ described in Uses the type .Vt struct roff_man from -.Pa roff.h +.Qq Pa roff.h as an opaque type for function prototypes. .Pp When this header is included, the same file should not include @@ -305,7 +321,7 @@ for function prototypes. Uses the type .Vt struct roff_man from -.Pa roff.h +.Qq Pa roff.h as an opaque type for function prototypes. .It Qq Pa roff_int.h Parser internals shared by multiple parsers. @@ -334,24 +350,24 @@ and the two special functions and .Fn mdoc_argv_free because the latter two are needed by -.Qq Pa roff.c . +.Pa roff.c . .Pp Uses the types .Vt struct ohash from -.Pa mandoc_ohash.h , +.Qq Pa mandoc_ohash.h , .Vt struct roff_node and .Vt struct roff_meta from -.Pa roff.h , +.Qq Pa roff.h , .Vt struct roff from .Pa roff.c , and .Vt struct mdoc_arg from -.Pa mdoc.h +.Qq Pa mdoc.h as opaque types for function prototypes. .It Qq Pa libmdoc.h Requires @@ -372,14 +388,14 @@ parser. Uses the types .Vt struct roff_node from -.Pa roff.h , +.Qq Pa roff.h , .Vt struct roff_man from -.Pa roff_int.h , +.Qq Pa roff_int.h , and .Vt struct mdoc_arg from -.Pa mdoc.h +.Qq Pa mdoc.h as opaque types for function prototypes. .Pp When this header is included, the same file should not include @@ -399,11 +415,11 @@ parser. Uses the types .Vt struct roff_node from -.Pa roff.h +.Qq Pa roff.h and .Vt struct roff_man from -.Pa roff_int.h +.Qq Pa roff_int.h as opaque types for function prototypes. .Pp When this header is included, the same file should not include @@ -437,12 +453,12 @@ and Uses the type .Vt struct eqn_box from -.Pa mandoc.h +.Qq Pa mandoc.h as an opaque type for function prototypes. Uses the types .Vt struct roff_node from -.Pa roff.h +.Qq Pa roff.h and .Vt struct eqn_def from @@ -466,11 +482,11 @@ Provides the functions documented in Uses the types .Vt struct tbl_span from -.Pa tbl.h +.Qq Pa tbl.h and .Vt struct tbl_node from -.Pa tbl_int.h +.Qq Pa tbl_int.h as opaque types for function prototypes. .Pp When this header is included, the same file should not include @@ -523,11 +539,11 @@ and Uses .Vt struct tbl_span from -.Pa mandoc.h +.Qq Pa mandoc.h as an opaque type for function prototypes. .Pp When this header is included, the same file should not include -.Pa mansearch.h . +.Qq Pa mansearch.h . .It Qq Pa term.h Requires .In sys/types.h @@ -558,27 +574,30 @@ Uses and .Vt struct eqn_box from -.Pa mandoc.h +.Qq Pa mandoc.h and .Vt struct roff_meta and .Vt struct roff_node from -.Pa roff.h +.Qq Pa roff.h as opaque types for function prototypes. .Pp When this header is included, the same file should not include -.Pa html.h +.Qq Pa html.h or -.Pa mansearch.h . +.Qq Pa mansearch.h . .It Qq Pa html.h Requires .In sys/types.h for .Vt size_t , -.Pa mandoc.h +.Qq Pa mandoc.h for .Vt enum mandoc_esc , +.Qq Pa roff.h +for +.Vt enum roff_tok , and .Qq Pa out.h for @@ -602,17 +621,17 @@ Uses and .Vt struct eqn_box from -.Pa mandoc.h +.Qq Pa mandoc.h and .Vt struct roff_node from -.Pa roff.h +.Qq Pa roff.h as opaque types for function prototypes. .Pp When this header is included, the same file should not include -.Pa term.h +.Qq Pa term.h or -.Pa mansearch.h . +.Qq Pa mansearch.h . .It Qq Pa tag.h Requires .In sys/types.h @@ -631,7 +650,7 @@ Provides the top level steering functions for all formatters. Uses the type .Vt struct roff_meta from -.Pa roff.h +.Qq Pa roff.h as an opaque type for function prototypes. .It Qq Pa manconf.h Requires @@ -671,12 +690,12 @@ and Uses .Vt struct manpaths from -.Pa manconf.h +.Qq Pa manconf.h as an opaque type for function prototypes. .Pp When this header is included, the same file should not include -.Pa out.h , -.Pa term.h , +.Qq Pa out.h , +.Qq Pa term.h , or -.Pa html.h . +.Qq Pa html.h . .El diff --git a/tbl_html.c b/tbl_html.c index 4ab6bed1..e137757d 100644 --- a/tbl_html.c +++ b/tbl_html.c @@ -1,4 +1,4 @@ -/* $Id: tbl_html.c,v 1.32 2019/01/06 04:55:09 schwarze Exp $ */ +/* $Id: tbl_html.c,v 1.33 2019/03/17 18:21:45 schwarze Exp $ */ /* * Copyright (c) 2011 Kristaps Dzonsons * Copyright (c) 2014, 2015, 2017, 2018 Ingo Schwarze @@ -25,6 +25,7 @@ #include #include "mandoc.h" +#include "roff.h" #include "tbl.h" #include "out.h" #include "html.h" -- cgit v1.2.3