Now on revision 106345. ------------------------------------------------------------ revno: 106345 [merge] committer: Kenichi Handa branch nick: trunk timestamp: Fri 2011-11-11 16:09:14 +0900 message: xdisp.c (fill_composite_glyph_string): Always set s->face, to avoid a crash (bug#9496). diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2011-11-09 14:29:23 +0000 +++ src/ChangeLog 2011-11-11 07:08:47 +0000 @@ -1,3 +1,8 @@ +2011-11-11 Johan Bockgård + + * xdisp.c (fill_composite_glyph_string): Always set s->face, to + avoid a crash (bug#9496). + 2011-11-09 Chong Yidong * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges) === modified file 'src/xdisp.c' --- src/xdisp.c 2011-11-08 20:05:27 +0000 +++ src/xdisp.c 2011-11-11 07:08:47 +0000 @@ -22121,6 +22121,12 @@ } s->cmp_to = i; + if (s->face == NULL) + { + s->face = base_face->ascii_face; + s->font = s->face->font; + } + /* All glyph strings for the same composition has the same width, i.e. the width set for the first component of the composition. */ s->width = s->first_glyph->pixel_width; ------------------------------------------------------------ revno: 106344 committer: Glenn Morris branch nick: trunk timestamp: Thu 2011-11-10 20:46:03 -0500 message: eval-after-load fix for bug#10009 * lisp/subr.el (eval-after-load): If FILE is already loaded, evaluate FORM before it gets wrapped in more stuff. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-11-10 02:36:48 +0000 +++ lisp/ChangeLog 2011-11-11 01:46:03 +0000 @@ -1,3 +1,8 @@ +2011-11-11 Glenn Morris + + * subr.el (eval-after-load): If FILE is already loaded, + evaluate FORM before it gets wrapped in more stuff. (Bug#10009) + 2011-11-10 Glenn Morris * vc/vc-svn.el (vc-svn-create-repo, vc-svn-modify-change-comment): === modified file 'lisp/subr.el' --- lisp/subr.el 2011-10-31 10:53:16 +0000 +++ lisp/subr.el 2011-11-11 01:46:03 +0000 @@ -1797,30 +1797,29 @@ (push elt after-load-alist)) ;; Make sure `form' is evalled in the current lexical/dynamic code. (setq form `(funcall ',(eval `(lambda () ,form) lexical-binding))) - (when (symbolp regexp-or-feature) - ;; For features, the after-load-alist elements get run when `provide' is - ;; called rather than at the end of the file. So add an indirection to - ;; make sure that `form' is really run "after-load" in case the provide - ;; call happens early. - (setq form - `(when load-file-name - (let ((fun (make-symbol "eval-after-load-helper"))) - (fset fun `(lambda (file) - (if (not (equal file ',load-file-name)) - nil - (remove-hook 'after-load-functions ',fun) - ,',form))) - (add-hook 'after-load-functions fun))))) - ;; Add FORM to the element unless it's already there. - (unless (member form (cdr elt)) - (nconc elt (purecopy (list form)))) - ;; Is there an already loaded file whose name (or `provide' name) ;; matches FILE? - (if (if (stringp file) - (load-history-filename-element regexp-or-feature) - (featurep file)) - (eval form)))) + (prog1 (if (if (stringp file) + (load-history-filename-element regexp-or-feature) + (featurep file)) + (eval form)) + (when (symbolp regexp-or-feature) + ;; For features, the after-load-alist elements get run when `provide' is + ;; called rather than at the end of the file. So add an indirection to + ;; make sure that `form' is really run "after-load" in case the provide + ;; call happens early. + (setq form + `(when load-file-name + (let ((fun (make-symbol "eval-after-load-helper"))) + (fset fun `(lambda (file) + (if (not (equal file ',load-file-name)) + nil + (remove-hook 'after-load-functions ',fun) + ,',form))) + (add-hook 'after-load-functions fun))))) + ;; Add FORM to the element unless it's already there. + (unless (member form (cdr elt)) + (nconc elt (purecopy (list form))))))) (defvar after-load-functions nil "Special hook run after loading a file. ------------------------------------------------------------ revno: 106343 committer: Glenn Morris branch nick: trunk timestamp: Wed 2011-11-09 21:36:48 -0500 message: Always use svn --non-interactive in vc-svn.el (bug#9993) * lisp/vc/vc-svn.el (vc-svn-create-repo, vc-svn-modify-change-comment): Call svn via vc-svn-command rather than vc-do-command. (vc-svn-command): Add --non-interactive. (vc-svn-update, vc-svn-merge-news): No need for --non-interactive. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-11-10 02:17:45 +0000 +++ lisp/ChangeLog 2011-11-10 02:36:48 +0000 @@ -1,5 +1,10 @@ 2011-11-10 Glenn Morris + * vc/vc-svn.el (vc-svn-create-repo, vc-svn-modify-change-comment): + Call svn via vc-svn-command rather than vc-do-command. + (vc-svn-command): Add --non-interactive. (Bug#9993) + (vc-svn-update, vc-svn-merge-news): No need for --non-interactive. + * emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions): Add toggle-read-only. (Bug#7292) * files.el (toggle-read-only): Mention that it should only === modified file 'lisp/vc/vc-svn.el' --- lisp/vc/vc-svn.el 2011-03-03 07:27:52 +0000 +++ lisp/vc/vc-svn.el 2011-11-10 02:36:48 +0000 @@ -263,8 +263,8 @@ (defun vc-svn-create-repo () "Create a new SVN repository." (vc-do-command "*vc*" 0 "svnadmin" '("create" "SVN")) - (vc-do-command "*vc*" 0 vc-svn-program '(".") - "checkout" (concat "file://" default-directory "SVN"))) + (vc-svn-command "*vc*" 0 "." "checkout" + (concat "file://" default-directory "SVN"))) (defun vc-svn-register (files &optional rev comment) "Register FILES into the SVN version-control system. @@ -334,7 +334,6 @@ ;; Check out a particular version (or recreate the file). (vc-file-setprop file 'vc-working-revision nil) (apply 'vc-svn-command nil 0 file - "--non-interactive" ; bug#4280 "update" (cond ((null rev) "-rBASE") @@ -373,7 +372,7 @@ (message "Merging changes into %s..." file) ;; (vc-file-setprop file 'vc-working-revision nil) (vc-file-setprop file 'vc-checkout-time 0) - (vc-svn-command nil 0 file "--non-interactive" "update") ; see bug#7152 + (vc-svn-command nil 0 file "update") ;; Analyze the merge result reported by SVN, and set ;; file properties accordingly. (with-current-buffer (get-buffer "*vc*") @@ -425,7 +424,7 @@ or svn+ssh://." (let (tempfile host remotefile directory fileurl-p) (with-temp-buffer - (vc-do-command (current-buffer) 0 vc-svn-program nil "info") + (vc-svn-command (current-buffer) 0 nil "info") (goto-char (point-min)) (unless (re-search-forward "Repository Root: \\(file://\\(/.*\\)\\)\\|\\(svn\\+ssh://\\([^/]+\\)\\(/.*\\)\\)" nil t) (error "Repository information is unavailable")) @@ -581,12 +580,19 @@ (defun vc-svn-command (buffer okstatus file-or-list &rest flags) "A wrapper around `vc-do-command' for use in vc-svn.el. The difference to vc-do-command is that this function always invokes `svn', -and that it passes `vc-svn-global-switches' to it before FLAGS." +and that it passes \"--non-interactive\" and `vc-svn-global-switches' to +it before FLAGS." + ;; Might be nice if svn defaulted to non-interactive if stdin not tty. + ;; http://svn.haxx.se/dev/archive-2008-05/0762.shtml + ;; http://svn.haxx.se/dev/archive-2009-04/0094.shtml + ;; Maybe newer ones do? + (or (member "--non-interactive" + (setq flags (if (stringp vc-svn-global-switches) + (cons vc-svn-global-switches flags) + (append vc-svn-global-switches flags)))) + (setq flags (cons "--non-interactive" flags))) (apply 'vc-do-command (or buffer "*vc*") okstatus vc-svn-program file-or-list - (if (stringp vc-svn-global-switches) - (cons vc-svn-global-switches flags) - (append vc-svn-global-switches - flags)))) + flags)) (defun vc-svn-repository-hostname (dirname) (with-temp-buffer ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.