emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/greader 00f53aaeef 2/2: greader-dict.el: now changing t


From: ELPA Syncer
Subject: [elpa] externals/greader 00f53aaeef 2/2: greader-dict.el: now changing the dictionary works as expected.
Date: Thu, 25 Jul 2024 21:58:22 -0400 (EDT)

branch: externals/greader
commit 00f53aaeeff2d2e6a994d60765d4619d8b6816f4
Author: Michelangelo Rodriguez <michelangelo.rodriguez@gmail.com>
Commit: Michelangelo Rodriguez <michelangelo.rodriguez@gmail.com>

    greader-dict.el: now changing the dictionary works as expected.
---
 greader-dict.el | 37 ++++++++++++++++++++++++++++++-------
 1 file changed, 30 insertions(+), 7 deletions(-)

diff --git a/greader-dict.el b/greader-dict.el
index 063dec5b8c..ce4c035fc3 100644
--- a/greader-dict.el
+++ b/greader-dict.el
@@ -165,9 +165,14 @@
   "Item types and relative prefixes.")
 
 ;; This function saves the contents of the hash table.
-(defvar greader-dict-directory (concat user-emacs-directory
-                                      ".greader-dict/")
+(defvar-local greader-dict-directory (concat user-emacs-directory
+                                            ".greader-dict/"
+                                            (greader-get-language)
+                                            "/")
   "The directory containing greader-dict files.")
+
+(defvar-local greader-dict-local-language (greader-get-language))
+
 (defvar-local greader-dict-filename "greader-dict.global"
   "File name where dictionary definitions are stored.")
 (defvar greader-dict--current-reading-buffer (current-buffer))
@@ -284,6 +289,8 @@ as a word definition."
     (add-hook 'greader-after-change-language-hook
              (lambda ()
                (when greader-dict-mode
+                 (setq greader-dict-local-language
+                       (greader-get-language))
                  (greader-dict-read-from-dict-file)))))))
 
 ;; THanks to the loved and alwais useful elisp reference.
@@ -494,6 +501,9 @@ Return nil if KEY is not present in `greader-dictionary'."
     (setq greader-dict-filename (buffer-local-value
                                 'greader-dict-filename
                                 greader-dict--current-reading-buffer))
+    (setq greader-dict-local-language (buffer-local-value
+                                      'greader-dict-local-language
+                                      greader-dict--current-reading-buffer))
     (maphash
      (lambda (k v)
        (insert "\"" k "\"" "=" v "\n"))
@@ -673,9 +683,23 @@ argument, only if `greader-dict-mode' is enabled."
 (declare-function greader-get-language nil)
 (defun greader-dict--get-file-name ()
   "Return the absolute path of current dictionary file."
-  (concat greader-dict-directory (greader-get-language) "/"
-         (buffer-local-value 'greader-dict-filename
-                             greader-dict--current-reading-buffer)))
+  (let ((language-part (car (last (split-string greader-dict-directory
+                                               "/" t)))))
+    (unless (equal language-part (buffer-local-value
+                                 'greader-dict-local-language
+                                 greader-dict--current-reading-buffer))
+      (setq greader-dict-directory (string-remove-suffix (concat
+                                                         language-part
+                                                         "/")
+                                                        
greader-dict-directory))
+      (setq greader-dict-directory
+           (concat greader-dict-directory (buffer-local-value
+                                           'greader-dict-local-language
+                                           
greader-dict--current-reading-buffer)
+                   "/"))))
+  (concat greader-dict-directory (buffer-local-value
+                                 'greader-dict-filename
+                                 greader-dict--current-reading-buffer)))
 
 (defun greader-dict--set-file (type)
   "Set `greader-dict-filename' according to TYPE.
@@ -774,8 +798,7 @@ asked."
       (greader-dict--set-file (intern new-dict))
       (unless (file-exists-p (greader-dict--get-file-name))
        (shell-command-to-string
-        (concat "touch " greader-dict-filename)))
-      (greader-dict--update)
+        (concat "touch " (greader-dict--get-file-name))))
       (greader-dict--update))))
 
 ;; (remove-hook 'buffer-list-update-hook #'greader-dict--update)))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]