aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorKarl Heuer1994-09-27 04:00:45 +0000
committerKarl Heuer1994-09-27 04:00:45 +0000
commite9ebc175bf5a877fa3fbe41efa5eee0e5fb88546 (patch)
treeef1f7103762a92442ace7cc8b2ddf6dd03d3d65d /src/data.c
parenta7a60ce9134f60413693ac713d8c884a4d6b6a89 (diff)
downloademacs-e9ebc175bf5a877fa3fbe41efa5eee0e5fb88546.tar.gz
emacs-e9ebc175bf5a877fa3fbe41efa5eee0e5fb88546.zip
(wrong_type_argument, Fconsp, Fatom, Flistp, Fnlistp, Fsymbolp, Fvectorp,
Fstringp, Farrayp, Fsequencep, Fbufferp, Fmarkerp, Fsubrp, Fbyte_code_function_p, Fchar_or_string_p, Fintegerp, Finteger_or_marker_p, Fnatnump, Fnumber_or_marker_p, Ffloatp, Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr, Fboundp, Ffboundp, store_symval_forwarding, Fset, default_value, Fdefault_boundp, Fdefault_value, Fset_default, Fmake_variable_buffer_local, Fmake_local_variable, Fkill_local_variable, indirect_function, Faref, Faset, Farray_length, arithcompare, Fzerop, Fnumber_to_string, arith_driver, float_arith_driver, Fmod, Fadd1, Fsub1): Use type test macros.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c156
1 files changed, 74 insertions, 82 deletions
diff --git a/src/data.c b/src/data.c
index 9962b8eb273..c44bd6f0d46 100644
--- a/src/data.c
+++ b/src/data.c
@@ -95,10 +95,10 @@ wrong_type_argument (predicate, value)
95 { 95 {
96 if (!EQ (Vmocklisp_arguments, Qt)) 96 if (!EQ (Vmocklisp_arguments, Qt))
97 { 97 {
98 if (XTYPE (value) == Lisp_String && 98 if (STRINGP (value) &&
99 (EQ (predicate, Qintegerp) || EQ (predicate, Qinteger_or_marker_p))) 99 (EQ (predicate, Qintegerp) || EQ (predicate, Qinteger_or_marker_p)))
100 return Fstring_to_number (value); 100 return Fstring_to_number (value);
101 if (XTYPE (value) == Lisp_Int && EQ (predicate, Qstringp)) 101 if (INTEGERP (value) && EQ (predicate, Qstringp))
102 return Fnumber_to_string (value); 102 return Fnumber_to_string (value);
103 } 103 }
104 value = Fsignal (Qwrong_type_argument, Fcons (predicate, Fcons (value, Qnil))); 104 value = Fsignal (Qwrong_type_argument, Fcons (predicate, Fcons (value, Qnil)));
@@ -180,7 +180,7 @@ DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0, "T if OBJECT is a cons cell.")
180 (obj) 180 (obj)
181 Lisp_Object obj; 181 Lisp_Object obj;
182{ 182{
183 if (XTYPE (obj) == Lisp_Cons) 183 if (CONSP (obj))
184 return Qt; 184 return Qt;
185 return Qnil; 185 return Qnil;
186} 186}
@@ -189,7 +189,7 @@ DEFUN ("atom", Fatom, Satom, 1, 1, 0, "T if OBJECT is not a cons cell. This inc
189 (obj) 189 (obj)
190 Lisp_Object obj; 190 Lisp_Object obj;
191{ 191{
192 if (XTYPE (obj) == Lisp_Cons) 192 if (CONSP (obj))
193 return Qnil; 193 return Qnil;
194 return Qt; 194 return Qt;
195} 195}
@@ -198,7 +198,7 @@ DEFUN ("listp", Flistp, Slistp, 1, 1, 0, "T if OBJECT is a list. This includes
198 (obj) 198 (obj)
199 Lisp_Object obj; 199 Lisp_Object obj;
200{ 200{
201 if (XTYPE (obj) == Lisp_Cons || NILP (obj)) 201 if (CONSP (obj) || NILP (obj))
202 return Qt; 202 return Qt;
203 return Qnil; 203 return Qnil;
204} 204}
@@ -207,7 +207,7 @@ DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0, "T if OBJECT is not a list. Lists i
207 (obj) 207 (obj)
208 Lisp_Object obj; 208 Lisp_Object obj;
209{ 209{
210 if (XTYPE (obj) == Lisp_Cons || NILP (obj)) 210 if (CONSP (obj) || NILP (obj))
211 return Qnil; 211 return Qnil;
212 return Qt; 212 return Qt;
213} 213}
@@ -216,7 +216,7 @@ DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0, "T if OBJECT is a symbol.")
216 (obj) 216 (obj)
217 Lisp_Object obj; 217 Lisp_Object obj;
218{ 218{
219 if (XTYPE (obj) == Lisp_Symbol) 219 if (SYMBOLP (obj))
220 return Qt; 220 return Qt;
221 return Qnil; 221 return Qnil;
222} 222}
@@ -225,7 +225,7 @@ DEFUN ("vectorp", Fvectorp, Svectorp, 1, 1, 0, "T if OBJECT is a vector.")
225 (obj) 225 (obj)
226 Lisp_Object obj; 226 Lisp_Object obj;
227{ 227{
228 if (XTYPE (obj) == Lisp_Vector) 228 if (VECTORP (obj))
229 return Qt; 229 return Qt;
230 return Qnil; 230 return Qnil;
231} 231}
@@ -234,7 +234,7 @@ DEFUN ("stringp", Fstringp, Sstringp, 1, 1, 0, "T if OBJECT is a string.")
234 (obj) 234 (obj)
235 Lisp_Object obj; 235 Lisp_Object obj;
236{ 236{
237 if (XTYPE (obj) == Lisp_String) 237 if (STRINGP (obj))
238 return Qt; 238 return Qt;
239 return Qnil; 239 return Qnil;
240} 240}
@@ -243,7 +243,7 @@ DEFUN ("arrayp", Farrayp, Sarrayp, 1, 1, 0, "T if OBJECT is an array (string or
243 (obj) 243 (obj)
244 Lisp_Object obj; 244 Lisp_Object obj;
245{ 245{
246 if (XTYPE (obj) == Lisp_Vector || XTYPE (obj) == Lisp_String) 246 if (VECTORP (obj) || STRINGP (obj))
247 return Qt; 247 return Qt;
248 return Qnil; 248 return Qnil;
249} 249}
@@ -253,8 +253,7 @@ DEFUN ("sequencep", Fsequencep, Ssequencep, 1, 1, 0,
253 (obj) 253 (obj)
254 register Lisp_Object obj; 254 register Lisp_Object obj;
255{ 255{
256 if (CONSP (obj) || NILP (obj) || 256 if (CONSP (obj) || NILP (obj) || VECTORP (obj) || STRINGP (obj))
257 XTYPE (obj) == Lisp_Vector || XTYPE (obj) == Lisp_String)
258 return Qt; 257 return Qt;
259 return Qnil; 258 return Qnil;
260} 259}
@@ -263,7 +262,7 @@ DEFUN ("bufferp", Fbufferp, Sbufferp, 1, 1, 0, "T if OBJECT is an editor buffer.
263 (obj) 262 (obj)
264 Lisp_Object obj; 263 Lisp_Object obj;
265{ 264{
266 if (XTYPE (obj) == Lisp_Buffer) 265 if (BUFFERP (obj))
267 return Qt; 266 return Qt;
268 return Qnil; 267 return Qnil;
269} 268}
@@ -272,7 +271,7 @@ DEFUN ("markerp", Fmarkerp, Smarkerp, 1, 1, 0, "T if OBJECT is a marker (editor
272 (obj) 271 (obj)
273 Lisp_Object obj; 272 Lisp_Object obj;
274{ 273{
275 if (XTYPE (obj) == Lisp_Marker) 274 if (MARKERP (obj))
276 return Qt; 275 return Qt;
277 return Qnil; 276 return Qnil;
278} 277}
@@ -281,7 +280,7 @@ DEFUN ("subrp", Fsubrp, Ssubrp, 1, 1, 0, "T if OBJECT is a built-in function.")
281 (obj) 280 (obj)
282 Lisp_Object obj; 281 Lisp_Object obj;
283{ 282{
284 if (XTYPE (obj) == Lisp_Subr) 283 if (SUBRP (obj))
285 return Qt; 284 return Qt;
286 return Qnil; 285 return Qnil;
287} 286}
@@ -291,7 +290,7 @@ DEFUN ("byte-code-function-p", Fbyte_code_function_p, Sbyte_code_function_p,
291 (obj) 290 (obj)
292 Lisp_Object obj; 291 Lisp_Object obj;
293{ 292{
294 if (XTYPE (obj) == Lisp_Compiled) 293 if (COMPILEDP (obj))
295 return Qt; 294 return Qt;
296 return Qnil; 295 return Qnil;
297} 296}
@@ -301,7 +300,7 @@ DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_or_string_p, 1, 1, 0,
301 (obj) 300 (obj)
302 register Lisp_Object obj; 301 register Lisp_Object obj;
303{ 302{
304 if (XTYPE (obj) == Lisp_Int || XTYPE (obj) == Lisp_String) 303 if (INTEGERP (obj) || STRINGP (obj))
305 return Qt; 304 return Qt;
306 return Qnil; 305 return Qnil;
307} 306}
@@ -310,7 +309,7 @@ DEFUN ("integerp", Fintegerp, Sintegerp, 1, 1, 0, "T if OBJECT is an integer.")
310 (obj) 309 (obj)
311 Lisp_Object obj; 310 Lisp_Object obj;
312{ 311{
313 if (XTYPE (obj) == Lisp_Int) 312 if (INTEGERP (obj))
314 return Qt; 313 return Qt;
315 return Qnil; 314 return Qnil;
316} 315}
@@ -320,7 +319,7 @@ DEFUN ("integer-or-marker-p", Finteger_or_marker_p, Sinteger_or_marker_p, 1, 1,
320 (obj) 319 (obj)
321 register Lisp_Object obj; 320 register Lisp_Object obj;
322{ 321{
323 if (XTYPE (obj) == Lisp_Marker || XTYPE (obj) == Lisp_Int) 322 if (MARKERP (obj) || INTEGERP (obj))
324 return Qt; 323 return Qt;
325 return Qnil; 324 return Qnil;
326} 325}
@@ -330,7 +329,7 @@ DEFUN ("natnump", Fnatnump, Snatnump, 1, 1, 0,
330 (obj) 329 (obj)
331 Lisp_Object obj; 330 Lisp_Object obj;
332{ 331{
333 if (XTYPE (obj) == Lisp_Int && XINT (obj) >= 0) 332 if (INTEGERP (obj) && XINT (obj) >= 0)
334 return Qt; 333 return Qt;
335 return Qnil; 334 return Qnil;
336} 335}
@@ -352,8 +351,7 @@ DEFUN ("number-or-marker-p", Fnumber_or_marker_p,
352 (obj) 351 (obj)
353 Lisp_Object obj; 352 Lisp_Object obj;
354{ 353{
355 if (NUMBERP (obj) 354 if (NUMBERP (obj) || MARKERP (obj))
356 || XTYPE (obj) == Lisp_Marker)
357 return Qt; 355 return Qt;
358 return Qnil; 356 return Qnil;
359} 357}
@@ -364,7 +362,7 @@ DEFUN ("floatp", Ffloatp, Sfloatp, 1, 1, 0,
364 (obj) 362 (obj)
365 Lisp_Object obj; 363 Lisp_Object obj;
366{ 364{
367 if (XTYPE (obj) == Lisp_Float) 365 if (FLOATP (obj))
368 return Qt; 366 return Qt;
369 return Qnil; 367 return Qnil;
370} 368}
@@ -380,7 +378,7 @@ Error if arg is not nil and not a cons cell. See also `car-safe'.")
380{ 378{
381 while (1) 379 while (1)
382 { 380 {
383 if (XTYPE (list) == Lisp_Cons) 381 if (CONSP (list))
384 return XCONS (list)->car; 382 return XCONS (list)->car;
385 else if (EQ (list, Qnil)) 383 else if (EQ (list, Qnil))
386 return Qnil; 384 return Qnil;
@@ -394,7 +392,7 @@ DEFUN ("car-safe", Fcar_safe, Scar_safe, 1, 1, 0,
394 (object) 392 (object)
395 Lisp_Object object; 393 Lisp_Object object;
396{ 394{
397 if (XTYPE (object) == Lisp_Cons) 395 if (CONSP (object))
398 return XCONS (object)->car; 396 return XCONS (object)->car;
399 else 397 else
400 return Qnil; 398 return Qnil;
@@ -409,7 +407,7 @@ Error if arg is not nil and not a cons cell. See also `cdr-safe'.")
409{ 407{
410 while (1) 408 while (1)
411 { 409 {
412 if (XTYPE (list) == Lisp_Cons) 410 if (CONSP (list))
413 return XCONS (list)->cdr; 411 return XCONS (list)->cdr;
414 else if (EQ (list, Qnil)) 412 else if (EQ (list, Qnil))
415 return Qnil; 413 return Qnil;
@@ -423,7 +421,7 @@ DEFUN ("cdr-safe", Fcdr_safe, Scdr_safe, 1, 1, 0,
423 (object) 421 (object)
424 Lisp_Object object; 422 Lisp_Object object;
425{ 423{
426 if (XTYPE (object) == Lisp_Cons) 424 if (CONSP (object))
427 return XCONS (object)->cdr; 425 return XCONS (object)->cdr;
428 else 426 else
429 return Qnil; 427 return Qnil;
@@ -434,7 +432,7 @@ DEFUN ("setcar", Fsetcar, Ssetcar, 2, 2, 0,
434 (cell, newcar) 432 (cell, newcar)
435 register Lisp_Object cell, newcar; 433 register Lisp_Object cell, newcar;
436{ 434{
437 if (XTYPE (cell) != Lisp_Cons) 435 if (!CONSP (cell))
438 cell = wrong_type_argument (Qconsp, cell); 436 cell = wrong_type_argument (Qconsp, cell);
439 437
440 CHECK_IMPURE (cell); 438 CHECK_IMPURE (cell);
@@ -447,7 +445,7 @@ DEFUN ("setcdr", Fsetcdr, Ssetcdr, 2, 2, 0,
447 (cell, newcdr) 445 (cell, newcdr)
448 register Lisp_Object cell, newcdr; 446 register Lisp_Object cell, newcdr;
449{ 447{
450 if (XTYPE (cell) != Lisp_Cons) 448 if (!CONSP (cell))
451 cell = wrong_type_argument (Qconsp, cell); 449 cell = wrong_type_argument (Qconsp, cell);
452 450
453 CHECK_IMPURE (cell); 451 CHECK_IMPURE (cell);
@@ -477,7 +475,7 @@ DEFUN ("boundp", Fboundp, Sboundp, 1, 1, 0, "T if SYMBOL's value is not void.")
477 valcontents = swap_in_symval_forwarding (sym, valcontents); 475 valcontents = swap_in_symval_forwarding (sym, valcontents);
478 } 476 }
479 477
480 return (XTYPE (valcontents) == Lisp_Void || EQ (valcontents, Qunbound) 478 return (VOIDP (valcontents) || EQ (valcontents, Qunbound)
481 ? Qnil : Qt); 479 ? Qnil : Qt);
482} 480}
483 481
@@ -486,9 +484,9 @@ DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0, "T if SYMBOL's function definitio
486 register Lisp_Object sym; 484 register Lisp_Object sym;
487{ 485{
488 CHECK_SYMBOL (sym, 0); 486 CHECK_SYMBOL (sym, 0);
489 return (XTYPE (XSYMBOL (sym)->function) == Lisp_Void 487 return ((VOIDP (XSYMBOL (sym)->function)
490 || EQ (XSYMBOL (sym)->function, Qunbound)) 488 || EQ (XSYMBOL (sym)->function, Qunbound))
491 ? Qnil : Qt; 489 ? Qnil : Qt);
492} 490}
493 491
494DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0, "Make SYMBOL's value be void.") 492DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0, "Make SYMBOL's value be void.")
@@ -701,8 +699,8 @@ store_symval_forwarding (sym, valcontents, newval)
701 699
702 default: 700 default:
703 valcontents = XSYMBOL (sym)->value; 701 valcontents = XSYMBOL (sym)->value;
704 if (XTYPE (valcontents) == Lisp_Buffer_Local_Value 702 if (BUFFER_LOCAL_VALUEP (valcontents)
705 || XTYPE (valcontents) == Lisp_Some_Buffer_Local_Value) 703 || SOME_BUFFER_LOCAL_VALUEP (valcontents))
706 XCONS (XSYMBOL (sym)->value)->car = newval; 704 XCONS (XSYMBOL (sym)->value)->car = newval;
707 else 705 else
708 XSYMBOL (sym)->value = newval; 706 XSYMBOL (sym)->value = newval;
@@ -819,7 +817,7 @@ DEFUN ("set", Fset, Sset, 2, 2, 0,
819 (sym, newval) 817 (sym, newval)
820 register Lisp_Object sym, newval; 818 register Lisp_Object sym, newval;
821{ 819{
822 int voide = (XTYPE (newval) == Lisp_Void || EQ (newval, Qunbound)); 820 int voide = (VOIDP (newval) || EQ (newval, Qunbound));
823 821
824 register Lisp_Object valcontents, tem1, current_alist_element; 822 register Lisp_Object valcontents, tem1, current_alist_element;
825 823
@@ -828,7 +826,7 @@ DEFUN ("set", Fset, Sset, 2, 2, 0,
828 return Fsignal (Qsetting_constant, Fcons (sym, Qnil)); 826 return Fsignal (Qsetting_constant, Fcons (sym, Qnil));
829 valcontents = XSYMBOL (sym)->value; 827 valcontents = XSYMBOL (sym)->value;
830 828
831 if (XTYPE (valcontents) == Lisp_Buffer_Objfwd) 829 if (BUFFER_OBJFWDP (valcontents))
832 { 830 {
833 register int idx = XUINT (valcontents); 831 register int idx = XUINT (valcontents);
834 register int mask = *(int *)(idx + (char *) &buffer_local_flags); 832 register int mask = *(int *)(idx + (char *) &buffer_local_flags);
@@ -836,8 +834,8 @@ DEFUN ("set", Fset, Sset, 2, 2, 0,
836 current_buffer->local_var_flags |= mask; 834 current_buffer->local_var_flags |= mask;
837 } 835 }
838 836
839 else if (XTYPE (valcontents) == Lisp_Buffer_Local_Value 837 else if (BUFFER_LOCAL_VALUEP (valcontents)
840 || XTYPE (valcontents) == Lisp_Some_Buffer_Local_Value) 838 || SOME_BUFFER_LOCAL_VALUEP (valcontents))
841 { 839 {
842 /* valcontents is actually a pointer to a cons heading something like: 840 /* valcontents is actually a pointer to a cons heading something like:
843 (REALVALUE BUFFER CURRENT-ALIST-ELEMENT . DEFAULT-VALUE). 841 (REALVALUE BUFFER CURRENT-ALIST-ELEMENT . DEFAULT-VALUE).
@@ -876,7 +874,7 @@ DEFUN ("set", Fset, Sset, 2, 2, 0,
876 need to write it out, and find the new CURRENT-ALIST-ELEMENT. */ 874 need to write it out, and find the new CURRENT-ALIST-ELEMENT. */
877 if ((current_buffer 875 if ((current_buffer
878 != XBUFFER (XCONS (XCONS (valcontents)->cdr)->car)) 876 != XBUFFER (XCONS (XCONS (valcontents)->cdr)->car))
879 || (XTYPE (valcontents) == Lisp_Buffer_Local_Value 877 || (BUFFER_LOCAL_VALUEP (valcontents)
880 && EQ (XCONS (current_alist_element)->car, 878 && EQ (XCONS (current_alist_element)->car,
881 current_alist_element))) 879 current_alist_element)))
882 { 880 {
@@ -895,7 +893,7 @@ DEFUN ("set", Fset, Sset, 2, 2, 0,
895 /* If the variable is a Lisp_Some_Buffer_Local_Value, 893 /* If the variable is a Lisp_Some_Buffer_Local_Value,
896 make CURRENT-ALIST-ELEMENT point to itself, 894 make CURRENT-ALIST-ELEMENT point to itself,
897 indicating that we're seeing the default value. */ 895 indicating that we're seeing the default value. */
898 if (XTYPE (valcontents) == Lisp_Some_Buffer_Local_Value) 896 if (SOME_BUFFER_LOCAL_VALUEP (valcontents))
899 tem1 = XCONS (XCONS (valcontents)->cdr)->cdr; 897 tem1 = XCONS (XCONS (valcontents)->cdr)->cdr;
900 898
901 /* If it's a Lisp_Buffer_Local_Value, give this buffer a 899 /* If it's a Lisp_Buffer_Local_Value, give this buffer a
@@ -944,7 +942,7 @@ default_value (sym)
944 942
945 /* For a built-in buffer-local variable, get the default value 943 /* For a built-in buffer-local variable, get the default value
946 rather than letting do_symval_forwarding get the current value. */ 944 rather than letting do_symval_forwarding get the current value. */
947 if (XTYPE (valcontents) == Lisp_Buffer_Objfwd) 945 if (BUFFER_OBJFWDP (valcontents))
948 { 946 {
949 register int idx = XUINT (valcontents); 947 register int idx = XUINT (valcontents);
950 948
@@ -953,8 +951,8 @@ default_value (sym)
953 } 951 }
954 952
955 /* Handle user-created local variables. */ 953 /* Handle user-created local variables. */
956 if (XTYPE (valcontents) == Lisp_Buffer_Local_Value 954 if (BUFFER_LOCAL_VALUEP (valcontents)
957 || XTYPE (valcontents) == Lisp_Some_Buffer_Local_Value) 955 || SOME_BUFFER_LOCAL_VALUEP (valcontents))
958 { 956 {
959 /* If var is set up for a buffer that lacks a local value for it, 957 /* If var is set up for a buffer that lacks a local value for it,
960 the current value is nominally the default value. 958 the current value is nominally the default value.
@@ -983,7 +981,7 @@ for this variable.")
983 register Lisp_Object value; 981 register Lisp_Object value;
984 982
985 value = default_value (sym); 983 value = default_value (sym);
986 return (XTYPE (value) == Lisp_Void || EQ (value, Qunbound) 984 return (VOIDP (value) || EQ (value, Qunbound)
987 ? Qnil : Qt); 985 ? Qnil : Qt);
988} 986}
989 987
@@ -998,7 +996,7 @@ local bindings in certain buffers.")
998 register Lisp_Object value; 996 register Lisp_Object value;
999 997
1000 value = default_value (sym); 998 value = default_value (sym);
1001 if (XTYPE (value) == Lisp_Void || EQ (value, Qunbound)) 999 if (VOIDP (value) || EQ (value, Qunbound))
1002 return Fsignal (Qvoid_variable, Fcons (sym, Qnil)); 1000 return Fsignal (Qvoid_variable, Fcons (sym, Qnil));
1003 return value; 1001 return value;
1004} 1002}
@@ -1018,7 +1016,7 @@ for this variable.")
1018 /* Handle variables like case-fold-search that have special slots 1016 /* Handle variables like case-fold-search that have special slots
1019 in the buffer. Make them work apparently like Lisp_Buffer_Local_Value 1017 in the buffer. Make them work apparently like Lisp_Buffer_Local_Value
1020 variables. */ 1018 variables. */
1021 if (XTYPE (valcontents) == Lisp_Buffer_Objfwd) 1019 if (BUFFER_OBJFWDP (valcontents))
1022 { 1020 {
1023 register int idx = XUINT (valcontents); 1021 register int idx = XUINT (valcontents);
1024 register struct buffer *b; 1022 register struct buffer *b;
@@ -1034,8 +1032,8 @@ for this variable.")
1034 return value; 1032 return value;
1035 } 1033 }
1036 1034
1037 if (XTYPE (valcontents) != Lisp_Buffer_Local_Value && 1035 if (!BUFFER_LOCAL_VALUEP (valcontents)
1038 XTYPE (valcontents) != Lisp_Some_Buffer_Local_Value) 1036 && !SOME_BUFFER_LOCAL_VALUEP (valcontents))
1039 return Fset (sym, value); 1037 return Fset (sym, value);
1040 1038
1041 /* Store new value into the DEFAULT-VALUE slot */ 1039 /* Store new value into the DEFAULT-VALUE slot */
@@ -1110,10 +1108,9 @@ The function `default-value' gets the default value and `set-default' sets it.")
1110 error ("Symbol %s may not be buffer-local", XSYMBOL (sym)->name->data); 1108 error ("Symbol %s may not be buffer-local", XSYMBOL (sym)->name->data);
1111 1109
1112 valcontents = XSYMBOL (sym)->value; 1110 valcontents = XSYMBOL (sym)->value;
1113 if ((XTYPE (valcontents) == Lisp_Buffer_Local_Value) || 1111 if (BUFFER_LOCAL_VALUEP (valcontents) || BUFFER_OBJFWDP (valcontents))
1114 (XTYPE (valcontents) == Lisp_Buffer_Objfwd))
1115 return sym; 1112 return sym;
1116 if (XTYPE (valcontents) == Lisp_Some_Buffer_Local_Value) 1113 if (SOME_BUFFER_LOCAL_VALUEP (valcontents))
1117 { 1114 {
1118 XSETTYPE (XSYMBOL (sym)->value, Lisp_Buffer_Local_Value); 1115 XSETTYPE (XSYMBOL (sym)->value, Lisp_Buffer_Local_Value);
1119 return sym; 1116 return sym;
@@ -1148,8 +1145,7 @@ just as if the variable were set.")
1148 error ("Symbol %s may not be buffer-local", XSYMBOL (sym)->name->data); 1145 error ("Symbol %s may not be buffer-local", XSYMBOL (sym)->name->data);
1149 1146
1150 valcontents = XSYMBOL (sym)->value; 1147 valcontents = XSYMBOL (sym)->value;
1151 if (XTYPE (valcontents) == Lisp_Buffer_Local_Value 1148 if (BUFFER_LOCAL_VALUEP (valcontents) || BUFFER_OBJFWDP (valcontents))
1152 || XTYPE (valcontents) == Lisp_Buffer_Objfwd)
1153 { 1149 {
1154 tem = Fboundp (sym); 1150 tem = Fboundp (sym);
1155 1151
@@ -1159,7 +1155,7 @@ just as if the variable were set.")
1159 return sym; 1155 return sym;
1160 } 1156 }
1161 /* Make sure sym is set up to hold per-buffer values */ 1157 /* Make sure sym is set up to hold per-buffer values */
1162 if (XTYPE (valcontents) != Lisp_Some_Buffer_Local_Value) 1158 if (!SOME_BUFFER_LOCAL_VALUEP (valcontents))
1163 { 1159 {
1164 tem = Fcons (Qnil, do_symval_forwarding (valcontents)); 1160 tem = Fcons (Qnil, do_symval_forwarding (valcontents));
1165 XCONS (tem)->car = tem; 1161 XCONS (tem)->car = tem;
@@ -1191,9 +1187,7 @@ just as if the variable were set.")
1191 variable before we swap in, then that new value will clobber the 1187 variable before we swap in, then that new value will clobber the
1192 default value the next time we swap. */ 1188 default value the next time we swap. */
1193 valcontents = XCONS (XSYMBOL (sym)->value)->car; 1189 valcontents = XCONS (XSYMBOL (sym)->value)->car;
1194 if (XTYPE (valcontents) == Lisp_Intfwd 1190 if (INTFWDP (valcontents) || BOOLFWDP (valcontents) || OBJFWDP (valcontents))
1195 || XTYPE (valcontents) == Lisp_Boolfwd
1196 || XTYPE (valcontents) == Lisp_Objfwd)
1197 swap_in_symval_forwarding (sym, XSYMBOL (sym)->value); 1191 swap_in_symval_forwarding (sym, XSYMBOL (sym)->value);
1198 1192
1199 return sym; 1193 return sym;
@@ -1212,7 +1206,7 @@ From now on the default value will apply in this buffer.")
1212 1206
1213 valcontents = XSYMBOL (sym)->value; 1207 valcontents = XSYMBOL (sym)->value;
1214 1208
1215 if (XTYPE (valcontents) == Lisp_Buffer_Objfwd) 1209 if (BUFFER_OBJFWDP (valcontents))
1216 { 1210 {
1217 register int idx = XUINT (valcontents); 1211 register int idx = XUINT (valcontents);
1218 register int mask = *(int *) (idx + (char *) &buffer_local_flags); 1212 register int mask = *(int *) (idx + (char *) &buffer_local_flags);
@@ -1226,8 +1220,8 @@ From now on the default value will apply in this buffer.")
1226 return sym; 1220 return sym;
1227 } 1221 }
1228 1222
1229 if (XTYPE (valcontents) != Lisp_Buffer_Local_Value && 1223 if (!BUFFER_LOCAL_VALUEP (valcontents)
1230 XTYPE (valcontents) != Lisp_Some_Buffer_Local_Value) 1224 && !SOME_BUFFER_LOCAL_VALUEP (valcontents))
1231 return sym; 1225 return sym;
1232 1226
1233 /* Get rid of this buffer's alist element, if any */ 1227 /* Get rid of this buffer's alist element, if any */
@@ -1267,10 +1261,10 @@ indirect_function (object)
1267 1261
1268 for (;;) 1262 for (;;)
1269 { 1263 {
1270 if (XTYPE (hare) != Lisp_Symbol || EQ (hare, Qunbound)) 1264 if (!SYMBOLP (hare) || EQ (hare, Qunbound))
1271 break; 1265 break;
1272 hare = XSYMBOL (hare)->function; 1266 hare = XSYMBOL (hare)->function;
1273 if (XTYPE (hare) != Lisp_Symbol || EQ (hare, Qunbound)) 1267 if (!SYMBOLP (hare) || EQ (hare, Qunbound))
1274 break; 1268 break;
1275 hare = XSYMBOL (hare)->function; 1269 hare = XSYMBOL (hare)->function;
1276 1270
@@ -1316,12 +1310,11 @@ ARRAY may be a vector or a string, or a byte-code object. INDEX starts at 0.")
1316 1310
1317 CHECK_NUMBER (idx, 1); 1311 CHECK_NUMBER (idx, 1);
1318 idxval = XINT (idx); 1312 idxval = XINT (idx);
1319 if (XTYPE (array) != Lisp_Vector && XTYPE (array) != Lisp_String 1313 if (!VECTORP (array) && !STRINGP (array) && !COMPILEDP (array))
1320 && XTYPE (array) != Lisp_Compiled)
1321 array = wrong_type_argument (Qarrayp, array); 1314 array = wrong_type_argument (Qarrayp, array);
1322 if (idxval < 0 || idxval >= XVECTOR (array)->size) 1315 if (idxval < 0 || idxval >= XVECTOR (array)->size)
1323 args_out_of_range (array, idx); 1316 args_out_of_range (array, idx);
1324 if (XTYPE (array) == Lisp_String) 1317 if (STRINGP (array))
1325 { 1318 {
1326 Lisp_Object val; 1319 Lisp_Object val;
1327 XFASTINT (val) = (unsigned char) XSTRING (array)->data[idxval]; 1320 XFASTINT (val) = (unsigned char) XSTRING (array)->data[idxval];
@@ -1342,13 +1335,13 @@ ARRAY may be a vector or a string. IDX starts at 0.")
1342 1335
1343 CHECK_NUMBER (idx, 1); 1336 CHECK_NUMBER (idx, 1);
1344 idxval = XINT (idx); 1337 idxval = XINT (idx);
1345 if (XTYPE (array) != Lisp_Vector && XTYPE (array) != Lisp_String) 1338 if (!VECTORP (array) && !STRINGP (array))
1346 array = wrong_type_argument (Qarrayp, array); 1339 array = wrong_type_argument (Qarrayp, array);
1347 if (idxval < 0 || idxval >= XVECTOR (array)->size) 1340 if (idxval < 0 || idxval >= XVECTOR (array)->size)
1348 args_out_of_range (array, idx); 1341 args_out_of_range (array, idx);
1349 CHECK_IMPURE (array); 1342 CHECK_IMPURE (array);
1350 1343
1351 if (XTYPE (array) == Lisp_Vector) 1344 if (VECTORP (array))
1352 XVECTOR (array)->contents[idxval] = newelt; 1345 XVECTOR (array)->contents[idxval] = newelt;
1353 else 1346 else
1354 { 1347 {
@@ -1364,8 +1357,7 @@ Farray_length (array)
1364 register Lisp_Object array; 1357 register Lisp_Object array;
1365{ 1358{
1366 register Lisp_Object size; 1359 register Lisp_Object size;
1367 if (XTYPE (array) != Lisp_Vector && XTYPE (array) != Lisp_String 1360 if (!VECTORP (array) && !STRINGP (array) && !COMPILEDP (array))
1368 && XTYPE (array) != Lisp_Compiled)
1369 array = wrong_type_argument (Qarrayp, array); 1361 array = wrong_type_argument (Qarrayp, array);
1370 XFASTINT (size) = XVECTOR (array)->size; 1362 XFASTINT (size) = XVECTOR (array)->size;
1371 return size; 1363 return size;
@@ -1387,11 +1379,11 @@ arithcompare (num1, num2, comparison)
1387 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num1, 0); 1379 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num1, 0);
1388 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num2, 0); 1380 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num2, 0);
1389 1381
1390 if (XTYPE (num1) == Lisp_Float || XTYPE (num2) == Lisp_Float) 1382 if (FLOATP (num1) || FLOATP (num2))
1391 { 1383 {
1392 floatp = 1; 1384 floatp = 1;
1393 f1 = (XTYPE (num1) == Lisp_Float) ? XFLOAT (num1)->data : XINT (num1); 1385 f1 = (FLOATP (num1)) ? XFLOAT (num1)->data : XINT (num1);
1394 f2 = (XTYPE (num2) == Lisp_Float) ? XFLOAT (num2)->data : XINT (num2); 1386 f2 = (FLOATP (num2)) ? XFLOAT (num2)->data : XINT (num2);
1395 } 1387 }
1396#else 1388#else
1397 CHECK_NUMBER_COERCE_MARKER (num1, 0); 1389 CHECK_NUMBER_COERCE_MARKER (num1, 0);
@@ -1492,7 +1484,7 @@ DEFUN ("zerop", Fzerop, Szerop, 1, 1, 0, "T if NUMBER is zero.")
1492#ifdef LISP_FLOAT_TYPE 1484#ifdef LISP_FLOAT_TYPE
1493 CHECK_NUMBER_OR_FLOAT (num, 0); 1485 CHECK_NUMBER_OR_FLOAT (num, 0);
1494 1486
1495 if (XTYPE(num) == Lisp_Float) 1487 if (FLOATP (num))
1496 { 1488 {
1497 if (XFLOAT(num)->data == 0.0) 1489 if (XFLOAT(num)->data == 0.0)
1498 return Qt; 1490 return Qt;
@@ -1550,7 +1542,7 @@ NUM may be an integer or a floating point number.")
1550#else 1542#else
1551 CHECK_NUMBER_OR_FLOAT (num, 0); 1543 CHECK_NUMBER_OR_FLOAT (num, 0);
1552 1544
1553 if (XTYPE(num) == Lisp_Float) 1545 if (FLOATP (num))
1554 { 1546 {
1555 char pigbuf[350]; /* see comments in float_to_string */ 1547 char pigbuf[350]; /* see comments in float_to_string */
1556 1548
@@ -1628,7 +1620,7 @@ arith_driver (code, nargs, args)
1628#ifdef LISP_FLOAT_TYPE 1620#ifdef LISP_FLOAT_TYPE
1629 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (val, argnum); 1621 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (val, argnum);
1630 1622
1631 if (XTYPE (val) == Lisp_Float) /* time to do serious math */ 1623 if (FLOATP (val)) /* time to do serious math */
1632 return (float_arith_driver ((double) accum, argnum, code, 1624 return (float_arith_driver ((double) accum, argnum, code,
1633 nargs, args)); 1625 nargs, args));
1634#else 1626#else
@@ -1691,7 +1683,7 @@ float_arith_driver (accum, argnum, code, nargs, args)
1691 val = args[argnum]; /* using args[argnum] as argument to CHECK_NUMBER_... */ 1683 val = args[argnum]; /* using args[argnum] as argument to CHECK_NUMBER_... */
1692 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (val, argnum); 1684 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (val, argnum);
1693 1685
1694 if (XTYPE (val) == Lisp_Float) 1686 if (FLOATP (val))
1695 { 1687 {
1696 next = XFLOAT (val)->data; 1688 next = XFLOAT (val)->data;
1697 } 1689 }
@@ -1830,12 +1822,12 @@ Both X and Y must be numbers or markers.")
1830 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num1, 0); 1822 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num1, 0);
1831 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num2, 1); 1823 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num2, 1);
1832 1824
1833 if (XTYPE (num1) == Lisp_Float || XTYPE (num2) == Lisp_Float) 1825 if (FLOATP (num1) || FLOATP (num2))
1834 { 1826 {
1835 double f1, f2; 1827 double f1, f2;
1836 1828
1837 f1 = XTYPE (num1) == Lisp_Float ? XFLOAT (num1)->data : XINT (num1); 1829 f1 = FLOATP (num1) ? XFLOAT (num1)->data : XINT (num1);
1838 f2 = XTYPE (num2) == Lisp_Float ? XFLOAT (num2)->data : XINT (num2); 1830 f2 = FLOATP (num2) ? XFLOAT (num2)->data : XINT (num2);
1839 if (f2 == 0) 1831 if (f2 == 0)
1840 Fsignal (Qarith_error, Qnil); 1832 Fsignal (Qarith_error, Qnil);
1841 1833
@@ -1963,7 +1955,7 @@ Markers are converted to integers.")
1963#ifdef LISP_FLOAT_TYPE 1955#ifdef LISP_FLOAT_TYPE
1964 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num, 0); 1956 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num, 0);
1965 1957
1966 if (XTYPE (num) == Lisp_Float) 1958 if (FLOATP (num))
1967 return (make_float (1.0 + XFLOAT (num)->data)); 1959 return (make_float (1.0 + XFLOAT (num)->data));
1968#else 1960#else
1969 CHECK_NUMBER_COERCE_MARKER (num, 0); 1961 CHECK_NUMBER_COERCE_MARKER (num, 0);
@@ -1982,7 +1974,7 @@ Markers are converted to integers.")
1982#ifdef LISP_FLOAT_TYPE 1974#ifdef LISP_FLOAT_TYPE
1983 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num, 0); 1975 CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num, 0);
1984 1976
1985 if (XTYPE (num) == Lisp_Float) 1977 if (FLOATP (num))
1986 return (make_float (-1.0 + XFLOAT (num)->data)); 1978 return (make_float (-1.0 + XFLOAT (num)->data));
1987#else 1979#else
1988 CHECK_NUMBER_COERCE_MARKER (num, 0); 1980 CHECK_NUMBER_COERCE_MARKER (num, 0);