aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog47
-rw-r--r--src/fns.c15
-rw-r--r--src/gnutls.c29
-rw-r--r--src/gtkutil.c5
-rw-r--r--src/keymap.c10
-rw-r--r--src/nsselect.m114
-rw-r--r--src/w16select.c19
-rw-r--r--src/w32select.c19
-rw-r--r--src/window.c8
-rw-r--r--src/xdisp.c5
-rw-r--r--src/xselect.c31
11 files changed, 222 insertions, 80 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index dfd0a05df35..7893cd68396 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,50 @@
12012-02-13 Andreas Schwab <schwab@linux-m68k.org>
2
3 * gnutls.c (emacs_gnutls_write): Fix last change.
4
52012-02-13 Lars Ingebrigtsen <larsi@gnus.org>
6
7 * gnutls.c (emacs_gnutls_write): Set errno appropriately for
8 send_process.
9
102012-02-13 Stefan Monnier <monnier@iro.umontreal.ca>
11
12 * keymap.c (Fsingle_key_description): Handle char ranges.
13
142012-02-12 Chong Yidong <cyd@gnu.org>
15
16 * xdisp.c (handle_stop): Avoid assigning -1 to it->face_id here,
17 as that creates a dangerous corner case.
18
19 * window.c (Fdelete_window_internal): Invalidate the mouse
20 highlight (Bug#9904).
21
222012-02-12 Glenn Morris <rgm@gnu.org>
23
24 * xselect.c (Fx_own_selection_internal)
25 (Fx_get_selection_internal, Fx_disown_selection_internal)
26 (Fx_selection_owner_p, Fx_selection_exists_p): Doc fixes.
27 * nsselect.m (Fx_own_selection_internal)
28 (Fx_disown_selection_internal, Fx_selection_exists_p)
29 (Fx_selection_owner_p, Fx_get_selection_internal):
30 Sync docs and argument specs with the xselect.c versions.
31
322012-02-11 Lars Ingebrigtsen <larsi@gnus.org>
33
34 * gnutls.c (emacs_gnutls_write): Don't infloop if sendto fails.
35
362012-02-11 Eli Zaretskii <eliz@gnu.org>
37
38 * w32select.c (Fx_selection_exists_p): Sync doc string and
39 argument list with xselect.c. (Bug#10783)
40
41 * w16select.c (Fx_selection_exists_p): Sync doc string and
42 argument list with xselect.c. (Bug#10783)
43
442012-02-10 Glenn Morris <rgm@gnu.org>
45
46 * fns.c (Fsecure_hash): Doc fix.
47
12012-02-09 Kenichi Handa <handa@m17n.org> 482012-02-09 Kenichi Handa <handa@m17n.org>
2 49
3 * coding.c (produce_chars): Fix updating of src_end (Bug#10701). 50 * coding.c (produce_chars): Fix updating of src_end (Bug#10701).
diff --git a/src/fns.c b/src/fns.c
index 2c9ce915ae5..1edfe966098 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -4847,12 +4847,15 @@ guesswork fails. Normally, an error is signaled in such case. */)
4847} 4847}
4848 4848
4849DEFUN ("secure-hash", Fsecure_hash, Ssecure_hash, 2, 5, 0, 4849DEFUN ("secure-hash", Fsecure_hash, Ssecure_hash, 2, 5, 0,
4850 doc: /* Return the secure hash of an OBJECT. 4850 doc: /* Return the secure hash of OBJECT, a buffer or string.
4851ALGORITHM is a symbol: md5, sha1, sha224, sha256, sha384 or sha512. 4851ALGORITHM is a symbol specifying the hash to use:
4852OBJECT is either a string or a buffer. 4852md5, sha1, sha224, sha256, sha384 or sha512.
4853Optional arguments START and END are character positions specifying 4853
4854which portion of OBJECT for computing the hash. If BINARY is non-nil, 4854The two optional arguments START and END are positions specifying for
4855return a string in binary form. */) 4855which part of OBJECT to compute the hash. If nil or omitted, uses the
4856whole OBJECT.
4857
4858If BINARY is non-nil, returns a string in binary form. */)
4856 (Lisp_Object algorithm, Lisp_Object object, Lisp_Object start, Lisp_Object end, Lisp_Object binary) 4859 (Lisp_Object algorithm, Lisp_Object object, Lisp_Object start, Lisp_Object end, Lisp_Object binary)
4857{ 4860{
4858 return secure_hash (algorithm, object, start, end, Qnil, Qnil, binary); 4861 return secure_hash (algorithm, object, start, end, Qnil, Qnil, binary);
diff --git a/src/gnutls.c b/src/gnutls.c
index d7bf0e8edb8..6b5cb47001b 100644
--- a/src/gnutls.c
+++ b/src/gnutls.c
@@ -345,15 +345,16 @@ emacs_gnutls_write (struct Lisp_Process *proc, const char *buf, EMACS_INT nbyte)
345 EMACS_INT bytes_written; 345 EMACS_INT bytes_written;
346 gnutls_session_t state = proc->gnutls_state; 346 gnutls_session_t state = proc->gnutls_state;
347 347
348 if (proc->gnutls_initstage != GNUTLS_STAGE_READY) { 348 if (proc->gnutls_initstage != GNUTLS_STAGE_READY)
349 {
349#ifdef EWOULDBLOCK 350#ifdef EWOULDBLOCK
350 errno = EWOULDBLOCK; 351 errno = EWOULDBLOCK;
351#endif 352#endif
352#ifdef EAGAIN 353#ifdef EAGAIN
353 errno = EAGAIN; 354 errno = EAGAIN;
354#endif 355#endif
355 return 0; 356 return 0;
356 } 357 }
357 358
358 bytes_written = 0; 359 bytes_written = 0;
359 360
@@ -363,10 +364,24 @@ emacs_gnutls_write (struct Lisp_Process *proc, const char *buf, EMACS_INT nbyte)
363 364
364 if (rtnval < 0) 365 if (rtnval < 0)
365 { 366 {
366 if (rtnval == GNUTLS_E_AGAIN || rtnval == GNUTLS_E_INTERRUPTED) 367 if (rtnval == GNUTLS_E_INTERRUPTED)
367 continue; 368 continue;
368 else 369 else
369 break; 370 {
371 /* If we get GNUTLS_E_AGAIN, then set errno
372 appropriately so that send_process retries the
373 correct way instead of erroring out. */
374 if (rtnval == GNUTLS_E_AGAIN)
375 {
376#ifdef EWOULDBLOCK
377 errno = EWOULDBLOCK;
378#endif
379#ifdef EAGAIN
380 errno = EAGAIN;
381#endif
382 }
383 break;
384 }
370 } 385 }
371 386
372 buf += rtnval; 387 buf += rtnval;
diff --git a/src/gtkutil.c b/src/gtkutil.c
index f7983fdd5a4..1ed5833bd5c 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1741,8 +1741,9 @@ xg_toggle_notify_cb (GObject *gobject, GParamSpec *arg1, gpointer user_data)
1741 PROMPT is a prompt to show to the user. May not be NULL. 1741 PROMPT is a prompt to show to the user. May not be NULL.
1742 DEFAULT_FILENAME is a default selection to be displayed. May be NULL. 1742 DEFAULT_FILENAME is a default selection to be displayed. May be NULL.
1743 If MUSTMATCH_P is non-zero, the returned file name must be an existing 1743 If MUSTMATCH_P is non-zero, the returned file name must be an existing
1744 file. *FUNC is set to a function that can be used to retrieve the 1744 file. (Actually, this only has cosmetic effects, the user can
1745 selected file name from the returned widget. 1745 still enter a non-existing file.) *FUNC is set to a function that
1746 can be used to retrieve the selected file name from the returned widget.
1746 1747
1747 Returns the created widget. */ 1748 Returns the created widget. */
1748 1749
diff --git a/src/keymap.c b/src/keymap.c
index 5b5faec3a65..0ae055213c3 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -2270,9 +2270,15 @@ around function keys and event symbols. */)
2270 if (CONSP (key) && lucid_event_type_list_p (key)) 2270 if (CONSP (key) && lucid_event_type_list_p (key))
2271 key = Fevent_convert_list (key); 2271 key = Fevent_convert_list (key);
2272 2272
2273 if (CONSP (key) && INTEGERP (XCAR (key)) && INTEGERP (XCDR (key)))
2274 /* An interval from a map-char-table. */
2275 return concat3 (Fsingle_key_description (XCAR (key), no_angles),
2276 build_string (".."),
2277 Fsingle_key_description (XCDR (key), no_angles));
2278
2273 key = EVENT_HEAD (key); 2279 key = EVENT_HEAD (key);
2274 2280
2275 if (INTEGERP (key)) /* Normal character */ 2281 if (INTEGERP (key)) /* Normal character. */
2276 { 2282 {
2277 char tem[KEY_DESCRIPTION_SIZE], *p; 2283 char tem[KEY_DESCRIPTION_SIZE], *p;
2278 2284
@@ -2280,7 +2286,7 @@ around function keys and event symbols. */)
2280 *p = 0; 2286 *p = 0;
2281 return make_specified_string (tem, -1, p - tem, 1); 2287 return make_specified_string (tem, -1, p - tem, 1);
2282 } 2288 }
2283 else if (SYMBOLP (key)) /* Function key or event-symbol */ 2289 else if (SYMBOLP (key)) /* Function key or event-symbol. */
2284 { 2290 {
2285 if (NILP (no_angles)) 2291 if (NILP (no_angles))
2286 { 2292 {
diff --git a/src/nsselect.m b/src/nsselect.m
index 120dcb34f67..4d901fac2ec 100644
--- a/src/nsselect.m
+++ b/src/nsselect.m
@@ -336,12 +336,18 @@ ns_string_to_pasteboard (id pb, Lisp_Object str)
336 336
337 337
338DEFUN ("x-own-selection-internal", Fx_own_selection_internal, 338DEFUN ("x-own-selection-internal", Fx_own_selection_internal,
339 Sx_own_selection_internal, 2, 2, 0, 339 Sx_own_selection_internal, 2, 3, 0,
340 doc: /* Assert a selection. 340 doc: /* Assert an X selection of type SELECTION and value VALUE.
341SELECTION-NAME is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. 341SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
342\(Those are literal upper-case symbol names, since that's what X expects.)
342VALUE is typically a string, or a cons of two markers, but may be 343VALUE is typically a string, or a cons of two markers, but may be
343anything that the functions on `selection-converter-alist' know about. */) 344anything that the functions on `selection-converter-alist' know about.
344 (Lisp_Object selection_name, Lisp_Object selection_value) 345
346FRAME should be a frame that should own the selection. If omitted or
347nil, it defaults to the selected frame.
348
349On Nextstep, FRAME is unused. */)
350 (Lisp_Object selection, Lisp_Object value, Lisp_Object frame)
345{ 351{
346 id pb; 352 id pb;
347 Lisp_Object old_value, new_value; 353 Lisp_Object old_value, new_value;
@@ -351,15 +357,15 @@ anything that the functions on `selection-converter-alist' know about. */)
351 357
352 358
353 check_ns (); 359 check_ns ();
354 CHECK_SYMBOL (selection_name); 360 CHECK_SYMBOL (selection);
355 if (NILP (selection_value)) 361 if (NILP (value))
356 error ("selection-value may not be nil."); 362 error ("selection value may not be nil.");
357 pb = ns_symbol_to_pb (selection_name); 363 pb = ns_symbol_to_pb (selection);
358 if (pb == nil) return Qnil; 364 if (pb == nil) return Qnil;
359 365
360 ns_declare_pasteboard (pb); 366 ns_declare_pasteboard (pb);
361 old_value = assq_no_quit (selection_name, Vselection_alist); 367 old_value = assq_no_quit (selection, Vselection_alist);
362 new_value = Fcons (selection_name, Fcons (selection_value, Qnil)); 368 new_value = Fcons (selection, Fcons (value, Qnil));
363 369
364 if (NILP (old_value)) 370 if (NILP (old_value))
365 Vselection_alist = Fcons (new_value, Vselection_alist); 371 Vselection_alist = Fcons (new_value, Vselection_alist);
@@ -369,7 +375,7 @@ anything that the functions on `selection-converter-alist' know about. */)
369 /* We only support copy of text. */ 375 /* We only support copy of text. */
370 type = NSStringPboardType; 376 type = NSStringPboardType;
371 target_symbol = ns_string_to_symbol (type); 377 target_symbol = ns_string_to_symbol (type);
372 data = ns_get_local_selection (selection_name, target_symbol); 378 data = ns_get_local_selection (selection, target_symbol);
373 if (!NILP (data)) 379 if (!NILP (data))
374 { 380 {
375 if (STRINGP (data)) 381 if (STRINGP (data))
@@ -380,37 +386,53 @@ anything that the functions on `selection-converter-alist' know about. */)
380 if (!EQ (Vns_sent_selection_hooks, Qunbound)) 386 if (!EQ (Vns_sent_selection_hooks, Qunbound))
381 { 387 {
382 for (rest = Vns_sent_selection_hooks; CONSP (rest); rest = Fcdr (rest)) 388 for (rest = Vns_sent_selection_hooks; CONSP (rest); rest = Fcdr (rest))
383 call3 (Fcar (rest), selection_name, target_symbol, successful_p); 389 call3 (Fcar (rest), selection, target_symbol, successful_p);
384 } 390 }
385 391
386 return selection_value; 392 return value;
387} 393}
388 394
389 395
390DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal, 396DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal,
391 Sx_disown_selection_internal, 1, 2, 0, 397 Sx_disown_selection_internal, 1, 3, 0,
392 doc: /* If we own the selection SELECTION, disown it. */) 398 doc: /* If we own the selection SELECTION, disown it.
393 (Lisp_Object selection_name, Lisp_Object time) 399Disowning it means there is no such selection.
400
401Sets the last-change time for the selection to TIME-OBJECT (by default
402the time of the last event).
403
404TERMINAL should be a terminal object or a frame specifying the X
405server to query. If omitted or nil, that stands for the selected
406frame's display, or the first available X display.
407
408On Nextstep, the TIME-OBJECT and TERMINAL arguments are unused.
409On MS-DOS, all this does is return non-nil if we own the selection. */)
410 (Lisp_Object selection, Lisp_Object time_object, Lisp_Object terminal)
394{ 411{
395 id pb; 412 id pb;
396 check_ns (); 413 check_ns ();
397 CHECK_SYMBOL (selection_name); 414 CHECK_SYMBOL (selection);
398 if (NILP (assq_no_quit (selection_name, Vselection_alist))) return Qnil; 415 if (NILP (assq_no_quit (selection, Vselection_alist))) return Qnil;
399 416
400 pb = ns_symbol_to_pb (selection_name); 417 pb = ns_symbol_to_pb (selection);
401 if (pb != nil) ns_undeclare_pasteboard (pb); 418 if (pb != nil) ns_undeclare_pasteboard (pb);
402 return Qt; 419 return Qt;
403} 420}
404 421
405 422
406DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p, 423DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p,
407 0, 1, 0, doc: /* Whether there is an owner for the given selection. 424 0, 2, 0, doc: /* Whether there is an owner for the given X selection.
408The arg should be the name of the selection in question, typically one of 425SELECTION should be the name of the selection in question, typically
409the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. 426one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (X expects
410\(Those are literal upper-case symbol names.) 427these literal upper-case names.) The symbol nil is the same as
411For convenience, the symbol nil is the same as `PRIMARY', 428`PRIMARY', and t is the same as `SECONDARY'.
412and t is the same as `SECONDARY'.) */) 429
413 (Lisp_Object selection) 430TERMINAL should be a terminal object or a frame specifying the X
431server to query. If omitted or nil, that stands for the selected
432frame's display, or the first available X display.
433
434On Nextstep, TERMINAL is unused. */)
435 (Lisp_Object selection, Lisp_Object terminal)
414{ 436{
415 id pb; 437 id pb;
416 NSArray *types; 438 NSArray *types;
@@ -428,14 +450,20 @@ and t is the same as `SECONDARY'.) */)
428 450
429 451
430DEFUN ("x-selection-owner-p", Fx_selection_owner_p, Sx_selection_owner_p, 452DEFUN ("x-selection-owner-p", Fx_selection_owner_p, Sx_selection_owner_p,
431 0, 1, 0, 453 0, 2, 0,
432 doc: /* Whether the current Emacs process owns the given selection. 454 doc: /* Whether the current Emacs process owns the given X Selection.
433The arg should be the name of the selection in question, typically one of 455The arg should be the name of the selection in question, typically one of
434the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. 456the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
435\(Those are literal upper-case symbol names.) 457\(Those are literal upper-case symbol names, since that's what X expects.)
436For convenience, the symbol nil is the same as `PRIMARY', 458For convenience, the symbol nil is the same as `PRIMARY',
437and t is the same as `SECONDARY'.) */) 459and t is the same as `SECONDARY'.
438 (Lisp_Object selection) 460
461TERMINAL should be a terminal object or a frame specifying the X
462server to query. If omitted or nil, that stands for the selected
463frame's display, or the first available X display.
464
465On Nextstep, TERMINAL is unused. */)
466 (Lisp_Object selection, Lisp_Object terminal)
439{ 467{
440 check_ns (); 468 check_ns ();
441 CHECK_SYMBOL (selection); 469 CHECK_SYMBOL (selection);
@@ -446,12 +474,22 @@ and t is the same as `SECONDARY'.) */)
446 474
447 475
448DEFUN ("x-get-selection-internal", Fx_get_selection_internal, 476DEFUN ("x-get-selection-internal", Fx_get_selection_internal,
449 Sx_get_selection_internal, 2, 2, 0, 477 Sx_get_selection_internal, 2, 4, 0,
450 doc: /* Return text selected from some pasteboard. 478 doc: /* Return text selected from some X window.
451SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. 479SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
452\(Those are literal upper-case symbol names.) 480\(Those are literal upper-case symbol names, since that's what X expects.)
453TYPE is the type of data desired, typically `STRING'. */) 481TARGET-TYPE is the type of data desired, typically `STRING'.
454 (Lisp_Object selection_name, Lisp_Object target_type) 482
483TIME-STAMP is the time to use in the XConvertSelection call for foreign
484selections. If omitted, defaults to the time for the last event.
485
486TERMINAL should be a terminal object or a frame specifying the X
487server to query. If omitted or nil, that stands for the selected
488frame's display, or the first available X display.
489
490On Nextstep, TIME-STAMP and TERMINAL are unused. */)
491 (Lisp_Object selection_name, Lisp_Object target_type,
492 Lisp_Object time_stamp, Lisp_Object terminal)
455{ 493{
456 Lisp_Object val; 494 Lisp_Object val;
457 495
diff --git a/src/w16select.c b/src/w16select.c
index 185bf252895..03f63bedf0d 100644
--- a/src/w16select.c
+++ b/src/w16select.c
@@ -637,14 +637,17 @@ DEFUN ("w16-get-clipboard-data", Fw16_get_clipboard_data, Sw16_get_clipboard_dat
637/* Support checking for a clipboard selection. */ 637/* Support checking for a clipboard selection. */
638 638
639DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p, 639DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p,
640 0, 1, 0, 640 0, 2, 0,
641 doc: /* Whether there is an owner for the given X Selection. 641 doc: /* Whether there is an owner for the given X selection.
642The arg should be the name of the selection in question, typically one of 642SELECTION should be the name of the selection in question, typically
643the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. 643one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (X expects
644\(Those are literal upper-case symbol names, since that's what X expects.) 644these literal upper-case names.) The symbol nil is the same as
645For convenience, the symbol nil is the same as `PRIMARY', 645`PRIMARY', and t is the same as `SECONDARY'.
646and t is the same as `SECONDARY'. */) 646
647 (Lisp_Object selection) 647TERMINAL should be a terminal object or a frame specifying the X
648server to query. If omitted or nil, that stands for the selected
649frame's display, or the first available X display. */)
650 (Lisp_Object selection, Lisp_Object terminal)
648{ 651{
649 CHECK_SYMBOL (selection); 652 CHECK_SYMBOL (selection);
650 653
diff --git a/src/w32select.c b/src/w32select.c
index c60376b3a91..699c72b71a8 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -1009,14 +1009,17 @@ DEFUN ("w32-get-clipboard-data", Fw32_get_clipboard_data,
1009/* Support checking for a clipboard selection. */ 1009/* Support checking for a clipboard selection. */
1010 1010
1011DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p, 1011DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p,
1012 0, 1, 0, 1012 0, 2, 0,
1013 doc: /* Whether there is an owner for the given X Selection. 1013 doc: /* Whether there is an owner for the given X selection.
1014The arg should be the name of the selection in question, typically one of 1014SELECTION should be the name of the selection in question, typically
1015the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. 1015one of the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'. (X expects
1016\(Those are literal upper-case symbol names, since that's what X expects.) 1016these literal upper-case names.) The symbol nil is the same as
1017For convenience, the symbol nil is the same as `PRIMARY', 1017`PRIMARY', and t is the same as `SECONDARY'.
1018and t is the same as `SECONDARY'. */) 1018
1019 (Lisp_Object selection) 1019TERMINAL should be a terminal object or a frame specifying the X
1020server to query. If omitted or nil, that stands for the selected
1021frame's display, or the first available X display. */)
1022 (Lisp_Object selection, Lisp_Object terminal)
1020{ 1023{
1021 CHECK_SYMBOL (selection); 1024 CHECK_SYMBOL (selection);
1022 1025
diff --git a/src/window.c b/src/window.c
index a3b58d648a1..b50ae71df8c 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3888,6 +3888,8 @@ Signal an error when WINDOW is the only window on its frame. */)
3888 && EQ (r->new_total, (horflag ? r->total_cols : r->total_lines))) 3888 && EQ (r->new_total, (horflag ? r->total_cols : r->total_lines)))
3889 /* We can delete WINDOW now. */ 3889 /* We can delete WINDOW now. */
3890 { 3890 {
3891 Mouse_HLInfo *hlinfo;
3892
3891 /* Block input. */ 3893 /* Block input. */
3892 BLOCK_INPUT; 3894 BLOCK_INPUT;
3893#ifdef HAVE_XWIDGETS 3895#ifdef HAVE_XWIDGETS
@@ -3895,6 +3897,12 @@ Signal an error when WINDOW is the only window on its frame. */)
3895#endif 3897#endif
3896 window_resize_apply (p, horflag); 3898 window_resize_apply (p, horflag);
3897 3899
3900 /* If this window is referred to by the dpyinfo's mouse
3901 highlight, invalidate that slot to be safe (Bug#9904). */
3902 hlinfo = MOUSE_HL_INFO (XFRAME (w->frame));
3903 if (EQ (hlinfo->mouse_face_window, window))
3904 hlinfo->mouse_face_window = Qnil;
3905
3898 windows_or_buffers_changed++; 3906 windows_or_buffers_changed++;
3899 Vwindow_list = Qnil; 3907 Vwindow_list = Qnil;
3900 FRAME_WINDOW_SIZES_CHANGED (f) = 1; 3908 FRAME_WINDOW_SIZES_CHANGED (f) = 1;
diff --git a/src/xdisp.c b/src/xdisp.c
index 653ca46904b..6e5b1da284d 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -2755,9 +2755,12 @@ init_iterator (struct it *it, struct window *w,
2755 if (charpos >= BUF_BEG (current_buffer)) 2755 if (charpos >= BUF_BEG (current_buffer))
2756 { 2756 {
2757 it->end_charpos = ZV; 2757 it->end_charpos = ZV;
2758 it->face_id = -1;
2759 IT_CHARPOS (*it) = charpos; 2758 IT_CHARPOS (*it) = charpos;
2760 2759
2760 /* We will rely on `reseat' to set this up properly, via
2761 handle_face_prop. */
2762 it->face_id = it->base_face_id;
2763
2761 /* Compute byte position if not specified. */ 2764 /* Compute byte position if not specified. */
2762 if (bytepos < charpos) 2765 if (bytepos < charpos)
2763 IT_BYTEPOS (*it) = CHAR_TO_BYTE (charpos); 2766 IT_BYTEPOS (*it) = CHAR_TO_BYTE (charpos);
diff --git a/src/xselect.c b/src/xselect.c
index 85c9c40cc34..49955f03fd0 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -1982,7 +1982,9 @@ VALUE is typically a string, or a cons of two markers, but may be
1982anything that the functions on `selection-converter-alist' know about. 1982anything that the functions on `selection-converter-alist' know about.
1983 1983
1984FRAME should be a frame that should own the selection. If omitted or 1984FRAME should be a frame that should own the selection. If omitted or
1985nil, it defaults to the selected frame. */) 1985nil, it defaults to the selected frame.
1986
1987On Nextstep, FRAME is unused. */)
1986 (Lisp_Object selection, Lisp_Object value, Lisp_Object frame) 1988 (Lisp_Object selection, Lisp_Object value, Lisp_Object frame)
1987{ 1989{
1988 if (NILP (frame)) frame = selected_frame; 1990 if (NILP (frame)) frame = selected_frame;
@@ -2003,15 +2005,18 @@ nil, it defaults to the selected frame. */)
2003DEFUN ("x-get-selection-internal", Fx_get_selection_internal, 2005DEFUN ("x-get-selection-internal", Fx_get_selection_internal,
2004 Sx_get_selection_internal, 2, 4, 0, 2006 Sx_get_selection_internal, 2, 4, 0,
2005 doc: /* Return text selected from some X window. 2007 doc: /* Return text selected from some X window.
2006SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'. 2008SELECTION-SYMBOL is typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
2007\(Those are literal upper-case symbol names, since that's what X expects.) 2009\(Those are literal upper-case symbol names, since that's what X expects.)
2008TYPE is the type of data desired, typically `STRING'. 2010TARGET-TYPE is the type of data desired, typically `STRING'.
2009TIME_STAMP is the time to use in the XConvertSelection call for foreign 2011
2012TIME-STAMP is the time to use in the XConvertSelection call for foreign
2010selections. If omitted, defaults to the time for the last event. 2013selections. If omitted, defaults to the time for the last event.
2011 2014
2012TERMINAL should be a terminal object or a frame specifying the X 2015TERMINAL should be a terminal object or a frame specifying the X
2013server to query. If omitted or nil, that stands for the selected 2016server to query. If omitted or nil, that stands for the selected
2014frame's display, or the first available X display. */) 2017frame's display, or the first available X display.
2018
2019On Nextstep, TIME-STAMP and TERMINAL are unused. */)
2015 (Lisp_Object selection_symbol, Lisp_Object target_type, 2020 (Lisp_Object selection_symbol, Lisp_Object target_type,
2016 Lisp_Object time_stamp, Lisp_Object terminal) 2021 Lisp_Object time_stamp, Lisp_Object terminal)
2017{ 2022{
@@ -2052,9 +2057,15 @@ DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal,
2052 doc: /* If we own the selection SELECTION, disown it. 2057 doc: /* If we own the selection SELECTION, disown it.
2053Disowning it means there is no such selection. 2058Disowning it means there is no such selection.
2054 2059
2060Sets the last-change time for the selection to TIME-OBJECT (by default
2061the time of the last event).
2062
2055TERMINAL should be a terminal object or a frame specifying the X 2063TERMINAL should be a terminal object or a frame specifying the X
2056server to query. If omitted or nil, that stands for the selected 2064server to query. If omitted or nil, that stands for the selected
2057frame's display, or the first available X display. */) 2065frame's display, or the first available X display.
2066
2067On Nextstep, the TIME-OBJECT and TERMINAL arguments are unused.
2068On MS-DOS, all this does is return non-nil if we own the selection. */)
2058 (Lisp_Object selection, Lisp_Object time_object, Lisp_Object terminal) 2069 (Lisp_Object selection, Lisp_Object time_object, Lisp_Object terminal)
2059{ 2070{
2060 Time timestamp; 2071 Time timestamp;
@@ -2110,7 +2121,9 @@ and t is the same as `SECONDARY'.
2110 2121
2111TERMINAL should be a terminal object or a frame specifying the X 2122TERMINAL should be a terminal object or a frame specifying the X
2112server to query. If omitted or nil, that stands for the selected 2123server to query. If omitted or nil, that stands for the selected
2113frame's display, or the first available X display. */) 2124frame's display, or the first available X display.
2125
2126On Nextstep, TERMINAL is unused. */)
2114 (Lisp_Object selection, Lisp_Object terminal) 2127 (Lisp_Object selection, Lisp_Object terminal)
2115{ 2128{
2116 struct frame *f = frame_for_x_selection (terminal); 2129 struct frame *f = frame_for_x_selection (terminal);
@@ -2135,7 +2148,9 @@ these literal upper-case names.) The symbol nil is the same as
2135 2148
2136TERMINAL should be a terminal object or a frame specifying the X 2149TERMINAL should be a terminal object or a frame specifying the X
2137server to query. If omitted or nil, that stands for the selected 2150server to query. If omitted or nil, that stands for the selected
2138frame's display, or the first available X display. */) 2151frame's display, or the first available X display.
2152
2153On Nextstep, TERMINAL is unused. */)
2139 (Lisp_Object selection, Lisp_Object terminal) 2154 (Lisp_Object selection, Lisp_Object terminal)
2140{ 2155{
2141 Window owner; 2156 Window owner;