diff options
| author | Stefan Monnier | 2010-12-10 19:13:08 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2010-12-10 19:13:08 -0500 |
| commit | 2c302df3a13236bfbf8ea1b771d13618fcda8d71 (patch) | |
| tree | f26dc9f22861dc37610de319d05255de058c221b /src/lisp.h | |
| parent | 0c747cb143fa227e78f350ac353d703f489209df (diff) | |
| parent | 175069efeb080517afefdd44a06f7a779ea8c25c (diff) | |
| download | emacs-2c302df3a13236bfbf8ea1b771d13618fcda8d71.tar.gz emacs-2c302df3a13236bfbf8ea1b771d13618fcda8d71.zip | |
Merge from trunk
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 67 |
1 files changed, 51 insertions, 16 deletions
diff --git a/src/lisp.h b/src/lisp.h index 89d01ec6872..36653e91e4e 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -267,7 +267,9 @@ union Lisp_Object | |||
| 267 | 267 | ||
| 268 | struct | 268 | struct |
| 269 | { | 269 | { |
| 270 | EMACS_INT val : VALBITS; | 270 | /* Use explict signed, the signedness of a bit-field of type |
| 271 | int is implementation defined. */ | ||
| 272 | signed EMACS_INT val : VALBITS; | ||
| 271 | enum Lisp_Type type : GCTYPEBITS; | 273 | enum Lisp_Type type : GCTYPEBITS; |
| 272 | } s; | 274 | } s; |
| 273 | struct | 275 | struct |
| @@ -290,7 +292,9 @@ union Lisp_Object | |||
| 290 | struct | 292 | struct |
| 291 | { | 293 | { |
| 292 | enum Lisp_Type type : GCTYPEBITS; | 294 | enum Lisp_Type type : GCTYPEBITS; |
| 293 | EMACS_INT val : VALBITS; | 295 | /* Use explict signed, the signedness of a bit-field of type |
| 296 | int is implementation defined. */ | ||
| 297 | signed EMACS_INT val : VALBITS; | ||
| 294 | } s; | 298 | } s; |
| 295 | struct | 299 | struct |
| 296 | { | 300 | { |
| @@ -447,20 +451,8 @@ enum pvec_type | |||
| 447 | #endif | 451 | #endif |
| 448 | 452 | ||
| 449 | #define XHASH(a) ((a).i) | 453 | #define XHASH(a) ((a).i) |
| 450 | |||
| 451 | #define XTYPE(a) ((enum Lisp_Type) (a).u.type) | 454 | #define XTYPE(a) ((enum Lisp_Type) (a).u.type) |
| 452 | |||
| 453 | #ifdef EXPLICIT_SIGN_EXTEND | ||
| 454 | /* Make sure we sign-extend; compilers have been known to fail to do so. | ||
| 455 | We additionally cast to EMACS_INT since it seems that some compilers | ||
| 456 | have been known to fail to do so, even though the bitfield is declared | ||
| 457 | as EMACS_INT already. */ | ||
| 458 | #define XINT(a) ((((EMACS_INT) (a).s.val) << (BITS_PER_EMACS_INT - VALBITS)) \ | ||
| 459 | >> (BITS_PER_EMACS_INT - VALBITS)) | ||
| 460 | #else | ||
| 461 | #define XINT(a) ((a).s.val) | 455 | #define XINT(a) ((a).s.val) |
| 462 | #endif /* EXPLICIT_SIGN_EXTEND */ | ||
| 463 | |||
| 464 | #define XUINT(a) ((a).u.val) | 456 | #define XUINT(a) ((a).u.val) |
| 465 | 457 | ||
| 466 | #ifdef USE_LSB_TAG | 458 | #ifdef USE_LSB_TAG |
| @@ -1589,6 +1581,41 @@ typedef struct { | |||
| 1589 | /* The ID of the mode line highlighting face. */ | 1581 | /* The ID of the mode line highlighting face. */ |
| 1590 | #define GLYPH_MODE_LINE_FACE 1 | 1582 | #define GLYPH_MODE_LINE_FACE 1 |
| 1591 | 1583 | ||
| 1584 | /* Structure to hold mouse highlight data. This is here because other | ||
| 1585 | header files need it for defining struct x_output etc. */ | ||
| 1586 | typedef struct { | ||
| 1587 | /* These variables describe the range of text currently shown in its | ||
| 1588 | mouse-face, together with the window they apply to. As long as | ||
| 1589 | the mouse stays within this range, we need not redraw anything on | ||
| 1590 | its account. Rows and columns are glyph matrix positions in | ||
| 1591 | MOUSE_FACE_WINDOW. */ | ||
| 1592 | int mouse_face_beg_row, mouse_face_beg_col; | ||
| 1593 | int mouse_face_beg_x, mouse_face_beg_y; | ||
| 1594 | int mouse_face_end_row, mouse_face_end_col; | ||
| 1595 | int mouse_face_end_x, mouse_face_end_y; | ||
| 1596 | int mouse_face_past_end; | ||
| 1597 | Lisp_Object mouse_face_window; | ||
| 1598 | int mouse_face_face_id; | ||
| 1599 | Lisp_Object mouse_face_overlay; | ||
| 1600 | |||
| 1601 | /* 1 if a mouse motion event came and we didn't handle it right away because | ||
| 1602 | gc was in progress. */ | ||
| 1603 | int mouse_face_deferred_gc; | ||
| 1604 | |||
| 1605 | /* FRAME and X, Y position of mouse when last checked for | ||
| 1606 | highlighting. X and Y can be negative or out of range for the frame. */ | ||
| 1607 | struct frame *mouse_face_mouse_frame; | ||
| 1608 | int mouse_face_mouse_x, mouse_face_mouse_y; | ||
| 1609 | |||
| 1610 | /* Nonzero means defer mouse-motion highlighting. */ | ||
| 1611 | int mouse_face_defer; | ||
| 1612 | |||
| 1613 | /* Nonzero means that the mouse highlight should not be shown. */ | ||
| 1614 | int mouse_face_hidden; | ||
| 1615 | |||
| 1616 | int mouse_face_image_state; | ||
| 1617 | } Mouse_HLInfo; | ||
| 1618 | |||
| 1592 | /* Data type checking */ | 1619 | /* Data type checking */ |
| 1593 | 1620 | ||
| 1594 | #define NILP(x) EQ (x, Qnil) | 1621 | #define NILP(x) EQ (x, Qnil) |
| @@ -2665,11 +2692,15 @@ extern Lisp_Object Qimage, Qtext, Qboth, Qboth_horiz, Qtext_image_horiz; | |||
| 2665 | extern Lisp_Object Qspace, Qcenter, QCalign_to; | 2692 | extern Lisp_Object Qspace, Qcenter, QCalign_to; |
| 2666 | extern Lisp_Object Qbar, Qhbar, Qbox, Qhollow; | 2693 | extern Lisp_Object Qbar, Qhbar, Qbox, Qhollow; |
| 2667 | extern Lisp_Object Qleft_margin, Qright_margin; | 2694 | extern Lisp_Object Qleft_margin, Qright_margin; |
| 2695 | extern Lisp_Object Qglyphless_char; | ||
| 2668 | extern Lisp_Object Vmessage_log_max; | 2696 | extern Lisp_Object Vmessage_log_max; |
| 2669 | extern Lisp_Object QCdata, QCfile; | 2697 | extern Lisp_Object QCdata, QCfile; |
| 2670 | extern Lisp_Object QCmap; | 2698 | extern Lisp_Object QCmap; |
| 2671 | extern Lisp_Object Qrisky_local_variable; | 2699 | extern Lisp_Object Qrisky_local_variable; |
| 2672 | extern Lisp_Object Vinhibit_redisplay; | 2700 | extern Lisp_Object Vinhibit_redisplay; |
| 2701 | extern struct frame *last_glyphless_glyph_frame; | ||
| 2702 | extern unsigned last_glyphless_glyph_face_id; | ||
| 2703 | extern int last_glyphless_glyph_merged_face_id; | ||
| 2673 | extern int message_enable_multibyte; | 2704 | extern int message_enable_multibyte; |
| 2674 | extern int noninteractive_need_newline; | 2705 | extern int noninteractive_need_newline; |
| 2675 | extern EMACS_INT scroll_margin; | 2706 | extern EMACS_INT scroll_margin; |
| @@ -2727,6 +2758,8 @@ extern void memory_full (void) NO_RETURN; | |||
| 2727 | extern void buffer_memory_full (void) NO_RETURN; | 2758 | extern void buffer_memory_full (void) NO_RETURN; |
| 2728 | extern int survives_gc_p (Lisp_Object); | 2759 | extern int survives_gc_p (Lisp_Object); |
| 2729 | extern void mark_object (Lisp_Object); | 2760 | extern void mark_object (Lisp_Object); |
| 2761 | extern void refill_memory_reserve (void); | ||
| 2762 | extern const char *pending_malloc_warning; | ||
| 2730 | extern Lisp_Object Vpurify_flag; | 2763 | extern Lisp_Object Vpurify_flag; |
| 2731 | extern Lisp_Object Vmemory_full; | 2764 | extern Lisp_Object Vmemory_full; |
| 2732 | extern Lisp_Object *stack_base; | 2765 | extern Lisp_Object *stack_base; |
| @@ -2823,7 +2856,8 @@ extern void syms_of_chartab (void); | |||
| 2823 | /* Defined in print.c */ | 2856 | /* Defined in print.c */ |
| 2824 | extern Lisp_Object Vprin1_to_string_buffer; | 2857 | extern Lisp_Object Vprin1_to_string_buffer; |
| 2825 | extern Lisp_Object Vprint_level, Vprint_length; | 2858 | extern Lisp_Object Vprint_level, Vprint_length; |
| 2826 | extern void debug_print (Lisp_Object); | 2859 | extern void debug_print (Lisp_Object) EXTERNALLY_VISIBLE; |
| 2860 | extern void safe_debug_print (Lisp_Object) EXTERNALLY_VISIBLE; | ||
| 2827 | EXFUN (Fprin1, 2); | 2861 | EXFUN (Fprin1, 2); |
| 2828 | EXFUN (Fprin1_to_string, 2); | 2862 | EXFUN (Fprin1_to_string, 2); |
| 2829 | EXFUN (Fprinc, 2); | 2863 | EXFUN (Fprinc, 2); |
| @@ -3226,6 +3260,8 @@ extern Lisp_Object Qdisabled, QCfilter; | |||
| 3226 | extern Lisp_Object Qabove_handle, Qhandle, Qbelow_handle; | 3260 | extern Lisp_Object Qabove_handle, Qhandle, Qbelow_handle; |
| 3227 | extern Lisp_Object Qup, Qdown, Qbottom, Qend_scroll; | 3261 | extern Lisp_Object Qup, Qdown, Qbottom, Qend_scroll; |
| 3228 | extern Lisp_Object Qtop, Qratio; | 3262 | extern Lisp_Object Qtop, Qratio; |
| 3263 | extern Lisp_Object Vsaved_region_selection; | ||
| 3264 | extern Lisp_Object Vselect_active_regions; | ||
| 3229 | extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level; | 3265 | extern Lisp_Object Vtty_erase_char, Vhelp_form, Vtop_level; |
| 3230 | extern Lisp_Object Vthrow_on_input; | 3266 | extern Lisp_Object Vthrow_on_input; |
| 3231 | extern int input_pending; | 3267 | extern int input_pending; |
| @@ -3595,7 +3631,6 @@ extern void syms_of_xfns (void); | |||
| 3595 | extern void syms_of_xsmfns (void); | 3631 | extern void syms_of_xsmfns (void); |
| 3596 | 3632 | ||
| 3597 | /* Defined in xselect.c */ | 3633 | /* Defined in xselect.c */ |
| 3598 | EXFUN (Fx_send_client_event, 6); | ||
| 3599 | extern void syms_of_xselect (void); | 3634 | extern void syms_of_xselect (void); |
| 3600 | 3635 | ||
| 3601 | /* Defined in xterm.c */ | 3636 | /* Defined in xterm.c */ |