Blob Blame History Raw
Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 gcl (2.6.12-67) unstable; urgency=medium
 .
   * Version_2_6_13pre55
Author: Camm Maguire <camm@debian.org>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2018-03-03

--- gcl-2.6.12.orig/h/notcomp.h
+++ gcl-2.6.12/h/notcomp.h
@@ -374,3 +374,5 @@ EXTER gmp_randfnptr_t Mersenne_Twister_G
 #endif
 
 #define collect(p_,f_) (p_)=&(*(p_)=(f_))->c.c_cdr
+#define READ_STREAM_OR_FASD(strm_) \
+  type_of(strm_)==t_stream ? read_object_non_recursive(strm_) : fSread_fasd_top(strm_)
--- gcl-2.6.12.orig/o/cmpaux.c
+++ gcl-2.6.12/o/cmpaux.c
@@ -363,7 +363,7 @@ do_init(object *statVV) {
 
   if (ch!='\n') {
     struct fasd * fd;
-    faslfile=FFN(fSopen_fasd)(faslfile,sKinput,OBJNULL,Cnil);
+    faslfile=fSopen_fasd(faslfile,sKinput,OBJNULL,Cnil);
     fd=(struct fasd *)faslfile->v.v_self;
     n=fix(fd->table_length);
     fd->table->v.v_self=alloca(n*sizeof(object));
@@ -371,7 +371,7 @@ do_init(object *statVV) {
     fd->table->v.v_dim=faslfile->v.v_self[1]->v.v_fillp=n;
   }
 
-  n=fix(type_of(faslfile)==t_stream ? read_object(faslfile) : FFN(fSread_fasd_top)(faslfile));
+  n=fix(READ_STREAM_OR_FASD(faslfile));
   sSPinit->s.s_dbind=fasl_vec=fSmake_vector1_1(n,aet_object,Cnil);
 
   /* switch SPinit to point to a vector of function addresses */
@@ -395,9 +395,9 @@ do_init(object *statVV) {
   */
   /* Now we can run the forms f1 f2 in form= (%init f1 f2 ...) */
 
-  FFN(fSload_stream)(faslfile,Cnil);
+  fSload_stream(faslfile,Cnil);
   if (type_of(faslfile)!=t_stream)
-    FFN(fSclose_fasd)(faslfile);
+    fSclose_fasd(faslfile);
 
 }
 
--- gcl-2.6.12.orig/o/fasdump.c
+++ gcl-2.6.12/o/fasdump.c
@@ -561,6 +561,13 @@ DEFUN_NEW("READ-FASD-TOP",object,fSread_
      { RESTORE_FASD;
      return result;}
  }
+#ifdef STATIC_FUNCTION_POINTERS
+object
+fSread_fasd_top(object x) {
+  return FFN(fSread_fasd_top)(x);
+}
+#endif
+
 
 object sLeq;
 object sSPinit;
@@ -618,6 +625,12 @@ DEFUN_NEW("OPEN-FASD",object,fSopen_fasd
     fd->table_length=current_fasd.table_length;
     return result;
   }}
+#ifdef STATIC_FUNCTION_POINTERS
+object
+fSopen_fasd(object stream, object direction, object eof, object tabl) {
+  return FFN(fSopen_fasd)(stream,direction,eof,tabl);
+}
+#endif
 
 DEFUN_NEW("CLOSE-FASD",object,fSclose_fasd,SI,1,1,NONE,OO,OO,OO,OO,(object ar),"")
 /* static object */
@@ -649,6 +662,12 @@ DEFUN_NEW("CLOSE-FASD",object,fSclose_fa
    return ar;
   
  }
+#ifdef STATIC_FUNCTION_POINTERS
+object
+fSclose_fasd(object ar) {
+  return FFN(fSclose_fasd)(ar);
+}
+#endif
 
 
 #define HASHP(x) 1
--- gcl-2.6.12.orig/o/file.d
+++ gcl-2.6.12/o/file.d
@@ -1645,8 +1645,7 @@ DEFUN_NEW("LOAD-STREAM",object,fSload_st
   for (;;) {
     preserving_whitespace_flag = FALSE;
     detect_eos_flag = TRUE;
-    x = type_of(strm)==t_stream ? read_object_non_recursive(strm) : FFN(fSread_fasd_top)(strm);
-    if (x == OBJNULL)
+    if ((x = READ_STREAM_OR_FASD(strm))==OBJNULL)
       break;
     {
       object *base = vs_base, *top = vs_top, *lex = lex_env;
@@ -1672,6 +1671,12 @@ DEFUN_NEW("LOAD-STREAM",object,fSload_st
   RETURN1(Ct);
 
 }
+#ifdef STATIC_FUNCTION_POINTERS
+object
+fSload_stream(object strm,object print) {
+  return FFN(fSload_stream)(strm,print);
+}
+#endif
 
 DEFUN_NEW("LOAD-FASL",object,fSload_fasl,SI,2,2,NONE,OO,OO,OO,OO,(object fasl_filename,object print),"") {