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’.