Mercurial > emacs
annotate src/unexsol.c @ 112375:b7555c0e51fe
Merge from mainline.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Wed, 19 Jan 2011 15:02:04 -0800 |
parents | ef719132ddfa |
children |
rev | line source |
---|---|
47190 | 1 /* Trivial unexec for Solaris. */ |
2 | |
3 #include <config.h> | |
4 #include <dlfcn.h> | |
105669
68dd71358159
* alloc.c: Do not define struct catchtag.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
71990
diff
changeset
|
5 #include <setjmp.h> |
47190 | 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 | |
110729
99084f50aa8e
Remove unused arguments for unexec.
Dan Nicolaescu <dann@ics.uci.edu>
parents:
110683
diff
changeset
|
13 unexec (const char *new_name, const char *old_name) |
47190 | 14 { |
47432
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
15 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
|
16 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
|
17 |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
18 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
|
19 return 0; |
47190 | 20 |
47432
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
21 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
|
22 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
|
23 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
|
24 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
|
25 |
71990 | 26 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
|
27 Fcons (build_string ("Cannot unexec"), Fcons (errstring, data))); |
47190 | 28 } |
52401 | 29 |