Subject: bug#45052: closed (Re: bug#45052: 27.1; GDB completion moves point)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 14 Dec 2020 18:11:02 +0000

Your bug report

#45052: 27.1; GDB completion moves point

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
45052: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=45052
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#45052: 27.1; GDB completion moves point
From: Eli Zaretskii <[email-masked]>
To: "Philip K." <[email-masked]>
Cc: [email-masked]
Date: Mon, 14 Dec 2020 20:10:40 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: "Philip K." <[email-masked]>
> Cc: [email-masked]
> Date: Mon, 14 Dec 2020 09:23:34 +0100
> 
> > Thanks.  If you use gdb-mi.el a lot, how about if you run with this
> > change for a week and report back if you saw any adverse effects?
> > Then I'll install this if no problems are uncovered.
> 
> Just wanted to report back, that after using the patch for a bit, at
> least in my case, there were no unintended consequences. Completion
> behaved just the way I would have expected it to from other modes.

Thanks, I've now installed the change on the emacs-27 branch, and I'm
marking this bug done.

Subject: 27.1; GDB completion moves point
From: "Philip K." <[email-masked]>
To: [email-masked]
Date: Sat, 05 Dec 2020 13:10:46 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

When I'm in GDB, and I try to invoke completion, the completion
mechanism might move the point, and ultimately insert the completion at
the wrong place. This issue only occurs when the point is currently in
the last few lines of the window, so that when the completion pop-up
appears, it is moved, while the buffer stays in the same place.

One way to circumvent this problem is to use the mouse to select the
completion.

I've tested it with the default completion framework, but remember that
the same issue also existed with other completion frameworks such as
ivy.

Steps to reproduce  in emacs -Q (also tested on the master branch):

1. M-x gdb
2. Press enter a few times, so that the buffer can't fit into the window
3. Ensure that the point is in the last few lines (C-l)
4. Enter "l" and then press M-tab.

The point should now have been moved. This is not expected, and not seen
any other mode.

In GNU Emacs 27.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.22, cairo version 1.16.0)
 of 2020-08-21 built on buildhw-x86-03.iad2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.12009000
System Description: Fedora 33 (Workstation Edition)

Recent messages:
Quit [2 times]
Mark set
user-error: No window right from selected window
M-RET is undefined
Saving file /home/phi/doc/uni/cs/uebung/assignment2/lwt/lwt.h...
Wrote /home/phi/doc/uni/cs/uebung/assignment2/lwt/lwt.h
Saving file /home/phi/doc/uni/cs/uebung/assignment2/lwt/lwt.h...
Wrote /home/phi/doc/uni/cs/uebung/assignment2/lwt/lwt.h
Saving file /home/phi/doc/uni/cs/uebung/assignment2/lwt/lwt.h...
Wrote /home/phi/doc/uni/cs/uebung/assignment2/lwt/lwt.h

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets --with-modules --with-harfbuzz
 --with-cairo --with-json build_alias=x86_64-redhat-linux-gnu
 host_alias=x86_64-redhat-linux-gnu CC=gcc 'CFLAGS=-DMAIL_USE_LOCKF -O2
 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches
 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
 -Wp,-D_GLIBCXX_ASSERTIONS
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS XWIDGETS
LIBSYSTEMD JSON PDUMPER GMP

Important settings:
  value of $LC_ALL: en_US.UTF-8
  value of $LC_MONETARY: en_GB.UTF-8
  value of $LC_NUMERIC: en_GB.UTF-8
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: C/*l

Minor modes in effect:
  hexl-follow-ascii: t
  editorconfig-mode: t
  TeX-PDF-mode: t
  global-magit-file-mode: t
  magit-file-mode: t
  magit-auto-revert-mode: t
  auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  erc-list-mode: t
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-networks-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  flymake-mode: t
  yas-minor-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  display-time-mode: t
  electric-pair-mode: t
  recentf-mode: t
  save-place-mode: t
  savehist-mode: t
  show-paren-mode: t
  winner-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
/home/phi/.emacs.d/elpa/0x0-0.4.1/0x0 hides /home/phi/.emacs.d/lisp/active/0x0-emacs/0x0
/home/phi/.emacs.d/lisp/active/clang-capf/clang-capf hides /home/phi/.emacs.d/elpa/clang-capf-1.2.0/clang-capf
/home/phi/.emacs.d/elpa/jsonrpc-1.0.14/jsonrpc hides /usr/share/emacs/27.1/lisp/jsonrpc
/home/phi/.emacs.d/elpa/flymake-1.0.9/flymake hides /usr/share/emacs/27.1/lisp/progmodes/flymake
/home/phi/.emacs.d/elpa/project-0.5.2/project hides /usr/share/emacs/27.1/lisp/progmodes/project
/home/phi/.emacs.d/elpa/xref-1.0.3/xref hides /usr/share/emacs/27.1/lisp/progmodes/xref

Features:
(shadow emacsbug misc skeleton dos-w32 find-cmd eglot array jsonrpc
follow minibuf-eldef icomplete completion rfc2368 two-column timezone
rmailsort rmailsum loadhist misterioso-theme cus-theme
editorconfig-conf-mode conf-mode asm-mode gnus-fun lpr calc-stuff
calc-vec calc-mtx calc-arith calc-aent calccomp calc-incom calc-undo
find-dired filecache mailalias nroff-mode tramp-cmds python descr-text
elfeed-link whitespace term/xterm xterm calc-comb animate org-clock
mhtml-mode css-mode eww mm-url js sgml-mode htmlfontify
htmlfontify-loaddefs presentation tar-mode ert ewoc face-remap autoload
repeat tramp-cache tramp-sh apropos hideshow flow-fill mm-archive smiley
gnus-cite gnus-async gnus-bcklg gnus-ml nndraft nnmh nnfolder nnnil
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
mm-uu mml2015 mm-view mml-smime smime dig nntp gnus-cache rmailout
latexenc sp-tutor tramp tramp-loaddefs trampver tramp-integration
tramp-compat ls-lisp view ibuf-ext ibuffer ibuffer-loaddefs calc-yank
calc-misc calc-alg calc-ext cc-awk wdired magit-ediff ediff ediff-merg
ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util
markdown-mode prolog align perl-mode cperl-mode files-x url-cache
elfeed-show elfeed-search magit-bookmark bookmark elfeed-csv elfeed
elfeed-curl elfeed-log elfeed-db elfeed-lib url-queue xml-query ox-org
ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn
nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar
ox-html table ox-ascii ox-publish ox org-colview hi-lock dabbrev
vc-annotate sh-script smie executable sort iso-transl make-mode
help-at-pt ruler-mode hl-line hexl image-file rect vc-mtn vc-hg edebug
reposition calc-menu calc calc-loaddefs calc-macs gdb-mi bindat gud
eieio-opt speedbar sb-image ezimage dframe editorconfig-core
editorconfig-core-handle editorconfig-fnmatch editorconfig clang-capf
windmove tabify man pcmpl-unix preview tex-buf font-latex latex
latex-flymake tex-ispell tex-style tex dbus texmathp tex-mode cal-china
lunar solar cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs
diary-lib diary-loaddefs org-duration cal-iso org-element avl-tree
ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum shr svg dom
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source
utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range
gnus-win ol-docview doc-view ol-bibtex bibtex ol-bbdb ol-w3m org-agenda
org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote
org-src ob-comint org-pcomplete org-list org-faces org-entities
org-version ob-emacs-lisp ob-core ob-eval org-table org-keys
org-loaddefs cal-menu calendar cal-loaddefs ol org-compat org-macs pulse
log-view jka-compr avy quail color qp cl-print debug backtrace find-func
help-fns radix-tree ffap 0x0 mail-extr rmailmm vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs slime-hyperdoc slime-asdf grep slime-quicklisp
slime-fancy slime-indentation slime-cl-indent cl-indent
slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations bridge
slime-macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy
slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl elp cl slime-parse slime
etags fileloop generator xref project arc-mode archive-mode noutline
outline hyperspec vc vc-dispatcher flymake-cc macrostep-c cmacexp
macrostep cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs magit-extras time-stamp bug-reference flyspell
ispell magit-submodule magit-obsolete magit-blame magit-stash
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-collab ghub-graphql treepy
gsexp ghub url-http url-gw url-auth url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util mailcap
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log which-func imenu magit-diff smerge-mode diff
magit-core magit-autorevert autorevert filenotify magit-process
magit-margin magit-mode git-commit magit-git magit-section magit-utils
magit-popup crm log-edit message rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader pcvs-util
add-log with-editor async-bytecomp advice async server dash char-fold
misearch multi-isearch shell-command+ eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-groups esh-util term disp-table
ehelp dired-aux mule-util vc-fossil vc-git diff-mode easy-mmode
image-mode exif shell gnutls network-stream puny nsm rmc erc-list
erc-menu erc-join erc-ring erc-networks erc-pcomplete pcomplete
erc-track erc-match erc-button erc-fill erc-stamp erc-netsplit epa-file
epa derived epg epg-config auth-source-pass paredit checkdoc lisp-mnt
flymake-proc flymake warnings yasnippet-classic-snippets cl-extra
yasnippet help-mode init rx pcase dired-x dired dired-loaddefs
erc-goodies erc thingatpt pp erc-loaddefs erc-backend erc-compat
format-spec time sendmail hippie-exp elec-pair recentf tree-widget
saveplace savehist paren winner gnus nnheader gnus-util rmail
rmail-loaddefs rfc2047 rfc2045 ietf-drums text-property-search time-date
mail-utils mm-util mail-prsvr edmacro kmacro compile comint ansi-color
ring cus-edit cus-start cus-load wid-edit clang-rename
clang-include-fixer let-alist clang-format xml tex-site finder-inf
slime-autoloads info package easymenu browse-url url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting xwidget-internal cairo move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 1666556 659185)
 (symbols 48 84722 676)
 (strings 32 382880 92226)
 (string-bytes 1 15480523)
 (vectors 16 146107)
 (vector-slots 8 3044772 410910)
 (floats 8 2738 3803)
 (intervals 56 99725 9328)
 (buffers 1000 899))

-- 
	Philip K.