annotate src/unexsol.c @ 111107:f3721a6253a8

Fix mouse highlight in bidi-reordered continued lines. xdisp.c (row_containing_pos): Don't return too early when CHARPOS is in a bidi-reordered continued line. Return immediately when the first hit is found in a line that is not continued, or when an exact match for CHARPOS is found. (mouse_face_from_buffer_pos): Rewrite to not assume that START_CHARPOS is always in mouse_face_beg_row. If necessary, swap mouse_face_beg_row and mouse_face_end_row so that the former is always above the latter or identical to it. Continued lines that begin or end outside of the visible region still don't work.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 02 Oct 2010 17:05:20 +0200
parents 68dd71358159
children 55c8c3ca3d48
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47190
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 /* Trivial unexec for Solaris. */
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3 #include <config.h>
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4 #include <stdlib.h>
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 #include <dlfcn.h>
105669
68dd71358159 * alloc.c: Do not define struct catchtag.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 71990
diff changeset
6 #include <setjmp.h>
47190
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 #include "lisp.h"
47441
d671a35d55f3 Include buffer.h, charset.h, coding.h.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47432
diff changeset
9 #include "buffer.h"
d671a35d55f3 Include buffer.h, charset.h, coding.h.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47432
diff changeset
10 #include "charset.h"
d671a35d55f3 Include buffer.h, charset.h, coding.h.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 47432
diff changeset
11 #include "coding.h"
47190
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 int
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 unexec (char *new_name, char *old_name, unsigned int data_start,
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 unsigned int bss_start, unsigned int entry_address)
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 {
47432
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
17 Lisp_Object data;
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
18 Lisp_Object errstring;
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
19
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
20 if (! dldump (0, new_name, RTLD_MEMORY))
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
21 return 0;
47190
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22
47432
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
23 data = Fcons (build_string (new_name), Qnil);
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
24 synchronize_system_messages_locale ();
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
25 errstring = code_convert_string_norecord (build_string (dlerror ()),
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
26 Vlocale_coding_system, 0);
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
27
71990
b7bf941f8049 (unexec): Use xsignal.
Kim F. Storm <storm@cua.dk>
parents: 52401
diff changeset
28 xsignal (Qfile_error,
47432
16b9af83e7d3 Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents: 47190
diff changeset
29 Fcons (build_string ("Cannot unexec"), Fcons (errstring, data)));
47190
85923ab92112 Initial version.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 47472
diff changeset
31
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 47472
diff changeset
32 /* arch-tag: d8ff72b3-8198-4011-8ef5-011b12027f59
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 47472
diff changeset
33 (do not change this comment) */