annotate src/m/ibmrt.h @ 1785:19755499df90

* window.c (window_internal_width): New function, which accounts for scrollbars if present. * lisp.h (window_internal_height, window_internal_width): Add extern declarations for these. * dispnew.c (direct_output_for_insert, direct_output_forward_char, buffer_posn_from_coords): Use window_internal_width instead of writing out its definition. * indent.c (compute_motion): Doc fix; mention scrollbars and window_internal_width. (pos_tab_offset, Fvertical_motion): Use window_internal_width instead of writing it out. * window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left, Fscroll_right): Same. * xdisp.c (redisplay, try_window, try_window_id, display_text_line): Same. * xdisp.c (display_string): Add new variable `f', to be W's frame. Use it to set desired_glyphs, and to get the frame's width to decide whether or not to draw vertical bars. * xdisp.c (display_text_line): If we're using vertical scrollbars, don't draw the vertical bars separating side-by-side windows. (display_string): Same thing. Draw spaces to fill in the part of the mode line that is under the scrollbar in partial-width windows. * xdisp.c (display_text_line): Use the usable internal width of the window, as calculated above, as the limit on the length of the overlay arrow's image, rather than using the window's width field, less one. * xdisp.c (redisplay): Call condemn_scrollbars_hook and judge_scrollbars_hook whenever they are set, not just when the frame has vertical scrollbars. * termhooks.h (mouse_position_hook): Doc fix. (set_vertical_scrollbar_hook): This doesn't return anything any more, and doesn't take a struct scrollbar * argument any more. (condemn_scrollbars_hook, redeem_scrollbar_hook, judge_scrollbars_hook): Doc fixes. * term.c (mouse_position_hook): Doc fix. (set_vertical_scrollbar_hook): This doesn't return anything any more. Doc fixes. * keyboard.c (kbd_buffer_get_event): Receive the scrollbar's window from *mouse_position_hook and pass it to make_lispy_movement, instead of working with a pointer to a struct scrollbar. (make_lispy_event): We don't need a window_from_scrollbar function anymore; we are given the window directly in *EVENT. Unify the code which generates text-area mouse clicks and scrollbar clicks; use the same code to distinguish clicks from drags on the scrollbar as in the text area. Distinguish clicks from drags by storing a copy of the lispy position list returned as part of the event. (button_down_location): Make this a lisp vector, rather than an array of random structures. (struct mouse_position): Remove this; it's been replaced by a lisp list. (make_lispy_movement): Accept the scrollbar's window as a parameter, rather than the scrollbar itself. If FRAME is zero, assume that the other arguments are garbage. (syms_of_keyboard): No need to staticpro each window of button_down_location now; just initialize and staticpro it. * window.c (window_from_scrollbar): Function deleted; no longer needed. * xdisp.c (redisplay_window): Just pass the window to set_vertical_scrollbar hook; don't pass the scrollbar object too. * xterm.c (XTmouse_position): Don't return a pointer to the scrollbar for scrollbar motion; instead, return the scrollbar's window. * xdisp.c (echo_area_display): Move the assignment of f and the check for visibility out of the "#ifdef MULTI_FRAME" clause; they should work under any circumstances. * xdisp.c (redisplay_window): If we're not going to redisplay this window because it's a minibuffer whose contents have already been updated, go ahead and jump to the scrollbar refreshing code anyway; they still need to be updated. Initialize opoint, so it's known to be valid when we jump. Calculate the scrollbar settings properly for minibuffers, no matter what they are displaying at the time. * xdisp.c (redisplay_windows): Don't restore the current buffer and its point before refreshing the scrollbars; we need the buffer accurate.
author Jim Blandy <jimb@redhat.com>
date Thu, 14 Jan 1993 15:18:53 +0000
parents 1ffd52c765c7
children dc032025eb62
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
446
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* RTPC machine dependent defines
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2 Copyright (C) 1986 Free Software Foundation, Inc.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 the Free Software Foundation; either version 1, or (at your option)
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21 /* The following line tells the configuration script what sort of
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 operating system this machine is likely to run.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 USUAL-OPSYS="bsd4-2" */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25 /* The following three symbols give information on
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26 the size of various data types. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 #define SHORTBITS 16 /* Number of bits in a short */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 #define INTBITS 32 /* Number of bits in an int */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 #define LONGBITS 32 /* Number of bits in a long */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 /* Define BIG_ENDIAN iff lowest-numbered byte in a word
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 is the most significant byte. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 #define BIG_ENDIAN
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 * group of arguments and treat it as an array of the arguments. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 #define NO_ARG_ARRAY
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 /* Define WORD_MACHINE if addresses and such have
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 * to be corrected before they can be used as byte counts. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 #define WORD_MACHINE
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 /* Now define a symbol for the cpu type, if your compiler
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 does not define it automatically. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 #define ibmrt
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 #define romp /* unfortunately old include files are hanging around. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 /* Use type int rather than a union, to represent Lisp_Object */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 /* This is desirable for most machines. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 #define NO_UNION_TYPE
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 the 24-bit bit field into an int. In other words, if bit fields
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 are always unsigned.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 If you use NO_UNION_TYPE, this flag does not matter. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 #define EXPLICIT_SIGN_EXTEND
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 /* Data type of load average, as read out of kmem. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 #define LOAD_AVE_TYPE double /* For AIS (sysV) */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 /* Convert that into an integer that is 100 for a load average of 1.0 */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0)
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 /* Define CANNOT_DUMP on machines where unexec does not work.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77 Then the function dump-emacs will not be defined
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 and temacs will do (load "loadup") automatically unless told otherwise. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80 /* #define CANNOT_DUMP */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 /* Define VIRT_ADDR_VARIES if the virtual addresses of
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83 pure and impure space as loaded can vary, and even their
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 relative order cannot be relied on.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 Otherwise Emacs assumes that text space precedes data space,
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 numerically. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89 #undef VIRT_ADDR_VARIES
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91 /* Define C_ALLOCA if this machine does not support a true alloca
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
92 and the one written in C should be used instead.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93 Define HAVE_ALLOCA to say that the system provides a properly
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
94 working alloca function and it should be used.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
95 Define neither one if an assembler-language alloca
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96 in the file alloca.s should be used. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 #define HAVE_ALLOCA
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 /* The data segment in this machine starts at a fixed address.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 An address of data cannot be stored correctly in a Lisp object;
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102 we always lose the high bits. We must tell XPNTR to add them back. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
104 #define DATA_SEG_BITS 0x10000000
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
105 #define DATA_START 0x10000000
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
107 /* The text segment always starts at a fixed address.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
108 This way we don't need to have a label _start defined. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109 #define TEXT_START 0
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
110
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
111 #define VALBITS 26
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
112 #define GCTYPEBITS 5
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
113
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
114 /* Taking a pointer to a char casting it as int pointer */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115 /* and then taking the int which the int pointer points to */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
116 /* is practically guaranteed to give erroneous results */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118 #define NEED_ERRNO
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
119
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
120 #define SKTPAIR
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
121
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
122 /* BSD has BSTRING. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124 #define BSTRING
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
125
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
126 /* Special switches to give the C compiler. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
127
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128 #define C_SWITCH_MACHINE -Dalloca=_Alloca
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
129
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
130 /* Don't attempt to relabel some of the data as text when dumping.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
131 It does not work because their virtual addresses are not consecutive.
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
132 This enables us to use the standard crt0.o. */
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
133
76b7a95526d3 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
134 #define NO_REMAP