bug#39026: 27.0.50; gnus-group-decoded-name needs running gnus

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

bug#39026: 27.0.50; gnus-group-decoded-name needs running gnus

Deus Max

Before starting gnus, running:
   (gnus-group-decoded-name  group-name) ; ex: "nnimap+myserver:GroupName"

Gives the error:
   ** Eval error ***  Wrong type argument: hash-table-p, nil

Tracking this down the path:
   - (gnus-group-decoded-name group-name)
     - (gnus-group-name-charset  nil group-name)
       - (gnus-find-method-for-group group-name)
         - (gnus-group-entry group-name)

The tiny macro gnus-group-entry, simply does a:
    (gethash group-name gnus-newsrc-hashtb)

The variable gnus-newsrc-hashtb is not a hashtable when gnus is not
running. Logical, it has not been assinged yet.

To me, it seems unnecessary to require a running gnus for a simple group
name decoding. It is overkill, that loses a lot of offline functinality
and possibilities.

I believe, the problem is focused in the call to
gnus-group-entry (in gnus-find-method-for-group), as this is done to
check if  it is a "Killed or otherwise unknown group" (as per source
comments). I think that is irrelevant, for a function that started just
to decode a group name.

If this call to gnus-group-entry is removed, things work fine for both
offline and online gnus.
...and I think that would be a small improvement!



In GNU Emacs 27.0.50 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.12)
 of 2019-12-01 built on dellcorei5dias
Repository revision: 9dbb63456dbc093339ab1234118ef9adff23f9a8
Repository branch: mytemptest
Windowing system distributor 'The X.Org Foundation', version 11.0.12004000
System Description: Debian GNU/Linux bullseye/sid

Recent messages:
Auto-saving...done
Mark set
Saving file /home/deusmax/Documents/gitrepos/gnus-recent/scratch.txt...
Wrote /home/deusmax/Documents/gitrepos/gnus-recent/scratch.txt
Mark set
Quit
[No matches]
up-list: Scan error: "Unbalanced parentheses", 1845094, 1845094
comint-watch-for-password-prompt: Stack overflow in regexp matcher
Beginning of list! [2 times]

Configured using:
 'configure --with-x-toolkit=gtk3 --with-dbus --without-cairo
 --with-modules --with-file-notification=yes --with-xwidgets
 --without-selinux 'CFLAGS=-O2 -s''

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

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

Major mode: IELM

Minor modes in effect:
  recentf-mode: t
  paredit-mode: t
  helm-mode: t
  helm-autoresize-mode: t
  helm--remap-mouse-mode: t
  async-bytecomp-package-mode: t
  mode-icons-mode: t
  global-hl-line-mode: t
  shell-dirtrack-mode: t
  show-paren-mode: t
  midnight-mode: t
  electric-pair-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-tangle hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-tangle
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org hides /home/deusmax/.emacs.d/elpa/org-20191230/org
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-clock hides /home/deusmax/.emacs.d/elpa/org-20191230/org-clock
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-install hides /home/deusmax/.emacs.d/elpa/org-20191230/org-install
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-octave hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-octave
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-indent hides /home/deusmax/.emacs.d/elpa/org-20191230/org-indent
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-eshell hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-eshell
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-org hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-org
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-eshell hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-eshell
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-processing hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-processing
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-version hides /home/deusmax/.emacs.d/elpa/org-20191230/org-version
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ref hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-ref
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-num hides /home/deusmax/.emacs.d/elpa/org-20191230/org-num
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-lua hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-lua
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-sed hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-sed
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-exp hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-exp
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-docview hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-docview
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-html hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-html
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox hides /home/deusmax/.emacs.d/elpa/org-20191230/ox
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-plantuml hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-plantuml
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-faces hides /home/deusmax/.emacs.d/elpa/org-20191230/org-faces
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-sass hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-sass
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-coq hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-coq
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-mouse hides /home/deusmax/.emacs.d/elpa/org-20191230/org-mouse
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-keys hides /home/deusmax/.emacs.d/elpa/org-20191230/org-keys
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-pcomplete hides /home/deusmax/.emacs.d/elpa/org-20191230/org-pcomplete
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-latex hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-latex
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-css hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-css
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-gnuplot hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-gnuplot
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-texinfo hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-texinfo
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-crypt hides /home/deusmax/.emacs.d/elpa/org-20191230/org-crypt
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ebnf hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-ebnf
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-feed hides /home/deusmax/.emacs.d/elpa/org-20191230/org-feed
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-C hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-C
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-perl hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-perl
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-latex hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-latex
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-comint hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-comint
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-table hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-table
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-agenda hides /home/deusmax/.emacs.d/elpa/org-20191230/org-agenda
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-man hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-man
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-footnote hides /home/deusmax/.emacs.d/elpa/org-20191230/org-footnote
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-md hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-md
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ledger hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-ledger
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-abc hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-abc
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-io hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-io
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-attach-git hides /home/deusmax/.emacs.d/elpa/org-20191230/org-attach-git
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-hledger hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-hledger
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-maxima hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-maxima
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-plot hides /home/deusmax/.emacs.d/elpa/org-20191230/org-plot
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-duration hides /home/deusmax/.emacs.d/elpa/org-20191230/org-duration
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ocaml hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-ocaml
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-archive hides /home/deusmax/.emacs.d/elpa/org-20191230/org-archive
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-dot hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-dot
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-mscgen hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-mscgen
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol hides /home/deusmax/.emacs.d/elpa/org-20191230/ol
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-habit hides /home/deusmax/.emacs.d/elpa/org-20191230/org-habit
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-rmail hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-rmail
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-mhe hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-mhe
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-icalendar hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-icalendar
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-java hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-java
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-mobile hides /home/deusmax/.emacs.d/elpa/org-20191230/org-mobile
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-attach hides /home/deusmax/.emacs.d/elpa/org-20191230/org-attach
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-macro hides /home/deusmax/.emacs.d/elpa/org-20191230/org-macro
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-asymptote hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-asymptote
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-calc hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-calc
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-js hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-js
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-sql hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-sql
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-clojure hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-clojure
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-shen hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-shen
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-odt hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-odt
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-stan hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-stan
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-beamer hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-beamer
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-shell hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-shell
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob hides /home/deusmax/.emacs.d/elpa/org-20191230/ob
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-forth hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-forth
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-entities hides /home/deusmax/.emacs.d/elpa/org-20191230/org-entities
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-timer hides /home/deusmax/.emacs.d/elpa/org-20191230/org-timer
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-bibtex hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-bibtex
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-scheme hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-scheme
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-publish hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-publish
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-eval hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-eval
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-src hides /home/deusmax/.emacs.d/elpa/org-20191230/org-src
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-macs hides /home/deusmax/.emacs.d/elpa/org-20191230/org-macs
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-ascii hides /home/deusmax/.emacs.d/elpa/org-20191230/ox-ascii
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-eww hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-eww
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-core hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-core
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-inlinetask hides /home/deusmax/.emacs.d/elpa/org-20191230/org-inlinetask
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-capture hides /home/deusmax/.emacs.d/elpa/org-20191230/org-capture
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-haskell hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-haskell
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-datetree hides /home/deusmax/.emacs.d/elpa/org-20191230/org-datetree
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-groovy hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-groovy
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-emacs-lisp hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-emacs-lisp
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-protocol hides /home/deusmax/.emacs.d/elpa/org-20191230/org-protocol
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-awk hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-awk
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-lint hides /home/deusmax/.emacs.d/elpa/org-20191230/org-lint
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-lilypond hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-lilypond
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-id hides /home/deusmax/.emacs.d/elpa/org-20191230/org-id
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-picolisp hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-picolisp
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-screen hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-screen
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-fortran hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-fortran
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-bbdb hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-bbdb
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-matlab hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-matlab
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-colview hides /home/deusmax/.emacs.d/elpa/org-20191230/org-colview
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-python hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-python
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-irc hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-irc
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-compat hides /home/deusmax/.emacs.d/elpa/org-20191230/org-compat
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-lisp hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-lisp
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-list hides /home/deusmax/.emacs.d/elpa/org-20191230/org-list
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-sqlite hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-sqlite
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-J hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-J
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-gnus hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-gnus
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-makefile hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-makefile
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ditaa hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-ditaa
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-R hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-R
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-org hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-org
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-goto hides /home/deusmax/.emacs.d/elpa/org-20191230/org-goto
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-table hides /home/deusmax/.emacs.d/elpa/org-20191230/org-table
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-w3m hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-w3m
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ruby hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-ruby
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-ctags hides /home/deusmax/.emacs.d/elpa/org-20191230/org-ctags
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ol-info hides /home/deusmax/.emacs.d/elpa/org-20191230/ol-info
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-element hides /home/deusmax/.emacs.d/elpa/org-20191230/org-element
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-vala hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-vala
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-tempo hides /home/deusmax/.emacs.d/elpa/org-20191230/org-tempo
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-loaddefs hides /home/deusmax/.emacs.d/elpa/org-20191230/org-loaddefs
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-lob hides /home/deusmax/.emacs.d/elpa/org-20191230/ob-lob
/home/deusmax/.emacs.d/elpa/auth-source-pass-20191126.1242/auth-source-pass hides /usr/local/share/emacs/27.0.50/lisp/auth-source-pass
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-tangle hides /usr/local/share/emacs/27.0.50/lisp/org/ob-tangle
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-publish hides /usr/local/share/emacs/27.0.50/lisp/org/ox-publish
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org hides /usr/local/share/emacs/27.0.50/lisp/org/org
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-clock hides /usr/local/share/emacs/27.0.50/lisp/org/org-clock
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-install hides /usr/local/share/emacs/27.0.50/lisp/org/org-install
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-octave hides /usr/local/share/emacs/27.0.50/lisp/org/ob-octave
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-compat hides /usr/local/share/emacs/27.0.50/lisp/org/org-compat
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-indent hides /usr/local/share/emacs/27.0.50/lisp/org/org-indent
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-shen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-shen
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-mouse hides /usr/local/share/emacs/27.0.50/lisp/org/org-mouse
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-forth hides /usr/local/share/emacs/27.0.50/lisp/org/ob-forth
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-asymptote hides /usr/local/share/emacs/27.0.50/lisp/org/ob-asymptote
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-processing hides /usr/local/share/emacs/27.0.50/lisp/org/ob-processing
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-element hides /usr/local/share/emacs/27.0.50/lisp/org/org-element
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-icalendar hides /usr/local/share/emacs/27.0.50/lisp/org/ox-icalendar
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-version hides /usr/local/share/emacs/27.0.50/lisp/org/org-version
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-lua hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lua
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-ctags hides /usr/local/share/emacs/27.0.50/lisp/org/org-ctags
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-sqlite hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sqlite
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-html hides /usr/local/share/emacs/27.0.50/lisp/org/ox-html
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-feed hides /usr/local/share/emacs/27.0.50/lisp/org/org-feed
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-plantuml hides /usr/local/share/emacs/27.0.50/lisp/org/ob-plantuml
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-faces hides /usr/local/share/emacs/27.0.50/lisp/org/org-faces
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-pcomplete hides /usr/local/share/emacs/27.0.50/lisp/org/org-pcomplete
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-org hides /usr/local/share/emacs/27.0.50/lisp/org/ox-org
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-css hides /usr/local/share/emacs/27.0.50/lisp/org/ob-css
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-timer hides /usr/local/share/emacs/27.0.50/lisp/org/org-timer
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-capture hides /usr/local/share/emacs/27.0.50/lisp/org/org-capture
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-clojure hides /usr/local/share/emacs/27.0.50/lisp/org/ob-clojure
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-texinfo hides /usr/local/share/emacs/27.0.50/lisp/org/ox-texinfo
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-crypt hides /usr/local/share/emacs/27.0.50/lisp/org/org-crypt
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ebnf hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ebnf
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-maxima hides /usr/local/share/emacs/27.0.50/lisp/org/ob-maxima
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-exp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-exp
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-perl hides /usr/local/share/emacs/27.0.50/lisp/org/ob-perl
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-latex hides /usr/local/share/emacs/27.0.50/lisp/org/ox-latex
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-duration hides /usr/local/share/emacs/27.0.50/lisp/org/org-duration
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-comint hides /usr/local/share/emacs/27.0.50/lisp/org/ob-comint
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox hides /usr/local/share/emacs/27.0.50/lisp/org/ox
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-table hides /usr/local/share/emacs/27.0.50/lisp/org/ob-table
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-man hides /usr/local/share/emacs/27.0.50/lisp/org/ox-man
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-md hides /usr/local/share/emacs/27.0.50/lisp/org/ox-md
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-archive hides /usr/local/share/emacs/27.0.50/lisp/org/org-archive
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-abc hides /usr/local/share/emacs/27.0.50/lisp/org/ob-abc
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-odt hides /usr/local/share/emacs/27.0.50/lisp/org/ox-odt
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-groovy hides /usr/local/share/emacs/27.0.50/lisp/org/ob-groovy
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-src hides /usr/local/share/emacs/27.0.50/lisp/org/org-src
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-sql hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sql
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-io hides /usr/local/share/emacs/27.0.50/lisp/org/ob-io
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-coq hides /usr/local/share/emacs/27.0.50/lisp/org/ob-coq
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ledger hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ledger
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-plot hides /usr/local/share/emacs/27.0.50/lisp/org/org-plot
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-macro hides /usr/local/share/emacs/27.0.50/lisp/org/org-macro
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-ascii hides /usr/local/share/emacs/27.0.50/lisp/org/ox-ascii
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-mscgen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-mscgen
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ref hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ref
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-awk hides /usr/local/share/emacs/27.0.50/lisp/org/ob-awk
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ruby hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ruby
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-inlinetask hides /usr/local/share/emacs/27.0.50/lisp/org/org-inlinetask
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-java hides /usr/local/share/emacs/27.0.50/lisp/org/ob-java
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-attach hides /usr/local/share/emacs/27.0.50/lisp/org/org-attach
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-entities hides /usr/local/share/emacs/27.0.50/lisp/org/org-entities
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-js hides /usr/local/share/emacs/27.0.50/lisp/org/ob-js
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-core hides /usr/local/share/emacs/27.0.50/lisp/org/ob-core
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-latex hides /usr/local/share/emacs/27.0.50/lisp/org/ob-latex
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-matlab hides /usr/local/share/emacs/27.0.50/lisp/org/ob-matlab
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob hides /usr/local/share/emacs/27.0.50/lisp/org/ob
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-vala hides /usr/local/share/emacs/27.0.50/lisp/org/ob-vala
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-picolisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-picolisp
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-lint hides /usr/local/share/emacs/27.0.50/lisp/org/org-lint
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-hledger hides /usr/local/share/emacs/27.0.50/lisp/org/ob-hledger
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-sass hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sass
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-scheme hides /usr/local/share/emacs/27.0.50/lisp/org/ob-scheme
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-lilypond hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lilypond
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-eval hides /usr/local/share/emacs/27.0.50/lisp/org/ob-eval
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-habit hides /usr/local/share/emacs/27.0.50/lisp/org/org-habit
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-shell hides /usr/local/share/emacs/27.0.50/lisp/org/ob-shell
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-macs hides /usr/local/share/emacs/27.0.50/lisp/org/org-macs
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-mobile hides /usr/local/share/emacs/27.0.50/lisp/org/org-mobile
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-C hides /usr/local/share/emacs/27.0.50/lisp/org/ob-C
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-agenda hides /usr/local/share/emacs/27.0.50/lisp/org/org-agenda
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-stan hides /usr/local/share/emacs/27.0.50/lisp/org/ob-stan
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-J hides /usr/local/share/emacs/27.0.50/lisp/org/ob-J
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-emacs-lisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-emacs-lisp
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-protocol hides /usr/local/share/emacs/27.0.50/lisp/org/org-protocol
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-org hides /usr/local/share/emacs/27.0.50/lisp/org/ob-org
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-id hides /usr/local/share/emacs/27.0.50/lisp/org/org-id
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-colview hides /usr/local/share/emacs/27.0.50/lisp/org/org-colview
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-screen hides /usr/local/share/emacs/27.0.50/lisp/org/ob-screen
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-haskell hides /usr/local/share/emacs/27.0.50/lisp/org/ob-haskell
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ox-beamer hides /usr/local/share/emacs/27.0.50/lisp/org/ox-beamer
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ocaml hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ocaml
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-datetree hides /usr/local/share/emacs/27.0.50/lisp/org/org-datetree
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-makefile hides /usr/local/share/emacs/27.0.50/lisp/org/ob-makefile
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-list hides /usr/local/share/emacs/27.0.50/lisp/org/org-list
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-table hides /usr/local/share/emacs/27.0.50/lisp/org/org-table
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-lisp hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lisp
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-fortran hides /usr/local/share/emacs/27.0.50/lisp/org/ob-fortran
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-ditaa hides /usr/local/share/emacs/27.0.50/lisp/org/ob-ditaa
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-sed hides /usr/local/share/emacs/27.0.50/lisp/org/ob-sed
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-python hides /usr/local/share/emacs/27.0.50/lisp/org/ob-python
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-calc hides /usr/local/share/emacs/27.0.50/lisp/org/ob-calc
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-R hides /usr/local/share/emacs/27.0.50/lisp/org/ob-R
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-lob hides /usr/local/share/emacs/27.0.50/lisp/org/ob-lob
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-loaddefs hides /usr/local/share/emacs/27.0.50/lisp/org/org-loaddefs
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-dot hides /usr/local/share/emacs/27.0.50/lisp/org/ob-dot
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/org-footnote hides /usr/local/share/emacs/27.0.50/lisp/org/org-footnote
/home/deusmax/.emacs.d/elpa/org-plus-contrib-20191230/ob-gnuplot hides /usr/local/share/emacs/27.0.50/lisp/org/ob-gnuplot

Features:
(shadow bbdb-message outshine outshine-org-cmds outorg emacsbug tmm
flyspell ispell cal-move sh-script smie executable helm-ring qp sort
gnus-cite smiley shr-color mail-extr gnus-async gnus-bcklg gnus-ml
cursor-sensor mm-archive url-http-ntlm ntlm calc calc-loaddefs calc-macs
hmac-md5 hex-util md4 url-http url-gw url-cache nndraft nnmh nnrss
mm-url utf-7 gnutls network-stream nsm nnfolder bbdb-gnus 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 debug cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs gnus-recent-org gnus-recent-helm gnus-recent bbdb-mua pcmpl-unix
company-oddmuse company-keywords company-etags etags fileloop xref
project company-gtags company-dabbrev-code company-dabbrev company-files
company-capf company-cmake company-xcode company-clang company-semantic
company-eclim company-template company-bbdb eshell-fringe-status em-unix
em-term term disp-table ehelp em-script em-prompt em-ls em-hist em-pred
em-glob em-cmpl em-basic em-banner em-alias cl-print helpful imenu trace
info-look f dash-functional help-fns radix-tree elisp-refs s loop
cus-edit ielm helm-command helm-elisp helm-eval edebug backtrace recentf
tree-widget ido helm-x-files helm-for-files helm-bookmark helm-adaptive
helm-info bookmark pp switch-window switch-window-mvborder
switch-window-asciiart quail image-file dired-aux dired-hide-dotfiles
misearch multi-isearch winner helm-external helm-net ffap view mule-util
cal-iso org-eldoc org-toc org-mouse org-info org-id org-gnus nnir
gnus-sum url url-proxy url-privacy url-expand url-methods url-history
mailcap shr url-cookie url-domsuf svg xml dom gnus-group gnus-undo
gnus-start gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo
gnus-spec gnus-int gnus-range message rmc puny rfc822 mml mml-sec epa
derived epg epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231
gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail
rmail-loaddefs text-property-search wid-edit org-eww org-eshell
org-docview doc-view jka-compr image-mode exif org-crypt org-bbdb
paredit smtpmail-multi smtpmail sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils pcre2el rxt re-builder pdf-loader
dired-subtree dired-hacks-utils dired-quick-sort savehist dired
dired-loaddefs two-column cl-extra hydra lv bm printing ps-print
ps-print-loaddefs ps-def lpr flycheck-ledger flycheck help-mode occur-x
multiple-cursors mc-hide-unmatched-lines-mode mc-separate-operations
rectangular-region-mode mc-mark-pop mc-mark-more thingatpt
mc-cycle-cursors mc-edit-lines multiple-cursors-core rect
esh-autosuggest company eshell-z em-dirs esh-var esh-mode eshell esh-cmd
esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util
eshell-up helm-ls-git vc-git diff-mode vc vc-dispatcher helm-swoop
helm-mode helm-files helm-buffers helm-occur helm-tags helm-locate
helm-grep wgrep-helm wgrep grep compile helm-regexp helm-utils helm-misc
helm-types helm-help helm helm-source eieio-compat helm-multi-match
helm-lib helm-config helm-easymenu async-bytecomp async ace-jump-mode
mode-icons emojify apropos tar-mode arc-mode archive-mode pcase ht dash
hl-line color edmacro kmacro cal-china lunar solar cal-dst cal-islam
cal-julian holidays hol-loaddefs bbdb-anniv bbdb-com crm mailabbrev appt
diary-lib diary-loaddefs org-mime 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-element avl-tree generator org-habit org-edna
org-clock org-location-google-maps org-agenda google-maps
google-maps-static url-util google-maps-geocode google-maps-base org
org-macro org-footnote org-pcomplete org-list org-faces org-entities
noutline outline easy-mmode org-version ob-latex ob-plantuml ob-org
ob-shell ob-ditaa ob-dot ob ob-tangle org-src ob-ref ob-lob ob-table
ob-exp ob-comint ob-emacs-lisp ob-core ob-eval org-table ol org-keys
org-compat advice org-macs org-loaddefs find-func cal-menu calendar
cal-loaddefs htmlize bbdb bbdb-site timezone lxc-tramp tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
pcomplete comint ansi-color ring parse-time iso8601 time-date ls-lisp
format-spec paren midnight elec-pair cus-start cus-load tex-site cl rx
url-auth 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 lcms2 dynamic-setting
system-font-setting font-render-setting xwidget-internal move-toolbar
gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 999162 120202)
 (symbols 48 53782 3)
 (strings 32 210049 23877)
 (string-bytes 1 7745355)
 (vectors 16 102636)
 (vector-slots 8 1979224 110228)
 (floats 8 1715 654)
 (intervals 56 25739 1351)
 (buffers 1000 113))



Reply | Threaded
Open this post in threaded view
|

bug#39026: 27.0.50; gnus-group-decoded-name needs running gnus

Eric Abrahamsen-2
Deus Max <[hidden email]> writes:

> Before starting gnus, running:
>    (gnus-group-decoded-name  group-name) ; ex: "nnimap+myserver:GroupName"
>
> Gives the error:
>    ** Eval error ***  Wrong type argument: hash-table-p, nil
>
> Tracking this down the path:
>    - (gnus-group-decoded-name group-name)
>      - (gnus-group-name-charset  nil group-name)
>        - (gnus-find-method-for-group group-name)
>          - (gnus-group-entry group-name)
>
> The tiny macro gnus-group-entry, simply does a:
>     (gethash group-name gnus-newsrc-hashtb)
>
> The variable gnus-newsrc-hashtb is not a hashtable when gnus is not
> running. Logical, it has not been assinged yet.
>
> To me, it seems unnecessary to require a running gnus for a simple group
> name decoding. It is overkill, that loses a lot of offline functinality
> and possibilities.

In theory, the only way we can know how to decode a group name for sure
is by asking its method for the appropriate charset to use, and we can
only reasonably do that if Gnus is loaded.

In practice, the same changes that put in the hash table also resulted
in Gnus group names being always decoded, at least within a running Gnus
system, so the call to `gnus-group-decoded-name' is usually unnecessary
(the only time the server/method charset comes into play is when we're
requesting the group names from the server).

Of course if you're trying to do things with groups outside of a running
Gnus system, you might be manually reading the group names from
the.newsrc.eld file, in which case non-ASCII group names will be in an
encoded format, using 'utf-8-emacs.

What I'm saying is, depending on how you're using the group names and
where you're getting them from, you should be safe simply running them
through a 'utf-8-emacs decode.

Eric



Reply | Threaded
Open this post in threaded view
|

bug#39026: 27.0.50; gnus-group-decoded-name needs running gnus

Deus Max
On Wed, Jan 08 2020, Eric Abrahamsen wrote:

> Deus Max <[hidden email]> writes:
>
>> Before starting gnus, running:
>>    (gnus-group-decoded-name  group-name) ; ex: "nnimap+myserver:GroupName"
>>
>> Gives the error:
>>    ** Eval error ***  Wrong type argument: hash-table-p, nil
>>
>> Tracking this down the path:
>>    - (gnus-group-decoded-name group-name)
>>      - (gnus-group-name-charset  nil group-name)
>>        - (gnus-find-method-for-group group-name)
>>          - (gnus-group-entry group-name)
>>
>> The tiny macro gnus-group-entry, simply does a:
>>     (gethash group-name gnus-newsrc-hashtb)
>>
>> The variable gnus-newsrc-hashtb is not a hashtable when gnus is not
>> running. Logical, it has not been assinged yet.
>>
>> To me, it seems unnecessary to require a running gnus for a simple group
>> name decoding. It is overkill, that loses a lot of offline functinality
>> and possibilities.
>
> In theory, the only way we can know how to decode a group name for sure
> is by asking its method for the appropriate charset to use, and we can
> only reasonably do that if Gnus is loaded.
>
> In practice, the same changes that put in the hash table also resulted
> in Gnus group names being always decoded, at least within a running Gnus
> system, so the call to `gnus-group-decoded-name' is usually unnecessary
> (the only time the server/method charset comes into play is when we're
> requesting the group names from the server).
>
> Of course if you're trying to do things with groups outside of a running
> Gnus system, you might be manually reading the group names from
> the.newsrc.eld file, in which case non-ASCII group names will be in an
> encoded format, using 'utf-8-emacs.
>
> What I'm saying is, depending on how you're using the group names and
> where you're getting them from, you should be safe simply running them
> through a 'utf-8-emacs decode.
>
> Eric

Yes, that's mostly how I'm using it, i.e. by reading group names from
.newsrc, but sometimes directly from a gnus group or article. So, it
would be nice to do some things independent of a running gnus and in a
consistent way.

I didn't see any charset info returned by querying the server
(with gnus-find-method-for-group, gnus-group-entry). Logically, the
method should be provided in the group name, except for the primary
method (gnus-select-method, perhaps another good reason to get rid of
this distinction among groups, but I digress, sorry).

It seems that all the real work (in gnus-group-name-charset), for finding
the charset, comes from the variables gnus-group-name-charset-group-alist
and gnus-group-name-charset-method-alist which are defined at startup
and don't need a running gnus.

DeusM



Reply | Threaded
Open this post in threaded view
|

bug#39026: 27.0.50; gnus-group-decoded-name needs running gnus

Eric Abrahamsen-2

On 01/09/20 15:22 PM, Deus Max wrote:

> On Wed, Jan 08 2020, Eric Abrahamsen wrote:
>
>> Deus Max <[hidden email]> writes:
>>
>>> Before starting gnus, running:
>>>    (gnus-group-decoded-name  group-name) ; ex: "nnimap+myserver:GroupName"
>>>
>>> Gives the error:
>>>    ** Eval error ***  Wrong type argument: hash-table-p, nil
>>>
>>> Tracking this down the path:
>>>    - (gnus-group-decoded-name group-name)
>>>      - (gnus-group-name-charset  nil group-name)
>>>        - (gnus-find-method-for-group group-name)
>>>          - (gnus-group-entry group-name)
>>>
>>> The tiny macro gnus-group-entry, simply does a:
>>>     (gethash group-name gnus-newsrc-hashtb)
>>>
>>> The variable gnus-newsrc-hashtb is not a hashtable when gnus is not
>>> running. Logical, it has not been assinged yet.
>>>
>>> To me, it seems unnecessary to require a running gnus for a simple group
>>> name decoding. It is overkill, that loses a lot of offline functinality
>>> and possibilities.
>>
>> In theory, the only way we can know how to decode a group name for sure
>> is by asking its method for the appropriate charset to use, and we can
>> only reasonably do that if Gnus is loaded.
>>
>> In practice, the same changes that put in the hash table also resulted
>> in Gnus group names being always decoded, at least within a running Gnus
>> system, so the call to `gnus-group-decoded-name' is usually unnecessary
>> (the only time the server/method charset comes into play is when we're
>> requesting the group names from the server).
>>
>> Of course if you're trying to do things with groups outside of a running
>> Gnus system, you might be manually reading the group names from
>> the.newsrc.eld file, in which case non-ASCII group names will be in an
>> encoded format, using 'utf-8-emacs.
>>
>> What I'm saying is, depending on how you're using the group names and
>> where you're getting them from, you should be safe simply running them
>> through a 'utf-8-emacs decode.
>>
>> Eric
>
> Yes, that's mostly how I'm using it, i.e. by reading group names from
> .newsrc, but sometimes directly from a gnus group or article. So, it
> would be nice to do some things independent of a running gnus and in a
> consistent way.
>
> I didn't see any charset info returned by querying the server
> (with gnus-find-method-for-group, gnus-group-entry). Logically, the
> method should be provided in the group name, except for the primary
> method (gnus-select-method, perhaps another good reason to get rid of
> this distinction among groups, but I digress, sorry).
>
> It seems that all the real work (in gnus-group-name-charset), for finding
> the charset, comes from the variables gnus-group-name-charset-group-alist
> and gnus-group-name-charset-method-alist which are defined at startup
> and don't need a running gnus.

Yeah, to be honest, I don't really know the point of the
gnus-group-name-charset-* stuff, and am mostly unwilling to mess with
anything I don't really understand. But if those variables have been
set, we'd need to know a group's method, and it really isn't possible to
get a group's method for sure unless Gnus is up and running.

In fact, I suspect we could simply dump all the group-name-charset/group
decoding stuff, stop encoding/decoding altogether, but I don't know how
I would prove that wouldn't cause problems.

Can you just not use gnus-group-decoded-name? As I mentioned, decoding
as 'utf-8-emacs should work fine.

Eric



Reply | Threaded
Open this post in threaded view
|

bug#39026: 27.0.50; gnus-group-decoded-name needs running gnus

Deus Max
In reply to this post by Eric Abrahamsen-2
On Mon, Jan 13 2020, Eric Abrahamsen wrote:

>
> Yeah, to be honest, I don't really know the point of the
> gnus-group-name-charset-* stuff, and am mostly unwilling to mess with
> anything I don't really understand. But if those variables have been
> set, we'd need to know a group's method, and it really isn't possible to
> get a group's method for sure unless Gnus is up and running.
>
> In fact, I suspect we could simply dump all the group-name-charset/group
> decoding stuff, stop encoding/decoding altogether, but I don't know how
> I would prove that wouldn't cause problems.
>
> Can you just not use gnus-group-decoded-name? As I mentioned, decoding
> as 'utf-8-emacs should work fine.
>
> Eric

Yes, I agree with you and will take your advice.
Thanks for discussing the issue.

For my needs, I will just replace gnus-group-name-decode with:

#+begin_src emacs-lisp
  (defun gnus-recent-decode-utf8 (string &optional charset)
    "Decode a gnus-group name.
  Replaces `gnus-group-name-decode' for decoding group names.
  Default utf-8-emacs CHARSET unless provided otherwise."
    (decode-coding-string string (or charset 'utf-8-emacs) t))
#+end_src


I guess you may close the bug.



Reply | Threaded
Open this post in threaded view
|

bug#39026: 27.0.50; gnus-group-decoded-name needs running gnus

Eric Abrahamsen-2


On 01/13/20 22:57 PM, Deus Max wrote:

> On Mon, Jan 13 2020, Eric Abrahamsen wrote:
>
>>
>> Yeah, to be honest, I don't really know the point of the
>> gnus-group-name-charset-* stuff, and am mostly unwilling to mess with
>> anything I don't really understand. But if those variables have been
>> set, we'd need to know a group's method, and it really isn't possible to
>> get a group's method for sure unless Gnus is up and running.
>>
>> In fact, I suspect we could simply dump all the group-name-charset/group
>> decoding stuff, stop encoding/decoding altogether, but I don't know how
>> I would prove that wouldn't cause problems.
>>
>> Can you just not use gnus-group-decoded-name? As I mentioned, decoding
>> as 'utf-8-emacs should work fine.
>>
>> Eric
>
> Yes, I agree with you and will take your advice.
> Thanks for discussing the issue.
>
> For my needs, I will just replace gnus-group-name-decode with:
>
> #+begin_src emacs-lisp
>   (defun gnus-recent-decode-utf8 (string &optional charset)
>     "Decode a gnus-group name.
>   Replaces `gnus-group-name-decode' for decoding group names.
>   Default utf-8-emacs CHARSET unless provided otherwise."
>     (decode-coding-string string (or charset 'utf-8-emacs) t))
> #+end_src

That looks fine to me. Sorry I don't have a more definitive solution for
this.

> I guess you may close the bug.

Done.