385abae
Description: <short summary of the patch>
385abae
 TODO: Put a short summary on the line above and replace this paragraph
385abae
 with a longer explanation of this change. Complete the meta-information
385abae
 with other relevant fields (see below for details). To make it easier, the
385abae
 information below has been extracted from the changelog. Adjust it or drop
385abae
 it.
385abae
 .
385abae
 gcl (2.6.12-53) unstable; urgency=medium
385abae
 .
385abae
   * list_order.9
385abae
Author: Camm Maguire <camm@debian.org>
385abae
385abae
---
385abae
The information above should follow the Patch Tagging Guidelines, please
385abae
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
385abae
are templates for supplementary fields that you might want to add:
385abae
385abae
Origin: <vendor|upstream|other>, <url of original patch>
385abae
Bug: <url in upstream bugtracker>
385abae
Bug-Debian: https://bugs.debian.org/<bugnumber>
385abae
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
385abae
Forwarded: <no|not-needed|url proving that it has been forwarded>
385abae
Reviewed-By: <name and email of someone who approved the patch>
385abae
Last-Update: 2017-08-23
385abae
385abae
--- gcl-2.6.12.orig/o/print.d
385abae
+++ gcl-2.6.12/o/print.d
385abae
@@ -35,12 +35,6 @@ int  line_length = 72;
385abae
 #define  WRITEC_NEWLINE(strm) (writec_stream('\n',strm))
385abae
 #endif
385abae
 
385abae
-#define	to_be_escaped(c) \
385abae
-	(standard_readtable->rt.rt_self[(c)&0377].rte_chattrib \
385abae
-	 != cat_constituent || \
385abae
-	 isLower((c)&0377) || (c) == ':')
385abae
-
385abae
-
385abae
 #define READ_TABLE_CASE (Vreadtable->s.s_dbind->rt.rt_case)
385abae
 
385abae
 #define	mod(x)		((x)%Q_SIZE)
385abae
@@ -637,50 +631,31 @@ constant_case(object x) {
385abae
 }
385abae
 
385abae
 static int
385abae
-all_dots(object x) {
385abae
-
385abae
-  fixnum i;
385abae
-
385abae
-  for (i=0;i<x->s.s_fillp;i++)
385abae
-    if (x->s.s_self[i]!='.')
385abae
-      return 0;
385abae
+needs_escape (object x) {
385abae
 
385abae
-  return 1;
385abae
-
385abae
-}
385abae
-
385abae
-static int
385abae
-needs_escape (object x,int pp) {
385abae
-
385abae
-  fixnum i;
385abae
-  char ch;
385abae
+  fixnum i,all_dots=1;
385abae
+  int ch;
385abae
 
385abae
   if (!PRINTescape)
385abae
     return 0;
385abae
 
385abae
   for (i=0;i<x->s.s_fillp;i++)
385abae
     switch((ch=x->s.s_self[i])) {
385abae
-    case '(':
385abae
-    case ')':
385abae
     case ':':
385abae
-    case '`':
385abae
-    case '\'':
385abae
-    case '"':
385abae
-    case ';':
385abae
-    case ',':
385abae
-    case '\n':
385abae
       return 1;
385abae
-    case ' ':
385abae
-      if (!i) return 1;
385abae
+    case '.':
385abae
+      break;
385abae
     default:
385abae
+      all_dots=0;
385abae
+      if (Vreadtable->s.s_dbind->rt.rt_self[ch].rte_chattrib!=cat_constituent)
385abae
+	return 1;
385abae
       if ((READ_TABLE_CASE==sKupcase   && isLower(ch)) ||
385abae
 	  (READ_TABLE_CASE==sKdowncase && isUpper(ch)))
385abae
 	return 1;
385abae
     }
385abae
 
385abae
-  if (pp)
385abae
-    if (potential_number_p(x, PRINTbase) || all_dots(x))
385abae
-      return 1;
385abae
+  if (potential_number_p(x, PRINTbase) || all_dots)
385abae
+    return 1;
385abae
 
385abae
   return !x->s.s_fillp;
385abae
 
385abae
@@ -690,19 +665,21 @@ needs_escape (object x,int pp) {
385abae
 #define convertible_lower(c) ((READ_TABLE_CASE==sKdowncase||READ_TABLE_CASE==sKinvert)&& isLower(c))
385abae
 
385abae
 static void
385abae
-print_symbol_name_body(object x,int pp) {
385abae
+print_symbol_name_body(object x) {
385abae
 
385abae
   int i,j,fc,tc,lw,k,cc;
385abae
 
385abae
   cc=constant_case(x);
385abae
-  k=needs_escape(x,pp);
385abae
+  k=needs_escape(x);
385abae
 
385abae
   if (k)
385abae
     write_ch('|');
385abae
 
385abae
   for (lw=i=0;i<x->s.s_fillp;i++) {
385abae
     j = x->s.s_self[i];
385abae
-    if (PRINTescape && (j == '|' || j == '\\'))
385abae
+    if (PRINTescape &&
385abae
+       (Vreadtable->s.s_dbind->rt.rt_self[j].rte_chattrib==cat_single_escape ||
385abae
+	Vreadtable->s.s_dbind->rt.rt_self[j].rte_chattrib==cat_multiple_escape))
385abae
       write_ch('\\');
385abae
     fc=convertible_upper(j) ? 1 :
385abae
         (convertible_lower(j) ? -1 : 0);
385abae
@@ -711,7 +688,7 @@ print_symbol_name_body(object x,int pp)
385abae
 	  (PRINTcase == sKdowncase ? -1 :
385abae
 	   (PRINTcase == sKcapitalize ? (i==lw ? 1 : -1) : 0))));
385abae
     if (ispunct(j)||isspace(j)) lw=i+1;
385abae
-    j+=(tc*fc && !k ? (tc-fc)>>1 : 0)*('A'-'a');
385abae
+    j+=(tc && fc && !k ? (tc-fc)>>1 : 0)*('A'-'a');
385abae
     write_ch(j);
385abae
 
385abae
   }
385abae
@@ -721,6 +698,42 @@ print_symbol_name_body(object x,int pp)
385abae
 
385abae
 }
385abae
 
385abae
+#define DONE 1
385abae
+#define FOUND -1
385abae
+
385abae
+static int
385abae
+write_sharp_eq(object *vp,bool dot) {
385abae
+
385abae
+  bool defined=vp[1]!=Cnil;
385abae
+
385abae
+  if (dot) {
385abae
+    write_str(" . ");
385abae
+    if (!defined) return FOUND;
385abae
+  }
385abae
+
385abae
+  vp[1]=Ct;
385abae
+  write_ch('#');
385abae
+  write_decimal((vp-PRINTvs_top)/2);
385abae
+  write_ch(defined ? '#' : '=');
385abae
+
385abae
+  return defined ? DONE : FOUND;
385abae
+
385abae
+}
385abae
+
385abae
+static int
385abae
+write_sharp_eqs(object x,bool dot) {
385abae
+
385abae
+  object *vp;
385abae
+
385abae
+  for (vp = PRINTvs_top;  vp < PRINTvs_limit;  vp += 2)
385abae
+    if (x == *vp)
385abae
+      return write_sharp_eq(vp,dot);
385abae
+
385abae
+  return 0;
385abae
+
385abae
+}
385abae
+
385abae
+
385abae
 void
385abae
 write_object(x, level)
385abae
 object x;
385abae
@@ -728,7 +741,6 @@ int level;
385abae
 {
385abae
 	object r, y;
385abae
 	int i, j, k;
385abae
-	object *vp;
385abae
 
385abae
 	cs_check(x);
385abae
 
385abae
@@ -903,29 +915,15 @@ int level;
385abae
 
385abae
 	    if (PRINTescape) {
385abae
 	      if (x->s.s_hpack == Cnil) {
385abae
-		if (PRINTcircle) {
385abae
-		  for (vp = PRINTvs_top;  vp < PRINTvs_limit;  vp += 2)
385abae
-		    if (x == *vp) {
385abae
-		      if (vp[1] != Cnil) {
385abae
-			write_ch('#');
385abae
-			write_decimal((vp-PRINTvs_top)/2+1);
385abae
-			write_ch('#');
385abae
-			return;
385abae
-		      } else {
385abae
-			write_ch('#');
385abae
-			write_decimal((vp-PRINTvs_top)/2+1);
385abae
-			write_ch('=');
385abae
-			vp[1] = Ct;
385abae
-		      }
385abae
-		    }
385abae
-		}
385abae
+		if (PRINTcircle)
385abae
+		  if (write_sharp_eqs(x,FALSE)==DONE) return;
385abae
 		if (PRINTgensym)
385abae
 		  write_str("#:");
385abae
 	      } else if (x->s.s_hpack == keyword_package) {
385abae
 		write_ch(':');
385abae
 	      } else if (PRINTpackage||find_symbol(x,current_package())!=x || !intern_flag) {
385abae
 
385abae
-		print_symbol_name_body(x->s.s_hpack->p.p_name,0);
385abae
+		print_symbol_name_body(x->s.s_hpack->p.p_name);
385abae
 
385abae
 		if (find_symbol(x, x->s.s_hpack) != x)
385abae
 		  error("can't print symbol");
385abae
@@ -939,7 +937,7 @@ int level;
385abae
 	      }
385abae
 
385abae
 	    }
385abae
-	    print_symbol_name_body(x,1);
385abae
+	    print_symbol_name_body(x);
385abae
 	    break;
385abae
 	  }
385abae
 	case t_array:
385abae
@@ -953,23 +951,8 @@ int level;
385abae
 			write_str(">");
385abae
 			break;
385abae
 		}
385abae
-		if (PRINTcircle) {
385abae
-			for (vp = PRINTvs_top;  vp < PRINTvs_limit;  vp += 2)
385abae
-			    if (x == *vp) {
385abae
-				if (vp[1] != Cnil) {
385abae
-				    write_ch('#');
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('#');
385abae
-				    return;
385abae
-				} else {
385abae
-				    write_ch('#');
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('=');
385abae
-				    vp[1] = Ct;
385abae
-				    break;
385abae
-				}
385abae
-			    }
385abae
-		}
385abae
+		if (PRINTcircle)
385abae
+		  if (write_sharp_eqs(x,FALSE)==DONE) return;
385abae
 		if (PRINTlevel >= 0 && level >= PRINTlevel) {
385abae
 			write_ch('#');
385abae
 			break;
385abae
@@ -1044,23 +1027,8 @@ int level;
385abae
 			write_str(">");
385abae
 			break;
385abae
 		}
385abae
-		if (PRINTcircle) {
385abae
-			for (vp = PRINTvs_top;  vp < PRINTvs_limit;  vp += 2)
385abae
-			    if (x == *vp) {
385abae
-				if (vp[1] != Cnil) {
385abae
-				    write_ch('#');
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('#');
385abae
-				    return;
385abae
-				} else {
385abae
-				    write_ch('#');
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('=');
385abae
-				    vp[1] = Ct;
385abae
-				    break;
385abae
-				}
385abae
-			    }
385abae
-		}
385abae
+		if (PRINTcircle)
385abae
+		  if (write_sharp_eqs(x,FALSE)==DONE) return;
385abae
 		if (PRINTlevel >= 0 && level >= PRINTlevel) {
385abae
 			write_ch('#');
385abae
 			break;
385abae
@@ -1130,23 +1098,8 @@ int level;
385abae
 			write_object(x->c.c_cdr, level);
385abae
 			break;
385abae
 		}
385abae
-		if (PRINTcircle) {
385abae
-			for (vp = PRINTvs_top;  vp < PRINTvs_limit;  vp += 2)
385abae
-			    if (x == *vp) {
385abae
-				if (vp[1] != Cnil) {
385abae
-				    write_ch('#');
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('#');
385abae
-				    return;
385abae
-				} else {
385abae
-				    write_ch('#');
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('=');
385abae
-				    vp[1] = Ct;
385abae
-				    break;
385abae
-				}
385abae
-			    }
385abae
-		}
385abae
+		if (PRINTcircle)
385abae
+		  if (write_sharp_eqs(x,FALSE)==DONE) return;
385abae
                 if (PRINTpretty) {
385abae
 		if (x->c.c_car == sLquote &&
385abae
 		    type_of(x->c.c_cdr) == t_cons &&
385abae
@@ -1192,22 +1145,15 @@ int level;
385abae
 				}
385abae
 				break;
385abae
 			}
385abae
-			if (PRINTcircle) {
385abae
-			  for (vp = PRINTvs_top; vp < PRINTvs_limit; vp += 2)
385abae
-			    if (x == *vp) {
385abae
-				if (vp[1] != Cnil) {
385abae
-				    write_str(" . #");
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('#');
385abae
-				    goto RIGHT_PAREN;
385abae
-				} else {
385abae
-				    write_ch(INDENT);
385abae
-				    write_str(". ");
385abae
-				    write_object(x, level);
385abae
-				    goto RIGHT_PAREN;
385abae
-				}
385abae
-			    }
385abae
-			}
385abae
+			if (PRINTcircle)
385abae
+			  switch (write_sharp_eqs(x,TRUE)) {
385abae
+			  case FOUND:
385abae
+			    write_object(x, level);
385abae
+			  case DONE:
385abae
+			    goto RIGHT_PAREN;
385abae
+			  default:
385abae
+			    break;
385abae
+			  }
385abae
 			if (i == 0 && y != OBJNULL && type_of(y) == t_symbol)
385abae
 				write_ch(INDENT1);
385abae
 			else
385abae
@@ -1369,23 +1315,8 @@ int level;
385abae
 		break;
385abae
 
385abae
 	case t_structure:
385abae
-		if (PRINTcircle) {
385abae
-			for (vp = PRINTvs_top;  vp < PRINTvs_limit;  vp += 2)
385abae
-			    if (x == *vp) {
385abae
-				if (vp[1] != Cnil) {
385abae
-				    write_ch('#');
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('#');
385abae
-				    return;
385abae
-				} else {
385abae
-				    write_ch('#');
385abae
-				    write_decimal((vp-PRINTvs_top)/2);
385abae
-				    write_ch('=');
385abae
-				    vp[1] = Ct;
385abae
-				    break;
385abae
-				}
385abae
-			    }
385abae
-		}
385abae
+		if (PRINTcircle)
385abae
+		  if (write_sharp_eqs(x,FALSE)==DONE) return;
385abae
 		if (PRINTlevel >= 0 && level >= PRINTlevel) {
385abae
 			write_ch('#');
385abae
 			break;
385abae
@@ -1468,48 +1399,73 @@ static int dgs;
385abae
 
385abae
 #include "page.h"
385abae
 
385abae
+#define travel_seen(x) x->d.m
385abae
+#define travel_pushed(x) x->d.f
385abae
+#define travel_bits(x) x->md.mf
385abae
+
385abae
 static void
385abae
-travel_push_new(object x) {
385abae
+travel_push(object x) {
385abae
 
385abae
-  object y;
385abae
   int i;
385abae
 
385abae
- BEGIN:
385abae
-  if (NULL_OR_ON_C_STACK(x)) return;
385abae
-  if (is_marked(x)) {
385abae
-    vs_check_push(x);
385abae
-    vs_check_push(Cnil);
385abae
+  if (NULL_OR_ON_C_STACK(x))
385abae
+    return;
385abae
+
385abae
+  if (travel_seen(x)) {
385abae
+
385abae
+    if (!travel_pushed(x)) {
385abae
+      vs_check_push(x);
385abae
+      vs_check_push(Cnil);
385abae
+      travel_pushed(x)=1;
385abae
+    }
385abae
+
385abae
     return;
385abae
+
385abae
   }
385abae
+
385abae
   switch (type_of(x)) {
385abae
+
385abae
   case t_symbol:
385abae
-    if (dgs && x->s.s_hpack==Cnil) {mark(x);}
385abae
+
385abae
+    if (dgs && x->s.s_hpack==Cnil)
385abae
+      travel_seen(x)=1;
385abae
     break;
385abae
+
385abae
   case t_cons:
385abae
-    y=x->c.c_cdr;
385abae
-    mark(x);
385abae
-    travel_push_new(x->c.c_car);
385abae
-    x=y;
385abae
-    goto BEGIN;
385abae
+
385abae
+    {
385abae
+      object y=x->c.c_cdr;
385abae
+      travel_seen(x)=1;
385abae
+      travel_push(x->c.c_car);
385abae
+      travel_push(y);
385abae
+    }
385abae
     break;
385abae
+
385abae
   case t_array:
385abae
-    mark(x);
385abae
+
385abae
+    travel_seen(x)=1;
385abae
     if ((enum aelttype)x->a.a_elttype == aet_object)
385abae
       for (i=0;i<x->a.a_dim;i++)
385abae
-	travel_push_new(x->a.a_self[i]);
385abae
+	travel_push(x->a.a_self[i]);
385abae
     break;
385abae
+
385abae
   case t_vector:
385abae
-    mark(x);
385abae
+
385abae
+    travel_seen(x)=1;
385abae
     if ((enum aelttype)x->v.v_elttype == aet_object)
385abae
       for (i=0;i<x->v.v_fillp;i++)
385abae
-	travel_push_new(x->v.v_self[i]);
385abae
+	travel_push(x->v.v_self[i]);
385abae
     break;
385abae
+
385abae
   case t_structure:
385abae
-    mark(x);
385abae
+
385abae
+    travel_seen(x)=1;
385abae
     for (i = 0;  i < S_DATA(x->str.str_def)->length;  i++)
385abae
-      travel_push_new(structure_ref(x,x->str.str_def,i));
385abae
+      travel_push(structure_ref(x,x->str.str_def,i));
385abae
     break;
385abae
+
385abae
   default:
385abae
+
385abae
     break;
385abae
 
385abae
   }
385abae
@@ -1518,34 +1474,45 @@ travel_push_new(object x) {
385abae
 
385abae
 
385abae
 static void
385abae
-travel_clear_new(object x) {
385abae
+travel_clear(object x) {
385abae
 
385abae
   int i;
385abae
 
385abae
- BEGIN:
385abae
-  if (NULL_OR_ON_C_STACK(x) || !is_marked(x)) return;
385abae
-  unmark(x);
385abae
+  if (NULL_OR_ON_C_STACK(x) || !travel_bits(x))
385abae
+    return;
385abae
+
385abae
+  travel_bits(x)=0;
385abae
+
385abae
   switch (type_of(x)) {
385abae
+
385abae
   case t_cons:
385abae
-    travel_clear_new(x->c.c_car);
385abae
-    x=x->c.c_cdr;
385abae
-    goto BEGIN;
385abae
+
385abae
+    travel_clear(x->c.c_car);
385abae
+    travel_clear(x->c.c_cdr);
385abae
     break;
385abae
+
385abae
   case t_array:
385abae
+
385abae
     if ((enum aelttype)x->a.a_elttype == aet_object)
385abae
       for (i=0;i<x->a.a_dim;i++)
385abae
-	travel_clear_new(x->a.a_self[i]);
385abae
+	travel_clear(x->a.a_self[i]);
385abae
     break;
385abae
+
385abae
   case t_vector:
385abae
+
385abae
     if ((enum aelttype)x->v.v_elttype == aet_object)
385abae
       for (i=0;i<x->v.v_fillp;i++)
385abae
-	travel_clear_new(x->v.v_self[i]);
385abae
+	travel_clear(x->v.v_self[i]);
385abae
     break;
385abae
+
385abae
   case t_structure:
385abae
+
385abae
     for (i = 0;  i < S_DATA(x->str.str_def)->length;  i++)
385abae
-      travel_clear_new(structure_ref(x,x->str.str_def,i));
385abae
+      travel_clear(structure_ref(x,x->str.str_def,i));
385abae
     break;
385abae
+
385abae
   default:
385abae
+
385abae
     break;
385abae
 
385abae
   }
385abae
@@ -1558,74 +1525,14 @@ setupPRINTcircle(object x,int dogensyms)
385abae
 
385abae
   BEGIN_NO_INTERRUPT;
385abae
   dgs=dogensyms;
385abae
-  travel_push_new(x);
385abae
+  travel_push(x);
385abae
   dgs=0;
385abae
   PRINTvs_limit = vs_top;
385abae
-  travel_clear_new(x);
385abae
+  travel_clear(x);
385abae
   END_NO_INTERRUPT;
385abae
 
385abae
 }
385abae
 
385abae
-/* char travel_push_type[32];  */
385abae
-
385abae
-/* static void */
385abae
-/* travel_push_object(x) */
385abae
-/* object x; */
385abae
-/* { */
385abae
-/* 	enum type t; */
385abae
-/* 	int i; */
385abae
-/* 	object *vp; */
385abae
-
385abae
-/* 	cs_check(x); */
385abae
-
385abae
-/* BEGIN: */
385abae
-/* 	t = type_of(x); */
385abae
-/* 	if(travel_push_type[(int)t]==0) return; */
385abae
-/* 	if(t==t_symbol && x->s.s_hpack != Cnil) return; */
385abae
-
385abae
-/* 	for (vp = PRINTvs_top;  vp < vs_top;  vp += 2) */
385abae
-/* 		if (x == *vp) { */
385abae
-/* 			if (vp[1] != Cnil) */
385abae
-/* 				return; */
385abae
-/* 			vp[1] = Ct; */
385abae
-/* 			return; */
385abae
-/* 		} */
385abae
-/* 	vs_check_push(x); */
385abae
-/* 	vs_check_push(Cnil); */
385abae
-/* 	if (t == t_array && (enum aelttype)x->a.a_elttype == aet_object) */
385abae
-/* 		for (i = 0;  i < x->a.a_dim;  i++) */
385abae
-/* 			travel_push_object(x->a.a_self[i]); */
385abae
-/* 	else if (t == t_vector && (enum aelttype)x->v.v_elttype == aet_object) */
385abae
-/* 		for (i = 0;  i < x->v.v_fillp;  i++) */
385abae
-/* 			travel_push_object(x->v.v_self[i]); */
385abae
-/* 	else if (t == t_cons) { */
385abae
-/* 		travel_push_object(x->c.c_car); */
385abae
-/* 		x = x->c.c_cdr; */
385abae
-/* 		goto BEGIN; */
385abae
-/* 	} else if (t == t_structure) { */
385abae
-/* 		for (i = 0;  i < S_DATA(x->str.str_def)->length;  i++) */
385abae
-/* 		  travel_push_object(structure_ref(x,x->str.str_def,i)); */
385abae
-/* 	} */
385abae
-/* } */
385abae
-
385abae
-/* static void */
385abae
-/* setupPRINTcircle(x,dogensyms) */
385abae
-/*      object x; */
385abae
-/*      int dogensyms; */
385abae
-/* {  object *vp,*vq; */
385abae
-/*    travel_push_type[(int)t_symbol]=dogensyms; */
385abae
-/*    travel_push_type[(int)t_array]= */
385abae
-/*        (travel_push_type[(int)t_vector]=PRINTarray); */
385abae
-/*    travel_push_object(x); */
385abae
-/*    for (vp = vq = PRINTvs_top;  vp < vs_top;  vp += 2) */
385abae
-/*      if (vp[1] != Cnil) { */
385abae
-/*        vq[0] = vp[0]; */
385abae
-/*        vq[1] = Cnil; */
385abae
-/*        vq += 2; */
385abae
-/*      } */
385abae
-/*    PRINTvs_limit = vs_top = vq; */
385abae
-/*  } */
385abae
-
385abae
 void
385abae
 setupPRINTdefault(x)
385abae
 object x;
385abae
@@ -1640,8 +1547,8 @@ object x;
385abae
 		vs_push(PRINTstream);
385abae
 		FEwrong_type_argument(sLstream, PRINTstream);
385abae
 	}
385abae
-	PRINTescape = symbol_value(sLAprint_escapeA) != Cnil;
385abae
 	PRINTreadably = symbol_value(sLAprint_readablyA) != Cnil;
385abae
+	PRINTescape = PRINTreadably || symbol_value(sLAprint_escapeA) != Cnil;
385abae
 	PRINTpretty = symbol_value(sLAprint_prettyA) != Cnil;
385abae
 	PRINTcircle = symbol_value(sLAprint_circleA) != Cnil;
385abae
 	y = symbol_value(sLAprint_baseA);