 
 (defun wizard-local-get-char-from-arg (char &optional no-save-char)
   (with-no-warnings
-    (if (char-table-p translation-table-for-input)
+    (when (char-table-p translation-table-for-input)
         (setq char (or (aref translation-table-for-input char) char))))
-  (if (not no-save-char) (setq wizard-last-char char))
+  (when (not no-save-char) (setq wizard-last-char char))
   char)
 
 (defun wizard-move-to-char (arg char)

(define-key wizard-mode-map (kbd "C-c z")   'wizard-repeat-move-or-up)

(defun wizard-minor-mode-not-for-minibuffer ()
  (if (not (minibufferp (current-buffer)))
      (wizard-minor-mode t)
    nil))

;;;###autoload
(define-minor-mode wizard-minor-mode

  (interactive (list (prefix-numeric-value current-prefix-arg) (read-char "Up to char: " t)))
  (setq char (wizard-local-get-char-from-arg char))
  (setq wizard-last-command 'wizard-up-to-char)
  (when (/= (point) (line-end-position))
    (kill-region (point)
                 (progn
                   (forward-char)
                   (search-forward (char-to-string char) (if (>= arg 0) (line-end-position) (line-beginning-position)) t arg)
                   (backward-char)
                   (point)))))

(defun wizard-zap-up-back-to-char (arg char)
  (interactive (list (prefix-numeric-value current-prefix-arg) (read-char "Up back to char: " t)))
  (setq char (wizard-local-get-char-from-arg char))
  (setq wizard-last-command 'wizard-up-back-to-char)
  (when (/= (point) (line-beginning-position))
    (kill-region (point)
                 (progn
                   (backward-char)
                   (search-backward (char-to-string char) (if (>= arg 0) (line-beginning-position) (line-end-position)) t arg)
                   (forward-char)
                   (point)))))

(define-key wizard-mode-map (kbd "C-c f")   'wizard-move-to-char)
(define-key wizard-mode-map (kbd "C-c F")   'wizard-move-back-to-char)
