From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 23 Sep 2002 01:17:40 +0400 (MSD) From: Ivan Zakharyaschev X-X-Sender: ivan@arrakis.zephyrous To: sisyphus@altlinux.ru Subject: Re: [sisyphus] Emacs: Ispell misalignment In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=koi8-r Content-Transfer-Encoding: 8BIT Sender: sisyphus-admin@altlinux.ru Errors-To: sisyphus-admin@altlinux.ru X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.0.13 Precedence: bulk Reply-To: sisyphus@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: Hello! On Mon, 23 Sep 2002, Alex Ott wrote: > >>>>> "VV" == Vadim Vinichenko writes: > VV> Alex Ott пишет: > > "VV" == Vadim Vinichenko writes: > > > VV> Возникла потребность проверить в emacs орфографию смешанного > VV> (русско-английского) текста. С русским словарем все нормально - > VV> проверяет русские слова, английские игнорирует. С английским - > Ispell > VV> довольно быстро натыкается на misalignment (это связано с > границами > VV> multibyte символов?) и дальше не проверяет. Должно помочь изменнеие coding-system для соответствующего элемента из ispell-dictionary-alist c iso-8859-1 нв iso-safe. Например, после замены ("british" ; British version "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "british") nil iso-8859-1) на ("british" ; British version "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "british") nil iso-safe) Ваш пример стал проверяться. Почему так объясняю ниже. > >> Запостите ошибку через help|send bug report > > VV> А это корректно? Это не может быть проблема самого Ispell? Или > там > VV> разберутся? > Или напишите автору ispell -- хотя есть такое подозрение, что это > из-за > неправильного определения языка Я немного покопался в этой проблеме: думаю, ispell не виноват, причина в ispell.el, а конкретнее, в функции ispell-get-line (или в местах, где она вызвается, в том числе ispell-region): она не учитывает информацию об алфавите языка, а посылает строку целиком (вместе с многобитным представлением русских букв, т.к. английская coding-system не умеет их кодировать). Это, конечно же, ошибка ispell.el. (А если изменить coding-system на iso-safe, то неизвестные для этого способа кодирования русские буквы превращаются в безвредные вопросы, которые и посылаются ispell.) Аналогичная ispell-get-line/ispell-region пара ispell-get-word/ispell-word работает гораздо лучше: выбираются слова, состоящие из букв алфавита. В похожем модуле flyspell.el тоже лучше: там flyspell-word выбирает хорошие слова, а flyspell-region проходит по области с помощью повторяющихся вызовов flyspell-word. Это может быть вариантом для исправления ispell.el. > VV> Кстати, попутно я заметил, что в Сизифе ispell.el версии 3.4, а > уже > VV> год, как существует 3.5. Об этом стоит доложить мейнтейнеру? > то , что в сизифе - это из поставки gnu (скорее всего) -- для этого > надо > перепиливать spec и т.п. - надо посмотреть, насколько критичны там > исправления и если это нужно, то можно влить в поставку -- как это > было > сделано со старой версией speedbar в gnu emacs Мне кажется, ради ispell такого пока делать не стоит. P.S. Я долго не читал внимательно всю почту, наверняка, там есть какие-нибудь вопросы про пакет GNU Emacs из Сизифа, на которые я мог бы ответить -- приношу извинения за то, что вовремя не ответил, и надеюсь что все ценные замечания будут учтены при будущей работой над пакетом. -- С наилучшими пожеланиями, Иван Захарьящев, Москва