]> code.delx.au - gnu-emacs/blobdiff - src/data.c
(Frename_file) [WINDOWSNT]: Remove conditional code.
[gnu-emacs] / src / data.c
index 22c0db360675541c40538b2dcc7aaceef8374c45..23b15d0081f4dbda69cf5f4299b921420f578746 100644 (file)
@@ -15,7 +15,8 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
 
 
 #include <signal.h>
@@ -136,15 +137,6 @@ args_out_of_range_3 (a1, a2, a3)
     Fsignal (Qargs_out_of_range, Fcons (a1, Fcons (a2, Fcons (a3, Qnil))));
 }
 
-Lisp_Object
-make_number (num)
-     int num;
-{
-  register Lisp_Object val;
-  XSETINT (val, num);
-  return val;
-}
-
 /* On some machines, XINT needs a temporary location.
    Here it is, in case it is needed.  */
 
@@ -1361,14 +1353,18 @@ From now on the default value will apply in this buffer.")
     current_buffer->local_var_alist
       = Fdelq (tem, current_buffer->local_var_alist);
 
-  /* Make sure symbol does not think it is set up for this buffer;
-     force it to look once again for this buffer's value */
+  /* If the symbol is set up for the current buffer, recompute its
+     value.  We have to do it now, or else forwarded objects won't
+     work right. */
   {
     Lisp_Object *pvalbuf;
     valcontents = XSYMBOL (variable)->value;
     pvalbuf = &XCONS (XBUFFER_LOCAL_VALUE (valcontents)->cdr)->car;
     if (current_buffer == XBUFFER (*pvalbuf))
-      *pvalbuf = Qnil;
+      {
+       *pvalbuf = Qnil;
+       find_symbol_value (variable);
+      }
   }
 
   return variable;