commit 3785fe52e4692ffef14c0a1e50361c22d66fabe8 (HEAD, refs/remotes/origin/master) Author: Jim Porter Date: Fri Dec 9 22:56:24 2022 -0800 ; Fix a failure when running server-tests via the command line * test/lisp/server-tests.el (server-tests/server-force-stop/keeps-frames): Delete every new frame created during the test. On some systems, 'delete-terminal' will delete the frames for us, so this ensures that if there are no new frames, nothing happens. diff --git a/test/lisp/server-tests.el b/test/lisp/server-tests.el index ebf84481c61..5ef66052c80 100644 --- a/test/lisp/server-tests.el +++ b/test/lisp/server-tests.el @@ -218,8 +218,8 @@ server-tests/server-force-stop/keeps-frames (eq (terminal-live-p terminal) t) (not (eq system-type 'windows-nt))) (delete-terminal terminal))) - ;; Delete the created frame. - (delete-frame (car (cl-set-difference (frame-list) starting-frames)) - t))) + ;; If there are any new frames remaining, delete them. + (mapc (lambda (frame) (delete-frame frame t)) + (cl-set-difference (frame-list) starting-frames)))) ;;; server-tests.el ends here commit fbbf3610fd5b27873e13cfd7702d5b0bbb15c2f8 Author: Michael Albinus Date: Fri Dec 9 16:14:56 2022 +0100 * admin/notes/git-workflow: Replace emacs-28 by emacs-29 branch. diff --git a/admin/notes/git-workflow b/admin/notes/git-workflow index 265a106bad5..d33f49a1aca 100644 --- a/admin/notes/git-workflow +++ b/admin/notes/git-workflow @@ -16,14 +16,14 @@ Initial setup Then we want to clone the repository. We normally want to have both the current master and (if there is one) the active release branch -(eg emacs-28). +(eg emacs-29). mkdir ~/emacs cd ~/emacs git clone @git.sv.gnu.org:/srv/git/emacs.git master cd master git config push.default current -git worktree add ../emacs-28 emacs-28 +git worktree add ../emacs-29 emacs-29 You now have both branches conveniently accessible, and you can do "git pull" in them once in a while to keep updated. @@ -67,7 +67,7 @@ which will look like commit 958b768a6534ae6e77a8547a56fc31b46b63710b -cd ~/emacs/emacs-28 +cd ~/emacs/emacs-29 git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b and add "Backport:" to the commit string. Then @@ -109,7 +109,7 @@ up-to-date by doing a pull. Then start Emacs with emacs -l admin/gitmerge.el -f gitmerge You'll be asked for the branch to merge, which will default to -(eg) 'origin/emacs-28', which you should accept. Merging a local tracking +(eg) 'origin/emacs-29', which you should accept. Merging a local tracking branch is discouraged, since it might not be up-to-date, or worse, contain commits from you which are not yet pushed upstream. commit cce37ac9f4c66d927d1acae75763e5fb56632783 Author: Po Lu Date: Fri Dec 9 18:28:42 2022 +0800 Improve some behavior when the X server does not trust Emacs * src/xterm.c (x_dnd_begin_drag_and_drop): Display error when Emacs is untrusted instead of hanging indefinitely. (x_focus_frame): Simply return instead of wasting time when Emacs is untrusted. diff --git a/src/xterm.c b/src/xterm.c index 4c859c46c31..872326392a6 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -12308,6 +12308,13 @@ x_dnd_begin_drag_and_drop (struct frame *f, Time time, Atom xaction, struct xi_device_t *device; #endif + if (FRAME_DISPLAY_INFO (f)->untrusted) + /* Untrusted clients cannot send messages to trusted clients or + read the window tree, so drag and drop will likely not work at + all. */ + error ("Drag-and-drop is not possible when the client is" + " not trusted by the X server."); + base = SPECPDL_INDEX (); /* Bind this here to avoid juggling bindings and SAFE_FREE in @@ -27949,12 +27956,17 @@ x_focus_frame (struct frame *f, bool noactivate) struct x_display_info *dpyinfo; Time time; + dpyinfo = FRAME_DISPLAY_INFO (f); + + if (dpyinfo->untrusted) + /* The X server ignores all input focus related requests from + untrusted clients. */ + return; + /* The code below is not reentrant wrt to dpyinfo->x_focus_frame and friends being set. */ block_input (); - dpyinfo = FRAME_DISPLAY_INFO (f); - if (FRAME_X_EMBEDDED_P (f)) /* For Xembedded frames, normally the embedder forwards key events. See XEmbed Protocol Specification at commit ab1fd3e8d3aa9fa3e5b27fe8eb6178b54bedb67b Author: Po Lu Date: Fri Dec 9 18:22:41 2022 +0800 ; * src/xterm.h: Fix minor copyedits diff --git a/src/xterm.h b/src/xterm.h index 9ce5403ef9b..a888f57823f 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -376,8 +376,8 @@ #define X_INVALID_WINDOW 0xffffffff /* Number of frames that are on this display. */ int reference_count; - /* True if we cannot communicate with the window manager because it - does not trust us. */ + /* True if this display connection cannot communicate with the + window manager because it is not trusted by the X server. */ bool untrusted; /* The Screen this connection is connected to. */