unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range
@ 2022-06-08 11:44 Antoine Kalmbach
  2022-06-08 12:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-06-08 14:02 ` Eli Zaretskii
  0 siblings, 2 replies; 7+ messages in thread
From: Antoine Kalmbach @ 2022-06-08 11:44 UTC (permalink / raw)
  To: 55847


When working with a narrowed buffer, line-number-at-pos complains
that the passed position parameter is out of range.

I believe this occurs because in fns.c there is check as follows:

   if (pos < BEGV || pos > ZV)

This works just fine when the buffer isn't narrowed, but narrowing
affects BEGV. Suppose the buffer is narrowed, and you want to get the
line number for position x where x is before where the current narrowing
begins, passing (line-number-at-pos x t) now reports an error, because
the correct thing to check is BEGV_BYTE, not BEGV.

I think the change is as simple as checking pos < start, instead of pos
< BEGV.

The easiest way to reproduce is to make a buffer, narrow to a part of
it, then evaluate (line-number-at-pos x t) where x is smaller than the
absolute position of the narrowing, i.e. X < BEGV, but on the other hand
x >= BEGV_BYTE.


In GNU Emacs 29.0.50 (build 2, x86_64-apple-darwin19.6.0, NS appkit-1894.60 Version 10.15.7 (Build 19H1824))
 of 2022-06-06 built on qfinm256.local
Repository revision: f5fadbbfec8c8f5d66fe0169c92096743102990e
Repository branch: master
Windowing system distributor 'Apple', version 10.3.1894
System Description:  Mac OS X 10.15.7

Configured using:
 'configure --with-native-compilation --with-json --with-imagemagick
 --with-mailutils'

Configured features:
ACL GIF GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES
NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP XIM ZLIB

Important settings:
  locale-coding-system: utf-8

Major mode: Lisp Interaction

Minor modes in effect:
  counsel-mode: t
  projectile-mode: t
  persp-mode: t
  ivy-mode: t
  eros-mode: t
  paredit-mode: t
  company-mode: t
  outline-minor-mode: t
  rainbow-mode: t
  rainbow-delimiters-mode: t
  flymake-mode: t
  eldoc-box-hover-at-point-mode: t
  bug-reference-prog-mode: t
  hl-todo-mode: t
  global-git-commit-mode: t
  shell-command-with-editor-mode: t
  shell-dirtrack-mode: t
  savehist-mode: t
  override-global-mode: t
  display-time-mode: t
  global-tab-line-mode: t
  tab-line-mode: t
  global-hl-line-mode: t
  global-auto-revert-mode: t
  winner-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/Users/akalmbach/.emacs.d/elpa/modus-operandi-theme-0.13.2/modus-operandi-theme hides /Users/akalmbach/.emacs.d/elpa/modus-themes-20220605.1714/modus-operandi-theme
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-comint hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-comint
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-exp hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-exp
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-ctags hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-ctags
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-emacs-lisp hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-emacs-lisp
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc hides /Users/akalmbach/.emacs.d/elpa/org-20210929/oc
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-texinfo hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-texinfo
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-irc hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-irc
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-doi hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-doi
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-refile hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-refile
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-version hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-version
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-num hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-num
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-mhe hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-mhe
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-shell hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-shell
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-attach hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-attach
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-C hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-C
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-macs hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-macs
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-entities hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-entities
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-dot hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-dot
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-sql hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-sql
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-eww hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-eww
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-datetree hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-datetree
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-macro hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-macro
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-eval hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-eval
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-haskell hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-haskell
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-org hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-org
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-rmail hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-rmail
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-awk hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-awk
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-groovy hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-groovy
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-icalendar hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-icalendar
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-octave hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-octave
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-scheme hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-scheme
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-mobile hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-mobile
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-processing hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-processing
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc-biblatex hides /Users/akalmbach/.emacs.d/elpa/org-20210929/oc-biblatex
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc-csl hides /Users/akalmbach/.emacs.d/elpa/org-20210929/oc-csl
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-colview hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-colview
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-R hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-R
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-table hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-table
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-html hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-html
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-fortran hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-fortran
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-plantuml hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-plantuml
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-docview hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-docview
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-perl hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-perl
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-sqlite hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-sqlite
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc-basic hides /Users/akalmbach/.emacs.d/elpa/org-20210929/oc-basic
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-sed hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-sed
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-ditaa hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-ditaa
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-ruby hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-ruby
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-habit hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-habit
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-gnus hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-gnus
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-screen hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-screen
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-mouse hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-mouse
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-css hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-css
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-inlinetask hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-inlinetask
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-lisp hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-lisp
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-eshell hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-eshell
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-pcomplete hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-pcomplete
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-lint hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-lint
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-id hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-id
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-capture hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-capture
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-sass hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-sass
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-tangle hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-tangle
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-calc hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-calc
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-java hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-java
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-compat hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-compat
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-attach-git hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-attach-git
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-beamer hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-beamer
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-protocol hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-protocol
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-element hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-element
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-lob hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-lob
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-tempo hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-tempo
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-python hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-python
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-latex hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-latex
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-w3m hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-w3m
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-agenda hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-agenda
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-ocaml hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-ocaml
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-ref hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-ref
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-julia hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-julia
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-lilypond hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-lilypond
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-table hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-table
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-clojure hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-clojure
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-indent hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-indent
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-plot hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-plot
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-latex hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-latex
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-src hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-src
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-duration hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-duration
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-makefile hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-makefile
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-info hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-info
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-clock hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-clock
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-forth hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-forth
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-odt hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-odt
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-publish hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-publish
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-archive hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-archive
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-org hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-org
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-lua hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-lua
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-keys hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-keys
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-eshell hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-eshell
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-faces hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-faces
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-man hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-man
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-list hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-list
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-md hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-md
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-goto hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-goto
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-bbdb hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-bbdb
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-loaddefs hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-loaddefs
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-bibtex hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ol-bibtex
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-koma-letter hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-koma-letter
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-ascii hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox-ascii
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-matlab hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-matlab
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ox
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-timer hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-timer
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc-natbib hides /Users/akalmbach/.emacs.d/elpa/org-20210929/oc-natbib
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-core hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-core
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-feed hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-feed
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-gnuplot hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-gnuplot
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-js hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-js
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-footnote hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-footnote
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-maxima hides /Users/akalmbach/.emacs.d/elpa/org-20210929/ob-maxima
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-install hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-install
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-crypt hides /Users/akalmbach/.emacs.d/elpa/org-20210929/org-crypt
/Users/akalmbach/.emacs.d/elpa/transient-20220527.2213/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-exp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-exp
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-emacs-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-css hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-css
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-lob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lob
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-irc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-irc
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-forth hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-forth
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-macs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macs
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-version hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-version
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-scheme hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-scheme
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-C hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-C
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-capture hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-capture
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-ref hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ref
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-clojure hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-clojure
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-mouse hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mouse
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-ctags hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-ctags
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-entities hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-entities
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-archive hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-archive
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-screen hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-screen
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-bibtex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-bibtex
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-haskell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-haskell
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-table
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-eww hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-eww
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-man hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-man
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-org
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-num hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-num
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-plot hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-plot
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-rmail hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-rmail
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-awk hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-awk
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-groovy hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-groovy
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-octave hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-octave
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-faces hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-faces
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc-biblatex hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-biblatex
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-colview hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-colview
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-R hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-R
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-refile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-refile
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-timer hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-timer
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-mobile hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-mobile
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-fortran hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-fortran
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-shell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-shell
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-perl hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-perl
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-sqlite hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc-basic hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-basic
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-sed hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sed
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-list hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-list
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-ruby hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ruby
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-eval hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eval
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-habit hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-habit
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-clock hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-clock
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-goto hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-goto
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-html hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-html
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-src hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-src
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-lisp hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lisp
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-eshell
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-ditaa hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-pcomplete hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-lint hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-lint
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-latex
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-sass hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sass
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-tangle hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-tangle
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-calc hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-calc
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-java hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-java
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-icalendar hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-icalendar
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-mhe hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-mhe
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-attach-git hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach-git
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-md hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-md
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-beamer hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-beamer
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-element hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-element
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc-natbib hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-natbib
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-protocol hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-protocol
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-gnuplot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-tempo hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-tempo
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-latex hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-latex
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-w3m hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-w3m
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-id hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-id
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-man hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-man
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-doi hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-doi
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-feed hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-feed
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-julia hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-julia
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-lua hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lua
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-table hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-table
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-ocaml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/oc-csl hides /Applications/Emacs.app/Contents/Resources/lisp/org/oc-csl
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-gnus hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-gnus
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-indent hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-indent
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-lilypond hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-matlab hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-matlab
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-datetree hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-datetree
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-docview hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-docview
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-python hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-python
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-makefile hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-makefile
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-duration hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-duration
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-agenda hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-agenda
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-dot hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-dot
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-js hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-js
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-publish hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-publish
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-inlinetask hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-org hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-org
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-keys hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-keys
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-core hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-core
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-compat hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-compat
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-odt hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-odt
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-info hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-info
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-plantuml hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-eshell hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-eshell
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-ascii hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-ascii
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-loaddefs hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-loaddefs
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-koma-letter hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-koma-letter
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-maxima hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-maxima
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org hides /Applications/Emacs.app/Contents/Resources/lisp/org/org
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ol-bbdb hides /Applications/Emacs.app/Contents/Resources/lisp/org/ol-bbdb
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-macro hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-macro
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-sql hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-sql
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-attach hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-attach
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-processing hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-processing
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ox-texinfo hides /Applications/Emacs.app/Contents/Resources/lisp/org/ox-texinfo
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-crypt hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-crypt
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-footnote hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-footnote
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/org-install hides /Applications/Emacs.app/Contents/Resources/lisp/org/org-install
/Users/akalmbach/.emacs.d/elpa/org-plus-contrib-20210929/ob-comint hides /Applications/Emacs.app/Contents/Resources/lisp/org/ob-comint

Features:
(shadow sort flyspell ispell mail-extr emacsbug counsel xdg swiper
persp-projectile projectile grep ibuf-ext ibuffer ibuffer-loaddefs
perspective ivy-hydra hydra lv ivy-avy avy ivy delsel ivy-faces
ivy-overlay colir smart-mode-line rich-minority smex ido eros paredit
company-oddmuse company-keywords company-etags etags fileloop generator
company-gtags company-dabbrev-code company-dabbrev company-files
company-clang company-capf company-cmake company-semantic
company-template company-bbdb company checkdoc lisp-mnt noutline outline
rainbow-mode color rainbow-delimiters eldoc-box eglot array flymake-proc
flymake compile jsonrpc ert pp ewoc debug backtrace find-func vc-mtn
vc-hg vc-git vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view vc
vc-dispatcher bug-reference hl-todo monroe-lua-complete monroe lua-mode
advice diminish fennel-mode xref thingatpt inf-lisp magit-extras
magit-submodule magit-obsolete magit-popup magit-blame magit-stash
magit-reflog 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-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
which-func imenu magit-diff smerge-mode diff diff-mode git-commit
log-edit message sendmail yank-media rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util
text-property-search time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log magit-core
magit-autorevert magit-margin magit-transient magit-process with-editor
shell pcomplete comint server ansi-color magit-mode transient magit-git
magit-base magit-section format-spec crm dash compat-27 compat-26 compat
project modus-operandi-theme modus-themes exec-path-from-shell edmacro
kmacro savehist comp comp-cstr warnings rx cl-extra help-mode pcase
use-package use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core finder-inf
clj-refactor-autoloads cider-autoloads
clojure-mode-extra-font-locking-autoloads clojure-mode-autoloads
company-quickhelp-autoloads company-autoloads consult-eglot-autoloads
consult-autoloads counsel-projectile-autoloads counsel-autoloads
debbugs-autoloads diff-hl-autoloads diminish-autoloads
edit-indirect-autoloads eglot-autoloads eldoc-box-autoloads
emacsql-sqlite-autoloads emacsql-autoloads flycheck-autoloads
geiser-autoloads ggtags-autoloads go-mode-autoloads
google-c-style-autoloads graphviz-dot-mode-autoloads hl-todo-autoloads
ivy-avy-autoloads ivy-hydra-autoloads js2-mode-autoloads
keycast-autoloads kubernetes-autoloads lsp-java-autoloads
lsp-metals-autoloads dap-mode-autoloads lsp-python-ms-autoloads
lsp-treemacs-autoloads lsp-ui-autoloads lsp-mode-autoloads f-autoloads
magit-autoloads git-commit-autoloads magit-section-autoloads
markdown-mode-autoloads modus-themes-autoloads
multiple-cursors-autoloads org-journal-autoloads
org-plus-contrib-autoloads ox-asciidoc-autoloads org-autoloads
parseedn-autoloads parseclj-autoloads perspective-autoloads
projectile-autoloads rainbow-mode-autoloads request-autoloads
restclient-autoloads rust-mode-autoloads sbt-mode-autoloads
sly-asdf-autoloads popup-autoloads sly-autoloads
smart-mode-line-autoloads ssh-config-mode-autoloads swiper-autoloads
ivy-autoloads transient-autoloads tree-sitter-langs-autoloads
tree-sitter-autoloads treemacs-autoloads cfrs-autoloads
posframe-autoloads hydra-autoloads pfuture-autoloads dash-autoloads
tsc-autoloads typescript-mode-autoloads web-mode-autoloads
with-editor-autoloads info compat-autoloads yaml-mode-autoloads
yasnippet-snippets-autoloads zig-mode-autoloads package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs eieio-loaddefs password-cache json map url-vars
time tab-line seq gv subr-x byte-opt bytecomp byte-compile cconv hl-line
autorevert filenotify cl-loaddefs cl-lib winner ring iso-transl tooltip
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util
term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice simple cl-generic indonesian philippine 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 emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads kqueue
cocoa ns lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 676149 293457)
 (symbols 48 34879 85)
 (strings 32 175254 57742)
 (string-bytes 1 5402943)
 (vectors 16 64608)
 (vector-slots 8 1138138 588157)
 (floats 8 307 1089)
 (intervals 56 1751 374)
 (buffers 992 15))

-- 
Antoine Kalmbach





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range
  2022-06-08 11:44 bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range Antoine Kalmbach
@ 2022-06-08 12:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-06-08 14:02 ` Eli Zaretskii
  1 sibling, 0 replies; 7+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-06-08 12:52 UTC (permalink / raw)
  To: Antoine Kalmbach; +Cc: 55847

Antoine Kalmbach <ane@iki.fi> writes:

> When working with a narrowed buffer, line-number-at-pos complains
> that the passed position parameter is out of range.
>
> I believe this occurs because in fns.c there is check as follows:
>
>    if (pos < BEGV || pos > ZV)
>
> This works just fine when the buffer isn't narrowed, but narrowing
> affects BEGV. Suppose the buffer is narrowed, and you want to get the
> line number for position x where x is before where the current narrowing
> begins, passing (line-number-at-pos x t) now reports an error

That's intentional behavior.  Very rarely is code allowed to access
buffer contents outside the accessible portion of the buffer, and
line-number-at-pos is not such a piece of code.

> because the correct thing to check is BEGV_BYTE, not BEGV.
> I think the change is as simple as checking pos < start, instead of pos
> < BEGV.
>
> The easiest way to reproduce is to make a buffer, narrow to a part of
> it, then evaluate (line-number-at-pos x t) where x is smaller than the
> absolute position of the narrowing, i.e. X < BEGV, but on the other hand
> x >= BEGV_BYTE.

BEGV_BYTE is the byte position of BEGV, but narrow-to-region and
line-number-at-pos operate on character positions, so comparing pos with
BEGV_BYTE doesn't make sense.  We don't want to allow code to access
buffer contents outside the accessible region, and besides, which lines
would they be on?  They are not visible, and there is no "starting
point" to calculate from.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range
  2022-06-08 11:44 bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range Antoine Kalmbach
  2022-06-08 12:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-06-08 14:02 ` Eli Zaretskii
  2022-06-09  7:44   ` Antoine Kalmbach
  1 sibling, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2022-06-08 14:02 UTC (permalink / raw)
  To: Antoine Kalmbach; +Cc: 55847

tags 55847 notabug
thanks

> From: Antoine Kalmbach <ane@iki.fi>
> Date: Wed, 08 Jun 2022 14:44:10 +0300
> 
> 
> When working with a narrowed buffer, line-number-at-pos complains
> that the passed position parameter is out of range.
> 
> I believe this occurs because in fns.c there is check as follows:
> 
>    if (pos < BEGV || pos > ZV)

Yes, and that's by design.  With very rare exceptions, Emacs always
behaves as if text outside of the narrowed region doesn't exist.

This is not a bug.

> This works just fine when the buffer isn't narrowed, but narrowing
> affects BEGV. Suppose the buffer is narrowed, and you want to get the
> line number for position x where x is before where the current narrowing
> begins, passing (line-number-at-pos x t) now reports an error, because
> the correct thing to check is BEGV_BYTE, not BEGV.

You mean BEG, not BEGV_BYTE, I believe.  BEGV_BYTE is the _byte_
position corresponding to BEGV (which is a character position).

Anyway, if you want to get line-number-at-pos outside of the
restriction, you can simply do

  (save-restriction
    (widen)
    (line-number-at-pos POS))

This is what we do in Emacs if we want to access position outside of
the narrowed region.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range
  2022-06-08 14:02 ` Eli Zaretskii
@ 2022-06-09  7:44   ` Antoine Kalmbach
  2022-06-09 10:46     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Antoine Kalmbach @ 2022-06-09  7:44 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 55847

Eli Zaretskii <eliz@gnu.org> writes:

>> When working with a narrowed buffer, line-number-at-pos complains
>> that the passed position parameter is out of range.
>> 
>> I believe this occurs because in fns.c there is check as follows:
>> 
>>    if (pos < BEGV || pos > ZV)
>
> Yes, and that's by design.  With very rare exceptions, Emacs always
> behaves as if text outside of the narrowed region doesn't exist.
>
> This is not a bug.
>

Hmm.  The reason I reported a bug is that the pre-28.1 version of
line-number-at-pos, which was in Lisp, did in fact work when the buffer
was narrowed. What is more, the docstring states that:

   If the buffer is narrowed, the return value by default counts the lines
   from the beginning of the accessible portion of the buffer.  But if the
   second optional argument ABSOLUTE is non-nil, the value counts the lines
   from the absolute start of the buffer, disregarding the narrowing.

Hence I would assume that if absolute is non-nil the call to
line-number-at-pos should work even if the buffer is narrowed, instead
of throwing an error.

> You mean BEG, not BEGV_BYTE, I believe.  BEGV_BYTE is the _byte_
> position corresponding to BEGV (which is a character position).

Right, yes. The actual beginning of the buffer, 1.

> Anyway, if you want to get line-number-at-pos outside of the
> restriction, you can simply do
>
>   (save-restriction
>     (widen)
>     (line-number-at-pos POS))
>
> This is what we do in Emacs if we want to access position outside of
> the narrowed region.
>

Yes, thanks, this fixes it, it's what the Lisp version of pre-28 did
this when absolute was non-nil.

-- 
Antoine Kalmbach





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range
  2022-06-09  7:44   ` Antoine Kalmbach
@ 2022-06-09 10:46     ` Lars Ingebrigtsen
  2022-06-09 11:19       ` Antoine Kalmbach
  0 siblings, 1 reply; 7+ messages in thread
From: Lars Ingebrigtsen @ 2022-06-09 10:46 UTC (permalink / raw)
  To: Antoine Kalmbach; +Cc: Eli Zaretskii, 55847

Antoine Kalmbach <ane@iki.fi> writes:

>    If the buffer is narrowed, the return value by default counts the lines
>    from the beginning of the accessible portion of the buffer.  But if the
>    second optional argument ABSOLUTE is non-nil, the value counts the lines
>    from the absolute start of the buffer, disregarding the narrowing.
>
> Hence I would assume that if absolute is non-nil the call to
> line-number-at-pos should work even if the buffer is narrowed, instead
> of throwing an error.

This says that it's counting lines from the absolute start of the
buffer, not that it's able to report data about positions outside of the
region.  I think that worked "by accident" in the old version of the
function.

However, this is a behavioural change from the previous version of the
function, so I think I'll adjust it to work as before. 

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range
  2022-06-09 10:46     ` Lars Ingebrigtsen
@ 2022-06-09 11:19       ` Antoine Kalmbach
  2022-06-09 12:43         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 7+ messages in thread
From: Antoine Kalmbach @ 2022-06-09 11:19 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: eliz, 55847

Lars Ingebrigtsen <larsi@gnus.org> writes:

> This says that it's counting lines from the absolute start of the
> buffer, not that it's able to report data about positions outside of the
> region.  I think that worked "by accident" in the old version of the
> function.

Right, so as long as pos is within the narrowed region, but the line
number is counted from the absolute beginning of the buffer.  Well,
I would understand "disregarding narrowing" as doing an implicit
(save-restriction (widen) ...) anyway. 

-- 
Antoine Kalmbach





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range
  2022-06-09 11:19       ` Antoine Kalmbach
@ 2022-06-09 12:43         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 7+ messages in thread
From: Lars Ingebrigtsen @ 2022-06-09 12:43 UTC (permalink / raw)
  To: Antoine Kalmbach; +Cc: eliz, 55847

Antoine Kalmbach <ane@iki.fi> writes:

> Right, so as long as pos is within the narrowed region, but the line
> number is counted from the absolute beginning of the buffer.  Well,
> I would understand "disregarding narrowing" as doing an implicit
> (save-restriction (widen) ...) anyway. 

It's slightly ambiguous.

I've now changed the function to work in Emacs 29 as in earlier versions.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-06-09 12:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-08 11:44 bug#55847: 29.0.50; line-number-at-pos ignores absolute parameter when checking position range Antoine Kalmbach
2022-06-08 12:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-06-08 14:02 ` Eli Zaretskii
2022-06-09  7:44   ` Antoine Kalmbach
2022-06-09 10:46     ` Lars Ingebrigtsen
2022-06-09 11:19       ` Antoine Kalmbach
2022-06-09 12:43         ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).