Mercurial > emacs
diff lisp/international/isearch-x.el @ 17052:d0d7b244b1d0
Initial revision
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Thu, 20 Feb 1997 07:02:49 +0000 |
parents | |
children | 70194012fb3a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/international/isearch-x.el Thu Feb 20 07:02:49 1997 +0000 @@ -0,0 +1,76 @@ +;;; isearch-x.el --- extended isearch handling commands + +;; Copyright (C) 1995 Free Software Foundation, Inc. +;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. + +;; Keywords: multilingual, isearch + +;; Author: Kenichi HANDA <handa@etl.go.jp> +;; Maintainer: Kenichi HANDA <handa@etl.go.jp> + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to +;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +;;; Code: + +;;;###autoload +(defun isearch-toggle-specified-input-method () + "Select and toggle specified input method in interactive search." + (interactive) + ;; Let the command `toggle-input-method' ask users to select input + ;; method interactively. + (setq default-input-method nil) + (isearch-toggle-input-method)) + +;;;###autoload +(defun isearch-toggle-input-method () + "Toggle input method in interactive search." + (interactive) + (if isearch-multibyte-characters-flag + (setq isearch-multibyte-characters-flag nil) + (condition-case nil + (progn + (if (null default-input-method) + (let ((overriding-terminal-local-map nil)) + ;; No input method has ever been selected. Select one + ;; interactively now. This also sets + ;; `default-input-method-title' to the title of the + ;; selected input method. + (toggle-input-method) + ;; And, inactivate it for the moment. + (toggle-input-method))) + (setq isearch-multibyte-characters-flag t)) + (error (ding)))) + (isearch-update)) + +(defun isearch-input-method-after-insert-chunk-function () + (funcall inactivate-current-input-method-function)) + +(defun isearch-process-search-multibyte-characters (last-char) + (let* ((overriding-terminal-local-map nil) + ;; Let input method exit when a chunk is inserted. + (input-method-after-insert-chunk-hook + '(isearch-input-method-after-insert-chunk-function)) + (input-method-inactivate-hook '(exit-minibuffer)) + ;; Let input method work rather tersely. + (input-method-tersely-flag t) + str) + (setq unread-command-events (cons last-char unread-command-events)) + (setq str (read-multilingual-string (concat (isearch-message-prefix) + isearch-message))) + (isearch-process-search-string str str))) + +;;; isearch-x.el ends here