Mercurial > emacs
annotate src/unexsol.c @ 97747:0d66ae50dc4e
(report_file_error): Fix handling of multibyte error string.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 27 Aug 2008 01:11:26 +0000 |
parents | b7bf941f8049 |
children | 8a8e69664178 68dd71358159 |
rev | line source |
---|---|
47190 | 1 /* Trivial unexec for Solaris. */ |
2 | |
3 #include <config.h> | |
4 #include <stdlib.h> | |
5 #include <dlfcn.h> | |
6 | |
7 #include "lisp.h" | |
47441
d671a35d55f3
Include buffer.h, charset.h, coding.h.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47432
diff
changeset
|
8 #include "buffer.h" |
d671a35d55f3
Include buffer.h, charset.h, coding.h.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47432
diff
changeset
|
9 #include "charset.h" |
d671a35d55f3
Include buffer.h, charset.h, coding.h.
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47432
diff
changeset
|
10 #include "coding.h" |
47190 | 11 |
12 int | |
13 unexec (char *new_name, char *old_name, unsigned int data_start, | |
14 unsigned int bss_start, unsigned int entry_address) | |
15 { | |
47432
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
16 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
|
17 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
|
18 |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
19 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
|
20 return 0; |
47190 | 21 |
47432
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
22 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
|
23 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
|
24 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
|
25 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
|
26 |
71990 | 27 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
|
28 Fcons (build_string ("Cannot unexec"), Fcons (errstring, data))); |
47190 | 29 } |
52401 | 30 |
31 /* arch-tag: d8ff72b3-8198-4011-8ef5-011b12027f59 | |
32 (do not change this comment) */ |