diff options
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/process.c | 19 |
2 files changed, 19 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 87784746b9c..373341d39ae 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2009-06-15 Kenichi Handa <handa@m17n.org> + + * process.c (status_message): Fix previous change. Be sure to + decode a localized string. + 2009-06-15 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> * xterm.c (x_delete_terminal): Put previous change in #if 0 and diff --git a/src/process.c b/src/process.c index 2471ee187bf..08030c944df 100644 --- a/src/process.c +++ b/src/process.c @@ -464,15 +464,24 @@ status_message (p) if (EQ (symbol, Qsignal) || EQ (symbol, Qstop)) { char *signame; - int c; synchronize_system_messages_locale (); signame = strsignal (code); if (signame == 0) - signame = "unknown"; - string = build_string (signame); + string = build_string ("unknown"); + else + { + int c1, c2; + + string = make_unibyte_string (signame, strlen (signame)); + if (! NILP (Vlocale_coding_system)) + string = (code_convert_string_norecord + (string, Vlocale_coding_system, 0)); + c1 = STRING_CHAR ((char *) SDATA (string), 0); + c2 = DOWNCASE (c1); + if (c1 != c2) + Faset (string, 0, make_number (c2)); + } string2 = build_string (coredump ? " (core dumped)\n" : "\n"); - c = STRING_CHAR ((char *) SDATA (string), 0); - Faset (string, 0, make_number (DOWNCASE (c))); return concat2 (string, string2); } else if (EQ (symbol, Qexit)) |