comparison src/unexsol.c @ 47432:16b9af83e7d3

Don't use report_file_error; do it by hand using dlerror.
author Richard M. Stallman <rms@gnu.org>
date Thu, 12 Sep 2002 03:28:59 +0000
parents 85923ab92112
children d671a35d55f3
comparison
equal deleted inserted replaced
47431:8871e67384e4 47432:16b9af83e7d3
8 8
9 int 9 int
10 unexec (char *new_name, char *old_name, unsigned int data_start, 10 unexec (char *new_name, char *old_name, unsigned int data_start,
11 unsigned int bss_start, unsigned int entry_address) 11 unsigned int bss_start, unsigned int entry_address)
12 { 12 {
13 if (dldump (0, new_name, RTLD_MEMORY)) 13 Lisp_Object data;
14 report_file_error ("Cannot unexec", Fcons (build_string (new_name), Qnil)); 14 Lisp_Object errstring;
15 15
16 return 0; 16 if (! dldump (0, new_name, RTLD_MEMORY))
17 return 0;
18
19 data = Fcons (build_string (new_name), Qnil);
20 synchronize_system_messages_locale ();
21 errstring = code_convert_string_norecord (build_string (dlerror ()),
22 Vlocale_coding_system, 0);
23
24 /* System error messages are capitalized. Downcase the initial
25 unless it is followed by a slash. */
26 if (SREF (errstring, 1) != '/')
27 SSET (errstring, 0, DOWNCASE (SREF (errstring, 0)));
28
29 Fsignal (Qfile_error,
30 Fcons (build_string ("Cannot unexec"), Fcons (errstring, data)));
17 } 31 }