Hi Mike!

Mike Gran <spk...@yahoo.com> skribis:

> I have a somewhat complete version at
> https://github.com/spk121/zile

Nice!

So, first, the obligatory patch:

diff --git a/build-aux/snarf-c2h.scm b/build-aux/snarf-c2h.scm
index 10ca880..edc933c 100755
--- a/build-aux/snarf-c2h.scm
+++ b/build-aux/snarf-c2h.scm
@@ -1,5 +1,5 @@
-#!/usr/local/bin/guile \
--e c2h -s
+#!/bin/sh
+guile -e c2h -s
 !#
 ;;; output.scm  --  Output documentation "snarffed" from C files in Texi/GDF.
 ;;;
Then, it fails to build for me, basically because the all the subrs are
undeclared; for instance, G_beginning_of_line is DEFUN’d in basic.c but
then there’s no header that declares it, which leads to errors when
trying to use it in another compilation unit:

  src/funcs.c: In function 'G_backward_paragraph':
  src/funcs.c:747:58: error: 'G_beginning_of_line' undeclared (first use in 
this function)

I tried the hack below but that doesn’t capture all uses:

diff --git a/src/main.h b/src/main.h
index 3a01b49..f06d4bb 100644
--- a/src/main.h
+++ b/src/main.h
@@ -230,7 +230,10 @@ SCM_DEFINE (G_ ## c_func, zile_func,				\
 
 /* Call an interactive function. */
 #define FUNCALL(c_func)				\
-  gfuncall (G_ ## c_func)
+  ({						\
+     extern SCM G_ ## c_func ();		\
+     gfuncall (G_ ## c_func);			\
+   })
 
 /* Call an interactive function with a universal argument. */
 #define FUNCALL_ARG(c_func, uniarg)             \
@@ -330,11 +333,17 @@ SCM_DEFINE (G_ ## c_func, zile_func,				\
       cname = true;					 \
     }
 
-#define G_FUNCALL(c_func) \
-  gfuncall (G_ ## c_func)
-
-#define G_FUNCALL_ARG(c_func, uniarg) \
-  gfuncall_arg (G_ ## c_func, uniarg)
+#define G_FUNCALL(c_func)			\
+   ({						\
+      extern SCM G_ ## c_func ();		\
+      gfuncall (G_ ## c_func);			\
+    })
+
+#define G_FUNCALL_ARG(c_func, uniarg)		\
+   ({						\
+      extern SCM G_ ## c_func ();		\
+      gfuncall_arg (G_ ## c_func, uniarg);	\
+    })
 
 /*--------------------------------------------------------------------------
  * Keyboard handling.
Am I missing something?

Thanks!

Ludo’.

Reply via email to