Fix cursor motion at end of line that ends in a composed character.
[bpt/emacs.git] / src / s / hpux10-20.h
CommitLineData
f2a77c3a
DN
1/* System description file for hpux version 10.20.
2 Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
114f9c96 3 2008, 2009, 2010 Free Software Foundation, Inc.
427d4799 4
f2a77c3a
DN
5This file is part of GNU Emacs.
6
7GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
19
20
21#define RUN_TIME_REMAP
22
23/*
24 * Define symbols to identify the version of Unix this is.
25 * Define all the symbols that apply correctly.
26 */
27
28#define USG /* System III, System V, etc */
29
30#define USG5
31
32#define HPUX
33
34/* SYSTEM_TYPE should indicate the kind of system you are using.
35 It sets the Lisp variable system-type. */
36
37#define SYSTEM_TYPE "hpux"
38
f2a77c3a
DN
39/* Letter to use in finding device name of first pty,
40 if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */
41
42#define FIRST_PTY_LETTER 'p'
43
44/*
45 * Define HAVE_TERMIO if the system provides sysV-style ioctls
46 * for terminal control.
47 */
48
49#define HAVE_TERMIO
50
51/*
52 * Define HAVE_PTYS if the system supports pty devices.
53 */
54
55#define HAVE_PTYS
56
57/* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */
58
59#define HAVE_SOCKETS
60
61/* Define this symbol if your system has the functions bcopy, etc.
62 * s800 and later versions of s300 (s200) kernels have equivalents
63 * of the BSTRING functions of BSD. If your s200 kernel doesn't have
64 * em comment out this section.
65 */
66
67#define BSTRING
68
f2a77c3a
DN
69/* Define CLASH_DETECTION if you want lock files to be written
70 so that Emacs can tell instantly when you try to modify
71 a file that someone else has modified in his Emacs. */
72
73#define CLASH_DETECTION
74
75/* The symbol in the kernel where the load average is found
76 depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */
77
78/* Special hacks needed to make Emacs run on this system. */
79
f2a77c3a
DN
80/* Use the system provided termcap(3) library */
81#define TERMINFO
82
83/* In hpux, the symbol SIGIO is defined, but the feature
84 doesn't work in the way Emacs needs it to. */
85
86#define BROKEN_SIGIO
87
f2a77c3a
DN
88/* Some additional system facilities exist. */
89
90#define HAVE_PERROR /* Delete this line for version 6. */
91
5e5a3b92
DN
92#define UNEXEC unexhp9k800.o
93
94/* Include the file bsdtty.h, since this machine has job control. */
95#define NEED_BSDTTY
96
f2a77c3a
DN
97/* This is how to get the device name of the tty end of a pty. */
98#define PTY_TTY_NAME_SPRINTF \
99 sprintf (pty_name, "/dev/pty/tty%c%x", c, i);
100
101/* This is how to get the device name of the control end of a pty. */
102#define PTY_NAME_SPRINTF \
103 sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);
104
105/* This triggers a conditional in xfaces.c. */
106#define XOS_NEEDS_TIME_H
107
f2a77c3a
DN
108#ifndef HAVE_LIBXMU
109/* HP-UX doesn't supply Xmu. */
110#define LIBXMU
111
112#endif
113
114/* Assar Westerlund <assar@sics.se> says this is necessary for
115 HP-UX 10.20, and that it works for HP-UX 0 as well. */
116#define NO_EDITRES
117
118/* Tested in getloadavg.c. */
119#define HAVE_PSTAT_GETDYNAMIC
120
121/* Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines
122 has a broken `rint' in some library versions including math library
123 version number A.09.05.
124
125 You can fix the math library by installing patch number PHSS_4630.
126 But we can fix it more reliably for Emacs like this. */
127#undef HAVE_RINT
128
129/* We have to go this route, rather than hpux9's approach of renaming the
130 functions via macros. The system's stdlib.h has fully prototyped
131 declarations, which yields a conflicting definition of srand48; it
132 tries to redeclare what was once srandom to be srand48. So we go
133 with HAVE_LRAND48 being defined. */
134#undef srandom
135#undef random
136#undef HAVE_RANDOM
137
f2a77c3a
DN
138/* AlainF 20-Jul-1996 says this is right. */
139#define KERNEL_FILE "/stand/vmunix"
140
f2a77c3a 141#define LIBS_SYSTEM -l:libdld.sl
f2a77c3a
DN
142
143/* Rainer Malzbender <rainer@displaytech.com> says definining
144 HAVE_XRMSETDATABASE allows Emacs to compile on HP-UX 10.20
145 using GCC. */
146
147#ifndef HAVE_XRMSETDATABASE
148#define HAVE_XRMSETDATABASE
149#endif
150
151/* Make sure we get select from libc rather than from libcurses
152 because libcurses on HPUX 10.10 has a broken version of select.
153 We used to use -lc -lcurses, but this may be cleaner. */
154#define LIBS_TERMCAP -ltermcap
155
f2a77c3a
DN
156/* 2000-11-21: Temporarily disable Unix 98 large file support found by
157 configure. It fails on HPUX 11, at least, because it enables
158 header sections which lose when `static' is defined away, as it is
159 on HP-UX. (You get duplicate symbol errors on linking). */
160
161#undef _FILE_OFFSET_BITS
427d4799
JB
162
163/* otherwise sigunblock wont be defined */
164#define POSIX_SIGNALS
165
56bae7c7
DN
166/* Define NO_REMAP if memory segmentation makes it not work well
167 to change the boundary between the text section and data section
168 when Emacs is dumped. If you define this, the preloaded Lisp
169 code will not be sharable; but that's better than failing completely. */
170
171#define NO_REMAP
172
ed710380
DN
173#define START_FILES pre-crt0.o /lib/crt0.o
174
56bae7c7
DN
175/* Define VIRT_ADDR_VARIES if the virtual addresses of
176 pure and impure space as loaded can vary, and even their
177 relative order cannot be relied on.
178
179 Otherwise Emacs assumes that text space precedes data space,
180 numerically. */
181
182#define VIRT_ADDR_VARIES
183\f
184/* the data segment on this machine always starts at address 0x40000000. */
185
186#define DATA_SEG_BITS 0x40000000
187
188#define DATA_START 0x40000000
189#define TEXT_START 0x00000000
190
191/* Data type of load average, as read out of kmem. */
192
193#define LOAD_AVE_TYPE double
194
195/* Convert that into an integer that is 100 for a load average of 1.0 */
196
197#define LOAD_AVE_CVT(x) ((int) (x * 100.0))
198
199/* The symbol in the kernel where the load average is found
200 is named _avenrun. At this time there are two major flavors
201 of hp-ux (there is the s800 and s300 (s200) flavors). The
202 differences are thusly moved to the corresponding machine description file.
203*/
204
205/* no underscore please */
206#define LDAV_SYMBOL "avenrun"
207
208/* On USG systems these have different names. */
209
210#define index strchr
211#define rindex strrchr
212
ab5796a9
MB
213/* arch-tag: 8d8dcbf1-ca9b-48a1-94be-b750de18a5c6
214 (do not change this comment) */