Original message further below and the temporary patch I'm running with is shown marked with triple pound sign ### below this new commentary. The issue was reproduced even when running a bare minimal configuration. I was wrong when reporting that I also get the issue in package menu buffers. However the difference apparently is that in package menu, there is a *small margin* of space chars preceding the first tabulated-list field and I believe the emacspeak code assumes this margin, which I do not have in at least buffer-menu and process-list buffers. For those, without margin, and probably others, the explicit move to the noted *col* number field ends up puting you 1 field beyond where the original position was before the move. The hack to work around this involves a test for the tabulated-list property being seen in the new beginning of line position *before* advancing back to col. If the property is seen, then we advance by one field less than col, else col as originally noted. I do not bet that this is an elegant fix but it resolves the issue for me at present. I did also check to see that on my emacs running in a graphical Mac window, there is still no left margin before the first field with larger font sizes, the kind that result in horizontal split when invoking buffer-menu, not the usual vertical split that I get. Patch below adds only the if/else logic to conditionally subtract one from the advance-to field position. ### master:lisp$ git diff -U2 diff --git a/lisp/emacspeak-tabulated-list.el b/lisp/emacspeak-tabulated-list.el index f7f1ac1c1..d08dc22bb 100644 --- a/lisp/emacspeak-tabulated-list.el +++ b/lisp/emacspeak-tabulated-list.el @@ -102,5 +102,5 @@ :test #'string= :key #'car))) (forward-line 1) - (tabulated-list-next-column col) + (tabulated-list-next-column (- col (if (get-text-property (point) 'tabulated-list-column-name) 1 0))) (when-let ((goal (next-single-property-change (point) 'tabulated-list-column-name))) @@ -117,5 +117,5 @@ :test #'string= :key #'car))) (forward-line -1) - (tabulated-list-next-column col) + (tabulated-list-next-column (- col (if (get-text-property (point) 'tabulated-list-column-name) 1 0))) (when-let ((goal (next-single-property-change (point) 'tabulated-list-column-name))) master:lisp$ Thx! Raman, et al; Curious if anyone else sees this before I delve in. Emacspeak HEAD as of today, and also from the prior June 2nd 2024 build that I was running. My emacs is 29.2 Macport emacs-mac from homebrew. Arrowing up/down in buffer menu, package menu, process list...etc. results in the cursor and spoken field being 1+ whatever field I was on before the move. Thus, an immediate left arrow right after moving up or down is required to get back to the original column. I observed the strangeness also after restarting emacs with an init.el and custom.el as stripped down as I can get away with. A quick study of emacspeak-tabulated-list.el doesn't reveal what I might obviously explore next. I am assuming the observed behavior is *not* intentional, but please advise. Thx!
|Full archive May 1995 - present by Year|Search the archive|
If you have questions about this archive or had problems using it, please contact us.