gbranden pushed a commit to branch master
in repository groff.

commit 65cf17d9ca53bc85ab4621618be9338a24546ed3
Author: G. Branden Robinson <[email protected]>
AuthorDate: Thu May 14 18:21:31 2026 -0500

    [groff]: Give command a proper header file.
    
    ...for external symbols.
    
    * src/roff/groff/pipeline.c: Move `extern` declarations of symbols
      defined in "groff.cpp" from here...
    * src/roff/groff/groff.h: ...to this new file.
    
    * src/roff/groff/groff.cpp:
    * src/roff/groff/pipeline.c: Preprocessor-include new file.
    
    * src/roff/groff/groff.cpp: Wrap this inclusion in `extern "C"` brace
      scope to indicate need for C-compatible calling conventions.
    
    * src/roff/groff/groff.am: Add new file to `groff_SOURCES` macro
      definition.
    
    Fixes `-Wmissing-declarations` GCC warning.
---
 ChangeLog                 | 17 +++++++++++++++++
 src/roff/groff/groff.am   |  1 +
 src/roff/groff/groff.cpp  |  4 ++++
 src/roff/groff/groff.h    | 11 +++++++++++
 src/roff/groff/pipeline.c |  6 ++----
 5 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index cb32f18de..2eed6c915 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2026-05-15  G. Branden Robinson <[email protected]>
+
+       [groff]: Give command a proper header file for external symbols.
+
+       * src/roff/groff/pipeline.c: Move `extern` declarations of
+       symbols defined in "groff.cpp" from here...
+       * src/roff/groff/groff.h: ...to this new file.
+       * src/roff/groff/groff.cpp:
+       * src/roff/groff/pipeline.c: Preprocessor-include new file.
+       * src/roff/groff/groff.cpp: Wrap this inclusion in `extern "C"`
+       brace scope to indicate need for C-compatible calling
+       conventions.
+       * src/roff/groff/groff.am: Add new file to `groff_SOURCES` macro
+       definition.
+
+       Fixes `-Wmissing-declarations` GCC warning.
+
 2026-05-14  G. Branden Robinson <[email protected]>
 
        * src/preproc/html/pre-html.cpp (html_system, make_string)
diff --git a/src/roff/groff/groff.am b/src/roff/groff/groff.am
index e3e51548c..ce7362f4b 100644
--- a/src/roff/groff/groff.am
+++ b/src/roff/groff/groff.am
@@ -29,6 +29,7 @@ groff_LDADD = \
   $(LIBM)
 groff_SOURCES = \
   src/roff/groff/groff.cpp \
+  src/roff/groff/groff.h \
   src/roff/groff/pipeline.c \
   src/roff/groff/pipeline.h
 src/roff/groff/groff.$(OBJEXT): defs.h
diff --git a/src/roff/groff/groff.cpp b/src/roff/groff/groff.cpp
index dd8f6a26d..10129306c 100644
--- a/src/roff/groff/groff.cpp
+++ b/src/roff/groff/groff.cpp
@@ -54,6 +54,10 @@ along with this program.  If not, see 
<http://www.gnu.org/licenses/>. */
 #include "relocate.h"
 #include "defs.h"
 
+extern "C" {
+#include "groff.h" // c_error(), c_fatal()
+}
+
 #define GXDITVIEW "gxditview"
 
 // troff will be passed an argument of -rXREG=1 if the -X option is
diff --git a/src/roff/groff/groff.h b/src/roff/groff/groff.h
new file mode 100644
index 000000000..e5b892a67
--- /dev/null
+++ b/src/roff/groff/groff.h
@@ -0,0 +1,11 @@
+// groff.cpp
+extern void c_error(const char * /* format */, const char * /* arg1 */,
+                   const char * /* arg2 */, const char * /* arg3 */);
+extern void c_fatal(const char * /* format */, const char * /* arg1 */,
+                   const char * /* arg2 */, const char * /* arg3 */);
+
+// Local Variables:
+// fill-column: 72
+// mode: C++
+// End:
+// vim: set cindent noexpandtab shiftwidth=2 textwidth=72:
diff --git a/src/roff/groff/pipeline.c b/src/roff/groff/pipeline.c
index 0872afaa8..05adc398a 100644
--- a/src/roff/groff/pipeline.c
+++ b/src/roff/groff/pipeline.c
@@ -81,10 +81,8 @@ int run_pipeline(int, char ***, bool);
 extern "C" {
 #endif
 
-extern void c_error(const char *, const char *, const char *,
-                   const char *);
-extern void c_fatal(const char *, const char *, const char *,
-                   const char *);
+#include "groff.h" // c_error(), c_fatal()
+
 extern const char *i_to_a(int);                /* from libgroff */
 
 #ifdef __cplusplus

_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to