Mercurial > emacs
diff src/w32fns.c @ 110091:66a2fac996a4
merge emacs-23
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Fri, 27 Aug 2010 23:05:43 +0900 |
parents | 269057771f8c |
children | 051595eb9b58 2cf388f16cae |
line wrap: on
line diff
--- a/src/w32fns.c Sat Apr 03 19:40:20 2010 -0400 +++ b/src/w32fns.c Fri Aug 27 23:05:43 2010 +0900 @@ -47,6 +47,7 @@ #include "systime.h" #include "termhooks.h" #include "w32heap.h" +#include "w32.h" #include "bitmaps/gray.xbm" @@ -287,10 +288,14 @@ #define MENU_FREE_DELAY 1000 static unsigned menu_free_timer = 0; -/* The below are defined in frame.c. */ +/* In dispnew.c */ extern Lisp_Object Vwindow_system_version; +/* The below are defined in frame.c. */ + +extern Lisp_Object Qtooltip; + #ifdef GLYPH_DEBUG int image_cache_refcount, dpyinfo_refcount; #endif @@ -1348,7 +1353,10 @@ if (FRAME_W32_WINDOW (f) != 0) { if (x->cursor_pixel == old_fg) - x->cursor_pixel = fg; + { + x->cursor_pixel = fg; + x->cursor_gc->background = fg; + } update_face_from_frame_parameter (f, Qforeground_color, arg); if (FRAME_VISIBLE_P (f)) @@ -5583,9 +5591,8 @@ change_frame_size (f, height, width, 1, 0, 0); /* Add `tooltip' frame parameter's default value. */ - if (NILP (Fframe_parameter (frame, intern ("tooltip")))) - Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt), - Qnil)); + if (NILP (Fframe_parameter (frame, Qtooltip))) + Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil)); /* Set up faces after all frame parameters are known. This call also merges in face attributes specified for new frames. @@ -6333,6 +6340,7 @@ Lisp_Object operation, document, parameters, show_flag; { Lisp_Object current_dir; + char *errstr; CHECK_STRING (document); @@ -6353,7 +6361,17 @@ XINT (show_flag) : SW_SHOWDEFAULT)) > 32) return Qt; - error ("ShellExecute failed: %s", w32_strerror (0)); + errstr = w32_strerror (0); + /* The error string might be encoded in the locale's encoding. */ + if (!NILP (Vlocale_coding_system)) + { + Lisp_Object decoded = + code_convert_string_norecord (make_unibyte_string (errstr, + strlen (errstr)), + Vlocale_coding_system, 0); + errstr = (char *)SDATA (decoded); + } + error ("ShellExecute failed: %s", errstr); } /* Lookup virtual keycode from string representing the name of a