diff src/fileio.c @ 82357:70180028ad92

(Finsert_file_contents): Yet Another Int/Lisp_Object Mixup.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 13 Aug 2007 04:06:31 +0000
parents b9c61edbe743
children e5a68f18fcb9
line wrap: on
line diff
--- a/src/fileio.c	Mon Aug 13 04:04:39 2007 +0000
+++ b/src/fileio.c	Mon Aug 13 04:06:31 2007 +0000
@@ -4738,7 +4738,7 @@
 	  insval = call3 (Qformat_decode,
 			  Qnil, make_number (oinserted), visit);
 	  CHECK_NUMBER (insval);
-	  if (insval = oinserted)
+	  if (XINT (insval) == oinserted)
 	    SET_PT_BOTH (opoint, opoint_byte);
 	  inserted = XFASTINT (insval);
 	}
@@ -4769,7 +4769,7 @@
 	      if (!NILP (insval))
 		{
 		  CHECK_NUMBER (insval);
-		  if (insval = oinserted)
+		  if (XINT (insval) == oinserted)
 		    SET_PT_BOTH (opoint, opoint_byte);
 		  inserted = XFASTINT (insval);
 		}
@@ -4788,18 +4788,16 @@
 	    {
 	      Lisp_Object tem = XCAR (old_undo);
 	      if (CONSP (tem) && INTEGERP (XCAR (tem)) &&
-		  INTEGERP (XCDR (tem)) && (XCAR (tem)) == lbeg)
+		  INTEGERP (XCDR (tem)) && EQ (XCAR (tem), lbeg))
 		/* In the non-visiting case record only the final insertion. */
 		current_buffer->undo_list =
 		  Fcons (Fcons (lbeg, lend), Fcdr (old_undo));
 	    }
 	}
-      else if (old_undo == Qt)
-	/* If undo_list was Qt before, keep it that way. */
-	current_buffer->undo_list = Qt;
       else
-	/* Otherwise start with an empty undo_list. */
-	current_buffer->undo_list = Qnil;
+	/* If undo_list was Qt before, keep it that way.
+	   Otherwise start with an empty undo_list. */
+	current_buffer->undo_list = EQ (old_undo, Qt) ? Qt : Qnil;
 
       unbind_to (count, Qnil);
     }