-
Notifications
You must be signed in to change notification settings - Fork 15
TODO
Hiroyuki Yamamoto edited this page Dec 20, 2022
·
1 revision
このページは作者のTODOを記録しておくためのものです。
- Win32(MinGW)
- アクション
- 「Mew / Wanderlust」キーバインドを使用している場合,一度も Compose Window を作らずに終了すると, Compose Window の「Select all」キーバインドがデフォルト ("<Control>a") に戻ってしまう.キーバインドが空 ("") のときの gtk_accel_save の仕様らしい.
- 「設定」-「全般の設定」-「表示」-「メッセージ」-「メッセージの色を有効にする」- [編集]ボタンで表示される「~~~~の色を選択」画面の赤・青・緑の値が-1された状態で表示される。
- 確認できたので修正します。→設定を保存する仕様を変更しないと難しそう。
- IMAP使用時に振り分けルールによってカラーラベルを設定した時にサーバー側に反映されない。
- 添付ファイルとしてUTF-16(BE/LE、BOM有り無し、改行(CRLF/LF/CR)どれでも)のテキストファイルを添付すると、ファイル内容(改行文字)が文字化けする。(送受信、草稿 どれでも発生)Win32版Ver.3.5.1
- 他アプリからダイアログがトップレベルウィンドウと混同される
- タスクトレイのアイコンを右クリックした後、他のソフトに移るとメニューが消えない
- 現時点では解決策が不明。
- ポップアップメニュー出す直前に、SetForegrandWindow()でなんとかならないのかな?
- Windows 7 で起動時トレイアイコンの位置が安定しない
- Win7 は何によってアイコンを識別している? → アイコン作成時のツールチップで判断しているらしい。GTK+側で修正済み: https://bugzilla.gnome.org/show_bug.cgi?id=609622
- v3.0.2 新規アカウントの作成時、POP3(Gmail)を一度選択した後前画面に戻りPOP3を選び直す → 電子メールのドメイン(デフォルト値)がgmail.comとなっている(仕様?)
- メールの編集中にファイルの添付を行って、再度編集を続けようとすると日本語変換が off に戻っている @skkime
-
セッション前後でモニタの解像度が変化した場合(マルチモニタ等)、画面外にウィンドウが表示されてしまう場合がある- 3.1beta2で修正。
-
フォルダビューでフォルダをクリックするとスクロール位置がずれることがある(GTK+ 2.12以上)- 一応 fixed-height-mode にすれば解消することは判明。 GTK+ のバグ? →3.0.2で修正。
テンプレートの本文をファイルから読み込むときに8192バイト以降が切り捨てられるクイック検索で未読のみ表示にしている場合、新着を既読にしても新着数表示が減らないIMAP4フォルダの作成時に末尾にセパレータを付加した場合、選択不可なフォルダが作成された場合でもフォルダの再構築を行うまで選択可能として表示されてしまう"ほげ " <foo@example.com> のように、ダブルクォートの前後に空白がある場合、MIMEエンコードするとダブルクォートの片方だけが出てきてしまい、受信した側で宛先表示がおかしくなる-
DnDがまれにおかしくなる?(再現条件が不明)
-
フォルダの新規作成時にフォルダ名の大小文字を区別するため、同一のフォルダを複数のフォルダから参照できてしまう(例: hoge と Hoge)。 inbox や sent などの特別なフォルダ名と重複するようなフォルダを作成すると、特別なフォルダの実体を削除できてしまう。- Win32 ではフォルダの新規作成時に大小文字を区別せずに既存フォルダのチェックを行うようにする。→3.0rcで修正
-
ダイアログを閉じたときに別のアプリにフォーカスが移ってしまうことがある- GTK+ 2.10.14で修正済み。
-
64Kbps程度の低速なダイアルアップ接続で送信時に8KBや32KBあたりで停止してしまうことがある- 2.4.3でとりあえず解決
テキストビューの一部が隠れている状態でスクロールすると画面が乱れるGtkTextViewとGtkEntryで右クリックメニューを出すとそれ以降GTK+のメッセージが翻訳されなくなってしまう-
添付ファイル付き署名の検証を行った場合ブロックしてしまう(w2k)- GPGMEのバージョンを上げると再現しなくなった模様
-
振分けルールの設定を手動で行っている時に、設定したルールが文字化けしてしまい機能しない- 再現条件が不明。
-
「Mew / Wanderlust」キーバインドを使用している場合、C-x o (フォルダのリスト)から移動先を選択すると、ぜんぜん違うフォルダに移動してしまう。(version 2.2.9 Win)- 再現条件が不明。
-
Sylpheedとメモ帳などのソフトの間でカット&ペーストを繰り返すと、SylpheedのCPU使用率が100%近くなってしまう- 再現条件が不明。
-
GnuPGが正しく検出されないことがある- GPGMEの最新版で対策されているので、それにさらに修正を加えたものを3.0beta7から同梱する
-
Sylpheed 2.5.0rc(Win32) + Gpg4win 1.1.3で、鍵の期限が切れた状態でPGP署名にチェックを入れて送信しようとするとSylpheedが応答しなくなる。- 恐らくGPGMEの最新版では修正済み(3.0beta8)。
- 添付ファイル
- 添付ファイルマークの表示を適切にする
- 通常の添付ファイルの場合はクリップマーク
- PGP署名・PGP暗号化の場合は鍵マーク
- ファイル名なしテキストのみの場合はマークなし
- 添付されたテキストも含めて印刷
- 添付ファイルの印刷は実装済み
- 一時的に展開した添付ファイルの後処理
- MimeInfo毎に一時ファイルのパスを付加し、MimeInfoを削除する時にunlink()する
- 添付ファイルマークの表示を適切にする
- アドレス帳
- アドレス帳でCSVのエクスポートができるようにする
- 接続時のエラーを正確に表示する(DNSエラー or 接続失敗)
- 1つのSMTPセッションで複数のメールを送信
- IMAP
- IMAP IDLE対応
- IMAP アクセス中の IMAP 送信控フォルダへの追加
- 振り分け条件にどのアカウントで受信したかを追加
- 検索フォルダの自動更新
- ヘルプメニューの整理(言語自動判別)
- 受信中にフォルダを開いた場合のフォルダ更新の最適化
- メッセージのプロパティ表示の実装
- S/MIMEの.p7m形式の内容をとりあえず表示できるようにする
- フォルダ操作のAPIでGErrorを使ってエラーを返せるようにする
- 受信ダイアログに受信中のメッセージのSubjectを表示
- 返信時に返信元のメッセージと同じ文字コードを使用するオプション
- 返信時にスレッドを切る機能
- 無駄にlex/yaccを使用している部分(templateとか)を自前で実装して依存しないようにする
- しょっちゅうコンパイル時の障害になるので
- GScannerとかを使うのもあり?
- カラーラベルの行選択時に色を変更する
- メッセージ操作のアンドゥ機能
- メッセージ表示の履歴
- deprecatedなwidgetの置き換え
- 各所のGtkCombo
- NNTPのマルチスレッド化
- Win32
- LDAP対応
- JPilot対応
-
localeに関わらず強制的に日本語自動判別を有効にできるモードの付加void conv_enable_ja_autodetect(gboolean enable) (デフォルトは FALSE)
- Sylpheed同梱版LibSylphと単体配布版のコードの統合
- compose.c: Sylpheed の compose.c を composewindow.c に改名し、 LibSylph の compose.c を利用するようにする
-
Unix 版では受信したファイルのフォルダへの追加をハードリンク(link())を使用して行っているが、 Win32 版では常にコピーとなっているのを改善する- Pop3Session::drop_message() は現在の仕様では元ファイルを削除せず、呼び出し側で削除する
- 移動の場合でも folder_item_add_msg() で元ファイルを削除しない
- link() + unlink() の場合は性能的に問題ないが、 link() が使えない場合は常に copy + unlink() となるので遅い
- mh_add_msgs() 内で rename() 等でファイルを移動するようにできれば上記の問題は回避できる
- NTFS のハードリンクを使用する(CreateHardLink()) →これで実装してみた
- ファイルシステム暗号化ツールによってはハードリンクに対応していないものもある模様
- Pop3Session::drop_message() は現在の仕様では元ファイルを削除せず、呼び出し側で削除する
-
utils.c: copy_file() は read() + write() を使用して実装されているが、 Win32 では CopyFile() を使用した方が平均的に速そう→実装してみた -
受信時にメールをフォルダに追加する時点でキャッシュへのデータの追加を行い、その後のフォルダオープン時のファイルスキャンにかかる時間を短縮する(3.0beta1で実装) - キャッシュ読み込みの最適化
- mmap を使う
- ファイルの存在チェックを最適化または省略する
- キャッシュのフォーマットを変更する
- 現在は bsfilter をメール1通毎に起動しているため、 spam 判定が非常に遅い
- 複数メッセージをまとめて bsfilter に渡すようにする
- POP3による受信にキューイング機構を設ける
- bsfilter を POP proxy として使うという手もある
- bsfilter の DB を ramdisk 上に置く
- spam フィルタを自前で実装する
- 複数メッセージをまとめて bsfilter に渡すようにする
- MsgInfo のリストを GSList でもっているのを配列等に変える
- サマリビューを GtkTreeView + GtkTreeModel からカスタムツリーモデルに変更
- サマリビューをタブで複数枚持つようにしておき、オープン済みのフォルダを再度開いたときはビューを切り替えるだけで済むようにする。
- UIの見直し
- MimeViewが場所を取りすぎているのでプルダウンメニュー等に変更
- ON/OFFのトグルでもいいかも
- MimeViewが場所を取りすぎているのでプルダウンメニュー等に変更
- 処理速度の向上
- Folder, FolderItem等のGObject化
- メモリ管理の改善
- S/MIME対応
- GNU TLS対応
- OpenSSL compatibility layerがなぜかGPLなのでGNUTLS APIを直接使用すべき?
- SSL_peek()相当のものがないような気がする
- メニューとツールバーをGtkActionで実装
- プラグインの作成
- RSS対応
- 某巨大掲示板対応
- twitterクライアント
- スケジューラ
- リモートメールボックス機能をプラグイン化
- 添付ファイル削除機能
- ベイジアンフィルタを内蔵
- バックアップツール
- 1アカウントで複数のアドレスや署名を使用できるようにする
- アカウントとメールボックスの関連付けを簡単に行えるようにする
-
SOCKS4/5プロキシに対応する- curl のコードなどが参考にできる
- deprecatedなwidgetの置き換え
アドレス帳のGtkCTree
-
添付ファイル削除- プラグインとして実装(3.1beta3)
-
DBを利用した検索→ Sylph-Searcher/Sylpheed Pro で対応 振り分け条件にアドレス帳に登録済みのアドレス送信したアドレスをアドレス帳に自動的に追加(Win32) 名前解決時とconnect時にブロックしないようにするマルチスレッド化プラグイン機構-
ソフトウェアの更新通知(2.7.0) -
POP3サーバ上のメッセージを表示し、直接ダウンロード、削除ができるようにする(リモートメールボックス機能)(2.6.0beta1) テキストビューにフォーカスがある場合、n/pキーでサマリビューにフォーカスを移さない送信時に宛先を確認するオプションの実装送信時に添付忘れを確認する機能検索ダイアログと検索バーに検索ヒット数を表示する縦3ペインモード単体のHTMLメッセージを添付として表示するモードOS終了時に自動的に設定を保存(Win32)送信時に添付ファイルの存在を再チェック送信控えでFromの代わりにToを表示添付されたメッセージに対する返信などの操作exeと同じ場所にあるsylpheed.iniファイルを読むようにするアドレス帳でCSVのインポートができるようにする-
外部コマンドを起動できなかったときにエラーダイアログを表示迷惑メールフィルタなど
ツールバーに停止ボタンツールバーのカスタマイズ機能IMAP4での受信時の自動振り分けローカルスプールからの取り込み時の迷惑メールの振り分け署名文字列を直接指定できるようにするフォルダ毎に最後に開いていたメッセージを記憶起動時に受信箱を自動的に開く-
1行が998バイトを超える場合の対処- 事前に改行する
- ユーザに警告する
- とりあえず警告ダイアログを出すことで対処
- base64/quoted-printableでエンコードする
-
メッセージ作成で破棄したときにまれにクラッシュするバグの修正- とりあえずdestroyの仕方を変えてみて対処してみた
-
迷惑メールボタンの実装- とりあえずコマンド実行+特定のフォルダへの移動を可能に
- 将来はフィルタのアクションと統合するかも
- 一応内部ではフィルタアクションを使用して実装
- 「迷惑メールでない」ボタンはどうする?
- ツールバーには「迷惑メール」のみ置き、「迷惑メール」「迷惑メールでない」をメニューに置く
- 2.4.0betaでツールバーのカスタマイズで「非迷惑メール」ボタンを追加できるようにした