updated for version 7.3.795
Problem: MzScheme does not build with tiny features.
Solution: Add #ifdefs. Also add UNUSED to avoid warnings. And change
library ordering.
diff --git a/src/if_mzsch.c b/src/if_mzsch.c
index 8b8c801..f9bcd5d 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -1483,7 +1483,7 @@
/* (eval {expr-string}) */
static Scheme_Object *
-vim_eval(void *data, int argc, Scheme_Object **argv)
+vim_eval(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{
#ifdef FEAT_EVAL
Vim_Prim *prim = (Vim_Prim *)data;
@@ -1686,10 +1686,12 @@
static Scheme_Object *
get_window_count(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{
- win_T *w;
int n = 0;
+#ifdef FEAT_WINDOWS
+ win_T *w;
for (w = firstwin; w != NULL; w = w->w_next)
+#endif
++n;
return scheme_make_integer(n);
}
@@ -1701,12 +1703,14 @@
Vim_Prim *prim = (Vim_Prim *)data;
vim_mz_buffer *buf;
Scheme_Object *list;
- win_T *w;
+ win_T *w = firstwin;
buf = get_buffer_arg(prim->name, 0, argc, argv);
list = scheme_null;
- for (w = firstwin; w != NULL; w = w->w_next)
+#ifdef FEAT_WINDOWS
+ for ( ; w != NULL; w = w->w_next)
+#endif
if (w->w_buffer == buf->buf)
{
list = scheme_make_pair(window_new(w), list);
@@ -1755,14 +1759,16 @@
/* (get-win-num [window]) */
static Scheme_Object *
-get_window_num(void *data, int argc, Scheme_Object **argv)
+get_window_num(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED)
{
+ int nr = 1;
+#ifdef FEAT_WINDOWS
Vim_Prim *prim = (Vim_Prim *)data;
win_T *win = get_window_arg(prim->name, 0, argc, argv)->win;
- int nr = 1;
win_T *wp;
for (wp = firstwin; wp != win; wp = wp->w_next)
+#endif
++nr;
return scheme_make_integer(nr);
@@ -1773,14 +1779,16 @@
get_window_by_num(void *data, int argc, Scheme_Object **argv)
{
Vim_Prim *prim = (Vim_Prim *)data;
- win_T *win;
+ win_T *win = firstwin;
int fnum;
fnum = SCHEME_INT_VAL(GUARANTEE_INTEGER(prim->name, 0));
if (fnum < 1)
scheme_signal_error(_("window index is out of range"));
- for (win = firstwin; win != NULL; win = win->w_next, --fnum)
+#ifdef FEAT_WINDOWS
+ for ( ; win != NULL; win = win->w_next, --fnum)
+#endif
if (fnum == 1) /* to be 1-based */
return window_new(win);