Fixing not overriding default-input-method when org-drill is executed

input method

Whenever I run org-drill, my default-input-method as korean-hangul390 becomes nil.

Looking at the org-drill code, here is the culprit:

(defun org-drill--read-key-sequence (prompt)
  "Just like `read-key-sequence' but with input method turned off."
  (let ((old-input-method current-input-method))
    (unwind-protect
        (progn
          (set-input-method nil)
          (read-key-sequence prompt))
      (set-input-method old-input-method))))

When current-input-method is nil, the execution of set-input-method makes the default-input-method nill, too.

I don’t know if it’s an org-drill issue, a fundamental Emacs issue, or my lack of knowledge of Emacs, but I want to keep the default-input-method no matter what.

Here is what I’m doing hack temporarily:

(defun org-drill--read-key-sequence (prompt)
  "Just like `read-key-sequence' but with input method turned off."
  (let ((old-input-method current-input-method))
    (unwind-protect
        (progn
          (if (not (eq old-input-method nil))
              (set-input-method nil)
              )
          (read-key-sequence prompt))
      (progn
        (if (not (eq old-input-method nil))
            (set-input-method old-input-method))))))

I filed the issue report to the org-drill github at https://gitlab.com/phillord/org-drill/-/issues/58

You May Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *