emacs: fix nil file-name-handler-alist after reloading init
authorAmin Bandali <bandali@gnu.org>
Wed, 15 May 2019 00:35:06 +0000 (20:35 -0400)
committerAmin Bandali <bandali@gnu.org>
Wed, 15 May 2019 00:35:06 +0000 (20:35 -0400)
This problem would cause emacs to not treat files like *.gpg
or *.el.gz especially before displaying them, as it normally does.

So now, I update a/file-name-handler-alist with the latest contents of
file-name-handler-alist before loading the init file, and afterwards I
restore things back to normal (done in a/post-init).

.emacs.d/init.el

index b7a433d..b09f080 100644 (file)
       esup-child-profile-require-level 0)
 
 ;; set them back to their defaults once we're done initializing
       esup-child-profile-require-level 0)
 
 ;; set them back to their defaults once we're done initializing
-(add-hook
- 'after-init-hook
- (lambda ()
-   (setq gc-cons-threshold a/gc-cons-threshold
-         gc-cons-percentage a/gc-cons-percentage
-         file-name-handler-alist a/file-name-handler-alist)))
+(defun a/post-init ()
+  (setq gc-cons-threshold a/gc-cons-threshold
+        gc-cons-percentage a/gc-cons-percentage
+        file-name-handler-alist a/file-name-handler-alist))
+(add-hook 'after-init-hook #'a/post-init)
 
 ;; increase number of lines kept in *Messages* log
 (setq message-log-max 20000)
 
 ;; increase number of lines kept in *Messages* log
 (setq message-log-max 20000)
   (interactive)
   (straight-transaction
     (straight-mark-transaction-as-init)
   (interactive)
   (straight-transaction
     (straight-mark-transaction-as-init)
-    (load user-init-file)))
+    (setq a/file-name-handler-alist file-name-handler-alist)
+    (load user-init-file)
+    (a/post-init)))
 
 ;; use-package
 (straight-use-package 'use-package)
 
 ;; use-package
 (straight-use-package 'use-package)