Mercurial > emacs
view src/s/hpux10-20.h @ 107998:531d454c3a99
Implement GUI display of R2L lines, fix TTY display of R2L lines.
xdisp.c [HAVE_WINDOW_SYSTEM]: Add prototype for
append_stretch_glyph.
(set_cursor_from_row) <cursor_x>: Remove unused variable. Fix
off-by-one error in computing x at end of text in the row.
(append_stretch_glyph): In reversed row, prepend the glyph rather
than append it. Set resolved_level and bidi_type of the glyph.
(extend_face_to_end_of_line): If the row is reversed, prepend a
stretch glyph whose width is such that the rightmost glyph will be
drawn at the right margin of the window. Fix off-by-one error on
TTY frames in testing whether a line needs face extension. Fix
face extension at ZV. If this is the last glyph row, use
DEFAULT_FACE_ID, to avoid painting the rest of the window with the
region face.
(set_cursor_from_row, display_line): Use
MATRIX_ROW_CONTINUATION_LINE_P instead of testing value of
row->continuation_lines_width.
(next_element_from_buffer): Don't call bidi_paragraph_init if we
are at ZV. Fixes a crash when reseated to ZV by
try_window_reusing_current_matrix.
(display_and_set_cursor, erase_phys_cursor): Handle negative HPOS,
which happens with R2L glyph rows. Fixes a crash when inserting a
character at end of an R2L line.
(set_cursor_from_row): Don't be fooled by truncated rows: don't
treat them as having zero-width characters. Improve comments.
Don't reverse pos_before and pos_after for reversed glyph rows.
Set cursor.x to negative value when the cursor might be on the
left fringe.
(IT_OVERFLOW_NEWLINE_INTO_FRINGE): For R2L lines, consider the
left fringe, not the right one.
(notice_overwritten_cursor, draw_phys_cursor_glyph)
(erase_phys_cursor): For reversed cursor_row, support cursor on
the left fringe.
fringe.c (update_window_fringes): For R2L rows, swap the bitmaps
of continuation indicators on the fringes.
(draw_fringe_bitmap): For reversed glyph rows, allow cursor on the
left fringe.
w32term.c (w32_draw_window_cursor): For reversed glyph rows,
draw cursor on the left fringe.
xterm.c (x_draw_window_cursor): For reversed glyph rows, draw
cursor on the left fringe.
dispnew.c (update_text_area): Handle reversed desired rows when
the cursor is on the left fringe.
(set_window_cursor_after_update): Limit cursor's hpos by -1 from
below, not by 0, for when the cursor is on the left fringe.
xdisp.c (unproduce_glyphs): New function.
(display_line): Use it when produced glyphs are discarded from R2L
glyph rows.
(append_composite_glyph): In R2L rows, prepend the glyph rather
than appending it.
term.c (append_composite_glyph): In R2L rows, prepend the glyph
rather than append it. Set up the resolved_level and bidi_type
attributes of the appended glyph.
(produce_special_glyphs): Mirror the backslash continuation
character in R2L lines.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Tue, 20 Apr 2010 16:31:28 +0300 |
parents | 702528fcbb6a |
children | 5eae2b195dc6 |
line wrap: on
line source
/* System description file for hpux version 10.20. Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #define RUN_TIME_REMAP /* * Define symbols to identify the version of Unix this is. * Define all the symbols that apply correctly. */ #define USG /* System III, System V, etc */ #define USG5 #define HPUX /* SYSTEM_TYPE should indicate the kind of system you are using. It sets the Lisp variable system-type. */ #define SYSTEM_TYPE "hpux" /* Letter to use in finding device name of first pty, if system supports pty's. 'p' means it is /dev/ptym/ptyp0 */ #define FIRST_PTY_LETTER 'p' /* * Define HAVE_TERMIO if the system provides sysV-style ioctls * for terminal control. */ #define HAVE_TERMIO /* * Define HAVE_PTYS if the system supports pty devices. */ #define HAVE_PTYS /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets. */ #define HAVE_SOCKETS /* Define this symbol if your system has the functions bcopy, etc. * s800 and later versions of s300 (s200) kernels have equivalents * of the BSTRING functions of BSD. If your s200 kernel doesn't have * em comment out this section. */ #define BSTRING /* Define CLASH_DETECTION if you want lock files to be written so that Emacs can tell instantly when you try to modify a file that someone else has modified in his Emacs. */ #define CLASH_DETECTION /* The symbol in the kernel where the load average is found depends on the cpu type, so we let the m- files define LDAV_SYMBOL. */ /* Special hacks needed to make Emacs run on this system. */ /* Use the system provided termcap(3) library */ #define TERMINFO /* In hpux, the symbol SIGIO is defined, but the feature doesn't work in the way Emacs needs it to. */ #define BROKEN_SIGIO /* Some additional system facilities exist. */ #define HAVE_PERROR /* Delete this line for version 6. */ #define UNEXEC unexhp9k800.o /* Include the file bsdtty.h, since this machine has job control. */ #define NEED_BSDTTY /* This is how to get the device name of the tty end of a pty. */ #define PTY_TTY_NAME_SPRINTF \ sprintf (pty_name, "/dev/pty/tty%c%x", c, i); /* This is how to get the device name of the control end of a pty. */ #define PTY_NAME_SPRINTF \ sprintf (pty_name, "/dev/ptym/pty%c%x", c, i); /* This triggers a conditional in xfaces.c. */ #define XOS_NEEDS_TIME_H /* Don't use shared libraries. unexec doesn't handle them. Note GCC automatically passes -a archive to ld, and it has its own conflicting -a. */ #define LD_SWITCH_SYSTEM_TEMACS #ifndef HAVE_LIBXMU /* HP-UX doesn't supply Xmu. */ #define LIBXMU #endif /* Assar Westerlund <assar@sics.se> says this is necessary for HP-UX 10.20, and that it works for HP-UX 0 as well. */ #define NO_EDITRES /* Tested in getloadavg.c. */ #define HAVE_PSTAT_GETDYNAMIC /* Eric Backus <ericb@lsid.hp.com> says, HP-UX 9.x on HP 700 machines has a broken `rint' in some library versions including math library version number A.09.05. You can fix the math library by installing patch number PHSS_4630. But we can fix it more reliably for Emacs like this. */ #undef HAVE_RINT /* We have to go this route, rather than hpux9's approach of renaming the functions via macros. The system's stdlib.h has fully prototyped declarations, which yields a conflicting definition of srand48; it tries to redeclare what was once srandom to be srand48. So we go with HAVE_LRAND48 being defined. */ #undef srandom #undef random #undef HAVE_RANDOM /* AlainF 20-Jul-1996 says this is right. */ #define KERNEL_FILE "/stand/vmunix" #define LIBS_SYSTEM -l:libdld.sl /* Rainer Malzbender <rainer@displaytech.com> says definining HAVE_XRMSETDATABASE allows Emacs to compile on HP-UX 10.20 using GCC. */ #ifndef HAVE_XRMSETDATABASE #define HAVE_XRMSETDATABASE #endif /* Make sure we get select from libc rather than from libcurses because libcurses on HPUX 10.10 has a broken version of select. We used to use -lc -lcurses, but this may be cleaner. */ #define LIBS_TERMCAP -ltermcap /* However, HPUX 10 puts Xaw and Xmu in a strange place (if you install them at all). So search that place. */ #define C_SWITCH_X_SYSTEM -I/usr/include/X11R6 -I/usr/include/X11R5 -I/usr/include/Motif1.2 -I/usr/contrib/X11R6/include -I/usr/contrib/X11R5/include #define LD_SWITCH_X_DEFAULT -L/usr/lib/X11R6 -L/usr/lib/X11R5 -L/usr/lib/Motif1.2 -L/usr/contrib/X11R5/lib /* 2000-11-21: Temporarily disable Unix 98 large file support found by configure. It fails on HPUX 11, at least, because it enables header sections which lose when `static' is defined away, as it is on HP-UX. (You get duplicate symbol errors on linking). */ #undef _FILE_OFFSET_BITS /* otherwise sigunblock wont be defined */ #define POSIX_SIGNALS /* arch-tag: 8d8dcbf1-ca9b-48a1-94be-b750de18a5c6 (do not change this comment) */