diff options
| author | Karl Heuer | 1994-09-27 04:20:23 +0000 |
|---|---|---|
| committer | Karl Heuer | 1994-09-27 04:20:23 +0000 |
| commit | c5af3bb92d08949b67f1af50d17e439e73555834 (patch) | |
| tree | d6a964280e31eca42c924298543d9d6f3ec286e2 /src | |
| parent | cfff016d4c62e864dfc9be4f92bca3edb01d5da2 (diff) | |
| download | emacs-c5af3bb92d08949b67f1af50d17e439e73555834.tar.gz emacs-c5af3bb92d08949b67f1af50d17e439e73555834.zip | |
(BOOLFWDP, INTERNALP, INTFWDP, OBJFWDP, INTERNAL_STREAMP, BUFFER_LOCAL_VALUEP,
SOME_BUFFER_LOCAL_VALUEP, BUFFER_OBJFWDP, VOIDP): New type test macros.
(CHECK_STRING_OR_BUFFER, NUMBERP, CHECK_LIST, CHECK_STRING, CHECK_CONS,
CHECK_SYMBOL, CHECK_VECTOR, CHECK_BUFFER, CHECK_WINDOW, CHECK_LIVE_WINDOW,
CHECK_PROCESS, CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER,
CHECK_NUMBER_COERCE_MARKER, CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT,
CHECK_NUMBER_OR_FLOAT_COERCE_MARKER, CHECK_OVERLAY): Use type test macros.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lisp.h | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/src/lisp.h b/src/lisp.h index 12280830c11..470dd6c211c 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -515,7 +515,7 @@ typedef struct interval *INTERVAL; | |||
| 515 | 515 | ||
| 516 | /* Complain if object is not string or buffer type */ | 516 | /* Complain if object is not string or buffer type */ |
| 517 | #define CHECK_STRING_OR_BUFFER(x, i) \ | 517 | #define CHECK_STRING_OR_BUFFER(x, i) \ |
| 518 | { if (XTYPE ((x)) != Lisp_String && XTYPE ((x)) != Lisp_Buffer) \ | 518 | { if (!STRINGP ((x)) && !BUFFERP ((x))) \ |
| 519 | x = wrong_type_argument (Qbuffer_or_string_p, (x)); } | 519 | x = wrong_type_argument (Qbuffer_or_string_p, (x)); } |
| 520 | 520 | ||
| 521 | /* Macro used to conditionally compile intervals into certain data | 521 | /* Macro used to conditionally compile intervals into certain data |
| @@ -710,9 +710,9 @@ typedef unsigned char UCHAR; | |||
| 710 | #define GC_NILP(x) GC_EQ (x, Qnil) | 710 | #define GC_NILP(x) GC_EQ (x, Qnil) |
| 711 | 711 | ||
| 712 | #ifdef LISP_FLOAT_TYPE | 712 | #ifdef LISP_FLOAT_TYPE |
| 713 | #define NUMBERP(x) (XTYPE (x) == Lisp_Int || XTYPE (x) == Lisp_Float) | 713 | #define NUMBERP(x) (INTEGERP (x) || FLOATP (x)) |
| 714 | #else | 714 | #else |
| 715 | #define NUMBERP(x) (XTYPE (x) == Lisp_Int) | 715 | #define NUMBERP(x) (INTEGERP (x)) |
| 716 | #endif | 716 | #endif |
| 717 | 717 | ||
| 718 | #define INTEGERP(x) (XTYPE ((x)) == Lisp_Int) | 718 | #define INTEGERP(x) (XTYPE ((x)) == Lisp_Int) |
| @@ -734,30 +734,39 @@ typedef unsigned char UCHAR; | |||
| 734 | #define FLOATP(x) (0) | 734 | #define FLOATP(x) (0) |
| 735 | #endif | 735 | #endif |
| 736 | #define OVERLAYP(x) (XTYPE ((x)) == Lisp_Overlay) | 736 | #define OVERLAYP(x) (XTYPE ((x)) == Lisp_Overlay) |
| 737 | #define BOOLFWDP(x) (XTYPE ((x)) == Lisp_Boolfwd) | ||
| 738 | #define INTERNALP(x) (XTYPE ((x)) == Lisp_Internal) | ||
| 739 | #define INTFWDP(x) (XTYPE ((x)) == Lisp_Intfwd) | ||
| 740 | #define OBJFWDP(x) (XTYPE ((x)) == Lisp_Objfwd) | ||
| 741 | #define INTERNAL_STREAMP(x) (XTYPE ((x)) == Lisp_Internal_Stream) | ||
| 742 | #define BUFFER_LOCAL_VALUEP(x) (XTYPE ((x)) == Lisp_Buffer_Local_Value) | ||
| 743 | #define SOME_BUFFER_LOCAL_VALUEP(x) (XTYPE ((x)) == Lisp_Some_Buffer_Local_Value) | ||
| 744 | #define BUFFER_OBJFWDP(x) (XTYPE ((x)) == Lisp_Buffer_Objfwd) | ||
| 745 | #define VOIDP(x) (XTYPE ((x)) == Lisp_Void) | ||
| 737 | 746 | ||
| 738 | #define EQ(x, y) (XFASTINT (x) == XFASTINT (y)) | 747 | #define EQ(x, y) (XFASTINT (x) == XFASTINT (y)) |
| 739 | #define GC_EQ(x, y) (XGCTYPE (x) == XGCTYPE (y) && XPNTR (x) == XPNTR (y)) | 748 | #define GC_EQ(x, y) (XGCTYPE (x) == XGCTYPE (y) && XPNTR (x) == XPNTR (y)) |
| 740 | 749 | ||
| 741 | #define CHECK_LIST(x, i) \ | 750 | #define CHECK_LIST(x, i) \ |
| 742 | do { if ((XTYPE ((x)) != Lisp_Cons) && !NILP (x)) x = wrong_type_argument (Qlistp, (x)); } while (0) | 751 | do { if (!CONSP ((x)) && !NILP (x)) x = wrong_type_argument (Qlistp, (x)); } while (0) |
| 743 | 752 | ||
| 744 | #define CHECK_STRING(x, i) \ | 753 | #define CHECK_STRING(x, i) \ |
| 745 | do { if (XTYPE ((x)) != Lisp_String) x = wrong_type_argument (Qstringp, (x)); } while (0) | 754 | do { if (!STRINGP ((x))) x = wrong_type_argument (Qstringp, (x)); } while (0) |
| 746 | 755 | ||
| 747 | #define CHECK_CONS(x, i) \ | 756 | #define CHECK_CONS(x, i) \ |
| 748 | do { if (XTYPE ((x)) != Lisp_Cons) x = wrong_type_argument (Qconsp, (x)); } while (0) | 757 | do { if (!CONSP ((x))) x = wrong_type_argument (Qconsp, (x)); } while (0) |
| 749 | 758 | ||
| 750 | #define CHECK_SYMBOL(x, i) \ | 759 | #define CHECK_SYMBOL(x, i) \ |
| 751 | do { if (XTYPE ((x)) != Lisp_Symbol) x = wrong_type_argument (Qsymbolp, (x)); } while (0) | 760 | do { if (!SYMBOLP ((x))) x = wrong_type_argument (Qsymbolp, (x)); } while (0) |
| 752 | 761 | ||
| 753 | #define CHECK_VECTOR(x, i) \ | 762 | #define CHECK_VECTOR(x, i) \ |
| 754 | do { if (XTYPE ((x)) != Lisp_Vector) x = wrong_type_argument (Qvectorp, (x)); } while (0) | 763 | do { if (!VECTORP ((x))) x = wrong_type_argument (Qvectorp, (x)); } while (0) |
| 755 | 764 | ||
| 756 | #define CHECK_BUFFER(x, i) \ | 765 | #define CHECK_BUFFER(x, i) \ |
| 757 | do { if (XTYPE ((x)) != Lisp_Buffer) x = wrong_type_argument (Qbufferp, (x)); } while (0) | 766 | do { if (!BUFFERP ((x))) x = wrong_type_argument (Qbufferp, (x)); } while (0) |
| 758 | 767 | ||
| 759 | #define CHECK_WINDOW(x, i) \ | 768 | #define CHECK_WINDOW(x, i) \ |
| 760 | do { if (XTYPE ((x)) != Lisp_Window) x = wrong_type_argument (Qwindowp, (x)); } while (0) | 769 | do { if (!WINDOWP ((x))) x = wrong_type_argument (Qwindowp, (x)); } while (0) |
| 761 | 770 | ||
| 762 | /* This macro rejects windows on the interior of the window tree as | 771 | /* This macro rejects windows on the interior of the window tree as |
| 763 | "dead", which is what we want; this is an argument-checking macro, and | 772 | "dead", which is what we want; this is an argument-checking macro, and |
| @@ -768,27 +777,27 @@ typedef unsigned char UCHAR; | |||
| 768 | 777 | ||
| 769 | #define CHECK_LIVE_WINDOW(x, i) \ | 778 | #define CHECK_LIVE_WINDOW(x, i) \ |
| 770 | do { \ | 779 | do { \ |
| 771 | if (XTYPE ((x)) != Lisp_Window \ | 780 | if (!WINDOWP ((x)) \ |
| 772 | || NILP (XWINDOW ((x))->buffer)) \ | 781 | || NILP (XWINDOW ((x))->buffer)) \ |
| 773 | x = wrong_type_argument (Qwindow_live_p, (x)); \ | 782 | x = wrong_type_argument (Qwindow_live_p, (x)); \ |
| 774 | } while (0) | 783 | } while (0) |
| 775 | 784 | ||
| 776 | #define CHECK_PROCESS(x, i) \ | 785 | #define CHECK_PROCESS(x, i) \ |
| 777 | do { if (XTYPE ((x)) != Lisp_Process) x = wrong_type_argument (Qprocessp, (x)); } while (0) | 786 | do { if (!PROCESSP ((x))) x = wrong_type_argument (Qprocessp, (x)); } while (0) |
| 778 | 787 | ||
| 779 | #define CHECK_NUMBER(x, i) \ | 788 | #define CHECK_NUMBER(x, i) \ |
| 780 | do { if (XTYPE ((x)) != Lisp_Int) x = wrong_type_argument (Qintegerp, (x)); } while (0) | 789 | do { if (!INTEGERP ((x))) x = wrong_type_argument (Qintegerp, (x)); } while (0) |
| 781 | 790 | ||
| 782 | #define CHECK_NATNUM(x, i) \ | 791 | #define CHECK_NATNUM(x, i) \ |
| 783 | do { if (XTYPE ((x)) != Lisp_Int || XINT ((x)) < 0) \ | 792 | do { if (!INTEGERP ((x)) || XINT ((x)) < 0) \ |
| 784 | x = wrong_type_argument (Qwholenump, (x)); } while (0) | 793 | x = wrong_type_argument (Qwholenump, (x)); } while (0) |
| 785 | 794 | ||
| 786 | #define CHECK_MARKER(x, i) \ | 795 | #define CHECK_MARKER(x, i) \ |
| 787 | do { if (XTYPE ((x)) != Lisp_Marker) x = wrong_type_argument (Qmarkerp, (x)); } while (0) | 796 | do { if (!MARKERP ((x))) x = wrong_type_argument (Qmarkerp, (x)); } while (0) |
| 788 | 797 | ||
| 789 | #define CHECK_NUMBER_COERCE_MARKER(x, i) \ | 798 | #define CHECK_NUMBER_COERCE_MARKER(x, i) \ |
| 790 | do { if (XTYPE ((x)) == Lisp_Marker) XFASTINT (x) = marker_position (x); \ | 799 | do { if (MARKERP ((x))) XFASTINT (x) = marker_position (x); \ |
| 791 | else if (XTYPE ((x)) != Lisp_Int) x = wrong_type_argument (Qinteger_or_marker_p, (x)); } while (0) | 800 | else if (!INTEGERP ((x))) x = wrong_type_argument (Qinteger_or_marker_p, (x)); } while (0) |
| 792 | 801 | ||
| 793 | #ifdef LISP_FLOAT_TYPE | 802 | #ifdef LISP_FLOAT_TYPE |
| 794 | 803 | ||
| @@ -799,16 +808,16 @@ typedef unsigned char UCHAR; | |||
| 799 | #define XFLOATINT(n) extract_float((n)) | 808 | #define XFLOATINT(n) extract_float((n)) |
| 800 | 809 | ||
| 801 | #define CHECK_FLOAT(x, i) \ | 810 | #define CHECK_FLOAT(x, i) \ |
| 802 | do { if (XTYPE (x) != Lisp_Float) \ | 811 | do { if (!FLOATP (x)) \ |
| 803 | x = wrong_type_argument (Qfloatp, (x)); } while (0) | 812 | x = wrong_type_argument (Qfloatp, (x)); } while (0) |
| 804 | 813 | ||
| 805 | #define CHECK_NUMBER_OR_FLOAT(x, i) \ | 814 | #define CHECK_NUMBER_OR_FLOAT(x, i) \ |
| 806 | do { if (XTYPE (x) != Lisp_Float && XTYPE (x) != Lisp_Int) \ | 815 | do { if (!FLOATP (x) && !INTEGERP (x)) \ |
| 807 | x = wrong_type_argument (Qnumberp, (x)); } while (0) | 816 | x = wrong_type_argument (Qnumberp, (x)); } while (0) |
| 808 | 817 | ||
| 809 | #define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(x, i) \ | 818 | #define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(x, i) \ |
| 810 | do { if (XTYPE (x) == Lisp_Marker) XFASTINT (x) = marker_position (x); \ | 819 | do { if (MARKERP (x)) XFASTINT (x) = marker_position (x); \ |
| 811 | else if (XTYPE (x) != Lisp_Int && XTYPE (x) != Lisp_Float) \ | 820 | else if (!INTEGERP (x) && !FLOATP (x)) \ |
| 812 | x = wrong_type_argument (Qnumber_or_marker_p, (x)); } while (0) | 821 | x = wrong_type_argument (Qnumber_or_marker_p, (x)); } while (0) |
| 813 | 822 | ||
| 814 | #else /* Not LISP_FLOAT_TYPE */ | 823 | #else /* Not LISP_FLOAT_TYPE */ |
| @@ -821,7 +830,7 @@ typedef unsigned char UCHAR; | |||
| 821 | #endif /* LISP_FLOAT_TYPE */ | 830 | #endif /* LISP_FLOAT_TYPE */ |
| 822 | 831 | ||
| 823 | #define CHECK_OVERLAY(x, i) \ | 832 | #define CHECK_OVERLAY(x, i) \ |
| 824 | do { if (XTYPE ((x)) != Lisp_Overlay) x = wrong_type_argument (Qoverlayp, (x));} while (0) | 833 | do { if (!OVERLAYP ((x))) x = wrong_type_argument (Qoverlayp, (x));} while (0) |
| 825 | 834 | ||
| 826 | /* Cast pointers to this type to compare them. Some machines want int. */ | 835 | /* Cast pointers to this type to compare them. Some machines want int. */ |
| 827 | #ifndef PNTR_COMPARISON_TYPE | 836 | #ifndef PNTR_COMPARISON_TYPE |