[CHISE-ja:1042] please review and test new tamago-tsunagi (was: [tsunagi 30] egg-simで "Invalid code(s)")

Mitsutoshi NAKANO itsango @ gmail.com
2015年 1月 28日 (水) 15:39:23 JST


このメールは
TO
tamago-tsunagi-misc @ lists.sourceforge.jp
CC
chise-ja @ lists.chise.org
anthy-dev @ lists.sourceforge.jp
opensuse-ja @ opensuse.org
debian-devel @ debian.or.jp
freebsd-users-jp @ freebsd.org
で、複数のMLに送信しております。


2015年1月28日 0:33 Mitsutoshi NAKANO <itsango @ gmail.com>:
> 2015年1月27日 22:12 ARAI Shun-ichi <hermes @ ceres.dti.ne.jp>:
>> あらいです。
>>
>>  初めまして。
>>  先日から試用させていただいています。辞書学習など、これまで使っていた
>> 古いバージョンで気になっていた幾つかの点が改善されていて大変快適です。
>>
>>  ところで、Subjectに書いた件ですが、\C-^ で egg-sim を使おうとすると
>> 「Invalid code(s)」というエラーメッセージが出て、通常の状態に戻ってしま
>> います。
>>
>>  調べたところ、次のようなデバッグ出力が得られました。
>>
>> Debugger entered--Lisp error: (error "Invalid code(s)")
>>   make-char(latin-iso8859-3 112)
>>   make-char-list(latin-iso8859-3)
>>   byte-code("\300\301\302\303!E\207" [menu "ISO 8859-3:" make-char-list latin-iso8859-3] 4)
>>   (defvar egg-sim-latin-3-menu (byte-code "\300\301\302\303!E\207" [menu "ISO 8859-3:" make-char-list latin-iso8859-3] 4))
>>
>>  Emacs Lispはあまりよくわからないのですが、egg-sim.elc をロードしたと
>> きに、egg-sim-latin-3-menu を設定する個所で、make-char-list が未定義の
>> 個所にぶつかって失敗しているのではないかと思います。
>>  このような場合、たとえば、エラーを受け止めてそこをスキップするような
>> ことができるのでしょうか。
>>  何かうまい対処法があるか、コメントよろしくお願いします。
>
> tamago-tsunagiをお使いいただいてありがとうございます。
>
> 私の環境ではC-^はundefinedなので
> (load-library "egg-sim")したところ、
> あらいさんのご指摘された現象が再現いたしました。
>
> 私は現在以下の環境でtamago-tsunagiを使用しています。
>
> hard: Sony PCG-SRX7S/P RAM 512 MB
>  http://www.sony.jp/products/biz/vaio/PCG-SRX7S_P/spec.html
> OS: Lubuntu 14.04.1
> Emacs: 24.3+1-2ubuntu1 (Lubuntuのパッケージ)
> Tamago-tsunagi-5.0.1.0
>
> このマシンでapt-get source emacs24でソースをダウンロードして
> ちょっとだけ追いかけてみました。
>
> make-char()のソースを確認したところ、以下のようになっていました。
> http://git.savannah.gnu.org/cgit/emacs.git/tree/src/charset.c?h=emacs-24
>
>   c = DECODE_CHAR (charsetp, code);
>   if (c < 0)
>     error ("Invalid code(s)");
>   return make_number (c);
>
> おそらく、ここのerror()が呼ばれているのだと思います。
> error()を追っていくとSIGABRTを送信しているようです。
> どこかでこのシグナルをハンドリングしている方法があると
> 思うのですが、追い切れていません。
>
> また、申し訳ないですが、本来どう修正すべきであるのかについても
> 正解を持ち合わせておりません。
>
> Tamagoを延命させたい一心でprojectを立ち上げた私ですが
> お恥ずかしいことにTamagoにもEmacs-lispにもEmacsにも
> さほど詳しくはありません。
>
> お力になれずに申し訳ないのですが、
> せっかく報告された問題ですから、
> 明日から可能な限り調べてみたいと思います。
>
> チケットを発行していただけたら幸いです。
> https://sourceforge.jp/ticket/newticket.php?group_id=9668
>
> ヘボな私ですが今後ともよろしくお願いいたします。

上記mail
http://sourceforge.jp/projects/tamago-tsunagi/lists/archive/misc/2015-January/000029.html
の件で、tamago-tsunagiを修正してみました。
あらいさんがおっしゃるとおり、egg-sim.elの(make-char-list)の
(make-char)がエラーを発していましたので
(ignore-errors)で囲ってみました。

ISO-8859-3に文字が定義されていない点があり、
そこで(make-char)がエラーを返していたようです。
http://en.wikipedia.org/wiki/ISO/IEC_8859-3

simを起動すると未定義のところはnilになっており、
それを無理に入力しようとするとエラーになりますが、
一応、動かないという状態は脱したように思われます。

git repositoryにはpushしていますが、まだmaster branchには
入れておらずfix-egg-sim-Spike branchに入っております。

git clone git://git.sourceforge.jp/gitroot/tamago-tsunagi/tamago-tsunagi.git
cd tamago-tsunagi
git checkout fix-egg-sim-Spike
でsourceを得ることができます。

2週間くらいをtest期間に当てたいと思います。
問題がなければ2週間後にmaster branchにmergeした上でtagを打ち、
tarballを生成します。

reviewとtestをお使いの皆様方にお願い致します。

重大な問題があればご指摘下さい。
また、2週間も待てないという方もご連絡願います。
適宜調整致します。

tamago-tsunagiを今後とも宜しくお願いします。


openSUSEのtamagoで同じ問題が起きていないかこれから調べます。
同じ問題が起きているようであればbugreportを起こして、
tamagoをtamago-tsunagiに更新しようと思います。

-- 
Mitsutoshi NAKANO <ItSANgo @ gmail.com> <bkbin005 @ rinku.zaq.ne.jp>
 <https://twitter.com/ItSANgo> <http://d.hatena.ne.jp/Itisango/>
ただ今就職活動中。


--------
From: Mitsutoshi NAKANO <bkbin005 @ rinku.zaq.ne.jp>
Date: 2015-01-28 14:52:49 +0900
Subject: fix that egg-sim did not work
References: http://sourceforge.jp/projects/tamago-tsunagi/lists/archive/misc/2015-January/000029.html

C-^ (egg-sim) did not work.
Because ISO-8859-3 has voids in the charset.
But egg-sim forgot it, (make-char) occurred an error.
So added (ignore-errors) in (make-char-list).

version tsunagi-5.0.2.0


--
diff --git a/ChangeLog b/ChangeLog
index 03a441d..38af4b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,12 @@
 2015-01-28  Mitsutoshi NAKANO  <bkbin005 @ rinku.zaq.ne.jp>

+ * egg-sim.el(make-char-list): ignore-errors in make-char
+  Please see:
+  http://sourceforge.jp/projects/tamago-tsunagi/lists/archive/misc/2015-January/000029.html
+ * egg.el(egg-version): up from 5.0.1.0 to 5.0.2.0
  * .gitignore: ignored TAGS
  * Makefile.in(tags): added tags entry
+ * NEWS(5.0.2.0): created

 2014-12-15  Mitsutoshi NAKANO  <bkbin005 @ rinku.zaq.ne.jp>

diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..0657d7e
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,8 @@
+NEWS about tamago-tsunagi
+=========================
+
+## 5.0.2.0 Mitsutoshi NAKANO <bkbin005 @ rinku.zaq.ne.jp>
+
+HotFix: C-^ (egg-sim) does not work.  So amended quickly.
+Please see
+http://sourceforge.jp/projects/tamago-tsunagi/lists/archive/misc/2015-January/000029.html
diff --git a/egg-sim.el b/egg-sim.el
index c91f9b7..54343d7 100644
--- a/egg-sim.el
+++ b/egg-sim.el
@@ -4,12 +4,10 @@
 ;; Copyright (C) 2000 Electrotechnical Laboratory, JAPAN.
 ;; Licensed to the Free Software Foundation.
 ;; Copyright (C) 2000 TOMURA Satoru <tomura @ etl.go.jp>
-
+;;               2015 Mitsutoshi NAKANO <bkbin005 @ rinku.zaq.ne.jp>

 ;; Author: TOMURA Satoru <tomura @ etl.go.jp>

-;; Maintainer: TOMURA Satoru <tomura @ etl.go.jp>
-
 ;; Keywords: mule, multilingual, input method

 ;; This file is part of EGG.
@@ -44,6 +42,11 @@

 (provide 'egg-sim)

+;;; modified 2015.01.28 Mitsutoshi NAKANO <bkbin005 @ rinku.zaq.ne.jp>
+;;; ignore-errors in make-char
+;;; Please see:
+;;; http://sourceforge.jp/projects/tamago-tsunagi/lists/archive/misc/2015-January/000029.html
+;;; http://www.gnu.org/software/emacs/manual/html_node/elisp/Handling-Errors.html
 (defun make-char-list (charset &optional from to)
   (let ((result nil)
  (chars (charset-chars charset))
@@ -56,8 +59,8 @@
  (<= to max)
  (cond ((= (charset-dimension charset) 1)
  (while (<= from to)
-  (setq result (cons (char-to-string
-      (make-char charset to))
+  (setq result (cons (ignore-errors (char-to-string
+     (make-char charset to)))
      result)
  to (1- to)))
  result)
@@ -65,8 +68,9 @@
  (while (<= from to)
   (let ((code max))
     (while (<= min code)
-      (setq result (cons (char-to-string
-  (make-char charset to code))
+      (setq result (cons (ignore-errors
+  (char-to-string
+   (make-char charset to code)))
  result)
     code (1- code))))
   (setq to (1- to)))
diff --git a/egg.el b/egg.el
index a4abfcf..4d29251 100644
--- a/egg.el
+++ b/egg.el
@@ -1,12 +1,10 @@
 ;;; egg.el --- EGG Input Method Architecture

-;; Copyright (C) 1999-2014 Free Software Foundation, Inc
+;; Copyright (C) 1999-2015 Free Software Foundation, Inc

 ;; Author: NIIBE Yutaka <gniibe @ chroot.org>
 ;;         KATAYAMA Yoshio <kate @ pfu.co.jp>

-;; Maintainer: TOMURA Satoru <tomura @ etl.go.jp>
-
 ;; Keywords: mule, multilingual, input method

 ;; This file is part of EGG.
@@ -30,7 +28,7 @@

 ;;; Code:

-(defconst egg-version "5.0.1.0"
+(defconst egg-version "5.0.2.0"
   "Version number for this version of Tamago.")

 (defconst egg-tsunagi-version egg-version


CHISE-ja メーリングリストの案内