aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2011-08-02 11:42:58 +0200
committerJoakim Verona2011-08-02 11:42:58 +0200
commitc040cbd945a3fde6324c73563dc2d11629ad3081 (patch)
tree88cb76e2533cb211b0df151a31fab8e6ad24371e
parente31c3c3f9c2118bf73f32a9573fefd01c9966bc2 (diff)
parentd90e2ea0eeccb7422fc7c8ab727a61c49c135e03 (diff)
downloademacs-c040cbd945a3fde6324c73563dc2d11629ad3081.tar.gz
emacs-c040cbd945a3fde6324c73563dc2d11629ad3081.zip
merge upstream + stray par fix
-rw-r--r--lisp/ChangeLog14
-rw-r--r--lisp/emacs-lisp/package.el2
-rw-r--r--lisp/window.el24
-rw-r--r--lisp/xwidget.el27
-rw-r--r--src/ChangeLog9
-rw-r--r--src/xdisp.c44
6 files changed, 89 insertions, 31 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ef85ffab8a4..791233439bb 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,17 @@
12011-08-01 Martin Rudalics <rudalics@gmx.at>
2
3 * window.el (display-buffer-in-window): Don't set dedicated status
4 of window here (Bug#9215).
5 (display-buffer-pop-up-window, display-buffer-pop-up-frame)
6 (display-buffer-pop-up-side-window)
7 (display-buffer-in-side-window): Set dedicated status of window
8 here.
9
102011-08-01 Stefan Monnier <monnier@iro.umontreal.ca>
11
12 * emacs-lisp/package.el (package-generate-autoloads): Load autoloads
13 before binding generated-autoload-file.
14
12011-08-01 Deniz Dogan <deniz@dogan.se> 152011-08-01 Deniz Dogan <deniz@dogan.se>
2 16
3 * net/rcirc.el (rcirc-handler-333): Clarify docstring. 17 * net/rcirc.el (rcirc-handler-333): Clarify docstring.
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index e42103a7a01..19e8375966b 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -570,11 +570,11 @@ EXTRA-PROPERTIES is currently unused."
570 file) 570 file)
571 571
572(defun package-generate-autoloads (name pkg-dir) 572(defun package-generate-autoloads (name pkg-dir)
573 (require 'autoload) ;Load before we let-bind generated-autoload-file!
573 (let* ((auto-name (concat name "-autoloads.el")) 574 (let* ((auto-name (concat name "-autoloads.el"))
574 (ignore-name (concat name "-pkg.el")) 575 (ignore-name (concat name "-pkg.el"))
575 (generated-autoload-file (expand-file-name auto-name pkg-dir)) 576 (generated-autoload-file (expand-file-name auto-name pkg-dir))
576 (version-control 'never)) 577 (version-control 'never))
577 (require 'autoload)
578 (unless (fboundp 'autoload-ensure-default-file) 578 (unless (fboundp 'autoload-ensure-default-file)
579 (package-autoload-ensure-default-file generated-autoload-file)) 579 (package-autoload-ensure-default-file generated-autoload-file))
580 (update-directory-autoloads pkg-dir))) 580 (update-directory-autoloads pkg-dir)))
diff --git a/lisp/window.el b/lisp/window.el
index 905db8dc9b6..215dbab7849 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4715,15 +4715,12 @@ documentation of `display-buffer-alist' for a description."
4715 (setq window (window-normalize-live-window window)) 4715 (setq window (window-normalize-live-window window))
4716 (let* ((old-frame (selected-frame)) 4716 (let* ((old-frame (selected-frame))
4717 (new-frame (window-frame window)) 4717 (new-frame (window-frame window))
4718 (dedicate (cdr (assq 'dedicate specifiers)))
4719 (no-other-window (cdr (assq 'no-other-window specifiers)))) 4718 (no-other-window (cdr (assq 'no-other-window specifiers))))
4720 ;; Show BUFFER in WINDOW. 4719 ;; Show BUFFER in WINDOW.
4721 (unless (eq buffer (window-buffer window)) 4720 (unless (eq buffer (window-buffer window))
4722 ;; If we show another buffer in WINDOW, undedicate it first. 4721 ;; If we show another buffer in WINDOW, undedicate it first.
4723 (set-window-dedicated-p window nil)) 4722 (set-window-dedicated-p window nil))
4724 (set-window-buffer window buffer) 4723 (set-window-buffer window buffer)
4725 (when dedicate
4726 (set-window-dedicated-p window dedicate))
4727 (when no-other-window 4724 (when no-other-window
4728 (set-window-parameter window 'no-other-window t)) 4725 (set-window-parameter window 'no-other-window t))
4729 (unless (or (eq old-frame new-frame) 4726 (unless (or (eq old-frame new-frame)
@@ -4965,7 +4962,7 @@ Return the new window, nil if it could not be created."
4965 (selected-window (selected-window)) 4962 (selected-window (selected-window))
4966 root new new-parent) 4963 root new new-parent)
4967 4964
4968 ;; We are in an atomic window. 4965 ;; We are in an atomic window.
4969 (when (and (window-parameter window 'window-atom) (not nest)) 4966 (when (and (window-parameter window 'window-atom) (not nest))
4970 ;; Split the root window. 4967 ;; Split the root window.
4971 (setq window (window-atom-root window))) 4968 (setq window (window-atom-root window)))
@@ -5059,6 +5056,10 @@ description."
5059 (setq display-buffer-window (cons window 'new-window)) 5056 (setq display-buffer-window (cons window 'new-window))
5060 ;; Install BUFFER in the new window. 5057 ;; Install BUFFER in the new window.
5061 (display-buffer-in-window buffer window specifiers) 5058 (display-buffer-in-window buffer window specifiers)
5059 (let ((dedicate (cdr (assq 'dedicate specifiers))))
5060 (when dedicate
5061 ;; Dedicate window to buffer.
5062 (set-window-dedicated-p window dedicate)))
5062 ;; Adjust sizes if asked for (for `fit-window-to-buffer' 5063 ;; Adjust sizes if asked for (for `fit-window-to-buffer'
5063 ;; and friends BUFFER must be already shown in the new 5064 ;; and friends BUFFER must be already shown in the new
5064 ;; window). 5065 ;; window).
@@ -5094,7 +5095,12 @@ documentation of `display-buffer-alist' for a description."
5094 (set-window-parameter 5095 (set-window-parameter
5095 window 'quit-restore (list 'new-frame buffer selected-window)) 5096 window 'quit-restore (list 'new-frame buffer selected-window))
5096 (setq display-buffer-window (cons window 'new-frame)) 5097 (setq display-buffer-window (cons window 'new-frame))
5097 (display-buffer-in-window buffer window specifiers)))))) 5098 (display-buffer-in-window buffer window specifiers)
5099 (let ((dedicate (cdr (assq 'dedicate specifiers))))
5100 (when dedicate
5101 ;; Dedicate window to buffer.
5102 (set-window-dedicated-p window dedicate)))
5103 window)))))
5098 5104
5099(defun display-buffer-pop-up-side-window (buffer side slot &optional specifiers) 5105(defun display-buffer-pop-up-side-window (buffer side slot &optional specifiers)
5100 "Display BUFFER in a new window on SIDE of the selected frame. 5106 "Display BUFFER in a new window on SIDE of the selected frame.
@@ -5142,6 +5148,10 @@ failed."
5142 (setq display-buffer-window (cons window 'new-window)) 5148 (setq display-buffer-window (cons window 'new-window))
5143 ;; Install BUFFER in new window. 5149 ;; Install BUFFER in new window.
5144 (display-buffer-in-window buffer window specifiers) 5150 (display-buffer-in-window buffer window specifiers)
5151 (let ((dedicate (cdr (assq 'dedicate specifiers))))
5152 (when dedicate
5153 ;; Dedicate window to buffer.
5154 (set-window-dedicated-p window dedicate)))
5145 ;; Adjust sizes of new window if asked for. 5155 ;; Adjust sizes of new window if asked for.
5146 (display-buffer-set-height window specifiers) 5156 (display-buffer-set-height window specifiers)
5147 (display-buffer-set-width window specifiers) 5157 (display-buffer-set-width window specifiers)
@@ -5282,6 +5292,10 @@ SPECIFIERS must be a list of buffer display specifiers."
5282 (set-window-parameter window 'window-slot slot)) 5292 (set-window-parameter window 'window-slot slot))
5283 ;; Install BUFFER in the window. 5293 ;; Install BUFFER in the window.
5284 (display-buffer-in-window buffer window specifiers) 5294 (display-buffer-in-window buffer window specifiers)
5295 (let ((dedicate (cdr (assq 'dedicate specifiers))))
5296 (when dedicate
5297 ;; Dedicate window to buffer.
5298 (set-window-dedicated-p window dedicate)))
5285 (when new-window 5299 (when new-window
5286 ;; Adjust sizes if asked for (for `fit-window-to-buffer' and 5300 ;; Adjust sizes if asked for (for `fit-window-to-buffer' and
5287 ;; friends BUFFER must be already shown in the new window). 5301 ;; friends BUFFER must be already shown in the new window).
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index 5ca8fb58d69..0c6208f59ec 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -5,7 +5,7 @@
5 5
6;;TODO model after make-text-button instead! 6;;TODO model after make-text-button instead!
7(defun xwidget-insert (pos type title width height) 7(defun xwidget-insert (pos type title width height)
8 "Insert an xwidget at POS, given ID, TYPE, TITLE WIDTH and HEIGHT. 8 "Insert an xwidget at POS, given ID, TYPE, TITLE WIDTH and HEIGHT.
9Return ID 9Return ID
10 10
11see xwidget.c for types suitable for TYPE. 11see xwidget.c for types suitable for TYPE.
@@ -71,6 +71,17 @@ defaults to the string looking like a url around the cursor position."
71 (xwidget-webkit-goto-url url)))) 71 (xwidget-webkit-goto-url url))))
72 72
73 73
74;;shims for adapting image mode code to the webkit browser window
75(defun xwidget-image-display-size (spec &optional pixels frame)
76 (let ((xwi (xwidget-info (xwidget-at 1))))
77 (cons (aref xwi 2)
78 (aref xwi 3))))
79
80(defmacro xwidget-image-mode-navigation-adaptor (fn)
81 `(lambda () (interactive)
82 (flet ((image-display-size (spec &optional pixels frame) (xwidget-image-display-size spec)))
83 (funcall ,fn))))
84
74 85
75;;todo. 86;;todo.
76;; - check that the webkit support is compiled in 87;; - check that the webkit support is compiled in
@@ -84,8 +95,8 @@ defaults to the string looking like a url around the cursor position."
84 (define-key map [xwidget-event] 'xwidget-webkit-event-handler) 95 (define-key map [xwidget-event] 'xwidget-webkit-event-handler)
85 96
86 ;;similar to image mode bindings 97 ;;similar to image mode bindings
87 (define-key map (kbd "SPC") 'image-scroll-up) 98 (define-key map (kbd "SPC") (xwidget-image-mode-navigation-adaptor 'image-scroll-up))
88 (define-key map (kbd "DEL") 'image-scroll-down) 99 (define-key map (kbd "DEL") (xwidget-image-mode-navigation-adaptor 'image-scroll-down))
89 100
90 (define-key map [remap forward-char] (xwidget-image-mode-navigation-adaptor 'image-forward-hscroll)) 101 (define-key map [remap forward-char] (xwidget-image-mode-navigation-adaptor 'image-forward-hscroll))
91 (define-key map [remap backward-char] (xwidget-image-mode-navigation-adaptor 'image-backward-hscroll)) 102 (define-key map [remap backward-char] (xwidget-image-mode-navigation-adaptor 'image-backward-hscroll))
@@ -109,16 +120,6 @@ defaults to the string looking like a url around the cursor position."
109 120
110 "Keymap for `xwidget-webkit-mode'.") 121 "Keymap for `xwidget-webkit-mode'.")
111 122
112(defun xwidget-image-display-size (spec &optional pixels frame)
113 (let ((xwi (xwidget-info (xwidget-at 1))))
114 (cons (aref xwi 2)
115 (aref xwi 3))))
116
117(defmacro xwidget-image-mode-navigation-adaptor (fn)
118 `(lambda () (interactive)
119 (flet ((image-display-size (spec &optional pixels frame) (xwidget-image-display-size spec)))
120 (funcall ,fn))))
121 )
122 123
123(defun xwidget-webkit-event-handler () 124(defun xwidget-webkit-event-handler ()
124 (interactive) 125 (interactive)
diff --git a/src/ChangeLog b/src/ChangeLog
index 623ccc6f4be..4e8217cdf5f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,12 @@
12011-08-01 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (forward_to_next_line_start): Accept additional argument
4 BIDI_IT_PREV, and store into it the state of the bidi iterator had
5 on the newline.
6 (reseat_at_next_visible_line_start): Use the bidi iterator state
7 returned by forward_to_next_line_start to restore the state of
8 it->bidi_it after backing up to previous newline. (Bug#9212)
9
12011-07-30 Andreas Schwab <schwab@linux-m68k.org> 102011-07-30 Andreas Schwab <schwab@linux-m68k.org>
2 11
3 * regex.c (re_comp): Protoize. 12 * regex.c (re_comp): Protoize.
diff --git a/src/xdisp.c b/src/xdisp.c
index 14541eb9df0..22d353b840b 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -904,7 +904,7 @@ static void init_to_row_start (struct it *, struct window *,
904static int init_to_row_end (struct it *, struct window *, 904static int init_to_row_end (struct it *, struct window *,
905 struct glyph_row *); 905 struct glyph_row *);
906static void back_to_previous_line_start (struct it *); 906static void back_to_previous_line_start (struct it *);
907static int forward_to_next_line_start (struct it *, int *); 907static int forward_to_next_line_start (struct it *, int *, struct bidi_it *);
908static struct text_pos string_pos_nchars_ahead (struct text_pos, 908static struct text_pos string_pos_nchars_ahead (struct text_pos,
909 Lisp_Object, EMACS_INT); 909 Lisp_Object, EMACS_INT);
910static struct text_pos string_pos (EMACS_INT, Lisp_Object); 910static struct text_pos string_pos (EMACS_INT, Lisp_Object);
@@ -5529,6 +5529,9 @@ back_to_previous_line_start (struct it *it)
5529 continuously over the text). Otherwise, don't change the value 5529 continuously over the text). Otherwise, don't change the value
5530 of *SKIPPED_P. 5530 of *SKIPPED_P.
5531 5531
5532 If BIDI_IT_PREV is non-NULL, store into it the state of the bidi
5533 iterator on the newline, if it was found.
5534
5532 Newlines may come from buffer text, overlay strings, or strings 5535 Newlines may come from buffer text, overlay strings, or strings
5533 displayed via the `display' property. That's the reason we can't 5536 displayed via the `display' property. That's the reason we can't
5534 simply use find_next_newline_no_quit. 5537 simply use find_next_newline_no_quit.
@@ -5541,7 +5544,8 @@ back_to_previous_line_start (struct it *it)
5541 leads to wrong cursor motion. */ 5544 leads to wrong cursor motion. */
5542 5545
5543static int 5546static int
5544forward_to_next_line_start (struct it *it, int *skipped_p) 5547forward_to_next_line_start (struct it *it, int *skipped_p,
5548 struct bidi_it *bidi_it_prev)
5545{ 5549{
5546 EMACS_INT old_selective; 5550 EMACS_INT old_selective;
5547 int newline_found_p, n; 5551 int newline_found_p, n;
@@ -5553,6 +5557,8 @@ forward_to_next_line_start (struct it *it, int *skipped_p)
5553 && it->c == '\n' 5557 && it->c == '\n'
5554 && CHARPOS (it->position) == IT_CHARPOS (*it)) 5558 && CHARPOS (it->position) == IT_CHARPOS (*it))
5555 { 5559 {
5560 if (it->bidi_p && bidi_it_prev)
5561 *bidi_it_prev = it->bidi_it;
5556 set_iterator_to_next (it, 0); 5562 set_iterator_to_next (it, 0);
5557 it->c = 0; 5563 it->c = 0;
5558 return 1; 5564 return 1;
@@ -5574,6 +5580,8 @@ forward_to_next_line_start (struct it *it, int *skipped_p)
5574 if (!get_next_display_element (it)) 5580 if (!get_next_display_element (it))
5575 return 0; 5581 return 0;
5576 newline_found_p = it->what == IT_CHARACTER && it->c == '\n'; 5582 newline_found_p = it->what == IT_CHARACTER && it->c == '\n';
5583 if (newline_found_p && it->bidi_p && bidi_it_prev)
5584 *bidi_it_prev = it->bidi_it;
5577 set_iterator_to_next (it, 0); 5585 set_iterator_to_next (it, 0);
5578 } 5586 }
5579 5587
@@ -5608,6 +5616,8 @@ forward_to_next_line_start (struct it *it, int *skipped_p)
5608 && !newline_found_p) 5616 && !newline_found_p)
5609 { 5617 {
5610 newline_found_p = ITERATOR_AT_END_OF_LINE_P (it); 5618 newline_found_p = ITERATOR_AT_END_OF_LINE_P (it);
5619 if (newline_found_p && it->bidi_p && bidi_it_prev)
5620 *bidi_it_prev = it->bidi_it;
5611 set_iterator_to_next (it, 0); 5621 set_iterator_to_next (it, 0);
5612 } 5622 }
5613 } 5623 }
@@ -5731,8 +5741,9 @@ static void
5731reseat_at_next_visible_line_start (struct it *it, int on_newline_p) 5741reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
5732{ 5742{
5733 int newline_found_p, skipped_p = 0; 5743 int newline_found_p, skipped_p = 0;
5744 struct bidi_it bidi_it_prev;
5734 5745
5735 newline_found_p = forward_to_next_line_start (it, &skipped_p); 5746 newline_found_p = forward_to_next_line_start (it, &skipped_p, &bidi_it_prev);
5736 5747
5737 /* Skip over lines that are invisible because they are indented 5748 /* Skip over lines that are invisible because they are indented
5738 more than the value of IT->selective. */ 5749 more than the value of IT->selective. */
@@ -5743,7 +5754,8 @@ reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
5743 { 5754 {
5744 xassert (IT_BYTEPOS (*it) == BEGV 5755 xassert (IT_BYTEPOS (*it) == BEGV
5745 || FETCH_BYTE (IT_BYTEPOS (*it) - 1) == '\n'); 5756 || FETCH_BYTE (IT_BYTEPOS (*it) - 1) == '\n');
5746 newline_found_p = forward_to_next_line_start (it, &skipped_p); 5757 newline_found_p =
5758 forward_to_next_line_start (it, &skipped_p, &bidi_it_prev);
5747 } 5759 }
5748 5760
5749 /* Position on the newline if that's what's requested. */ 5761 /* Position on the newline if that's what's requested. */
@@ -5759,11 +5771,14 @@ reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
5759 --IT_STRING_BYTEPOS (*it); 5771 --IT_STRING_BYTEPOS (*it);
5760 } 5772 }
5761 else 5773 else
5762 /* Setting this flag will cause 5774 {
5763 bidi_move_to_visually_next not to advance, but 5775 /* We need to restore the bidi iterator to the state
5764 instead deliver the current character (newline), 5776 it had on the newline, and resync the IT's
5765 which is what the ON_NEWLINE_P flag wants. */ 5777 position with that. */
5766 it->bidi_it.first_elt = 1; 5778 it->bidi_it = bidi_it_prev;
5779 IT_STRING_CHARPOS (*it) = it->bidi_it.charpos;
5780 IT_STRING_BYTEPOS (*it) = it->bidi_it.bytepos;
5781 }
5767 } 5782 }
5768 } 5783 }
5769 else if (IT_CHARPOS (*it) > BEGV) 5784 else if (IT_CHARPOS (*it) > BEGV)
@@ -5773,9 +5788,14 @@ reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
5773 --IT_CHARPOS (*it); 5788 --IT_CHARPOS (*it);
5774 --IT_BYTEPOS (*it); 5789 --IT_BYTEPOS (*it);
5775 } 5790 }
5776 /* With bidi iteration, the call to `reseat' will cause 5791 else
5777 bidi_move_to_visually_next deliver the current character, 5792 {
5778 the newline, instead of advancing. */ 5793 /* We need to restore the bidi iterator to the state it
5794 had on the newline and resync IT with that. */
5795 it->bidi_it = bidi_it_prev;
5796 IT_CHARPOS (*it) = it->bidi_it.charpos;
5797 IT_BYTEPOS (*it) = it->bidi_it.bytepos;
5798 }
5779 reseat (it, it->current.pos, 0); 5799 reseat (it, it->current.pos, 0);
5780 } 5800 }
5781 } 5801 }