不具合報告/5.0 x86/6
の編集
http://plamo.linet.gr.jp/?%E4%B8%8D%E5%85%B7%E5%90%88%E5%A0%B1%E5%91%8A/5.0+x86/6
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
* gmtpでEUC-JPなファイルが送れない [#bc7138af] - ページ: [[不具合報告/5.0 x86]] - 投稿者: [[kojima]] - 優先順位: 低 - 状態: 提案 - カテゴリー: 不具合報告 - 投稿日: 2012-12-23 (日) 22:50:52 - バージョン: Plamo-5.0 ** メッセージ [#y462812c] MTP経由で外部機器(Nexus7)とgmtpを使って通信する際に、送るファイルの名前がEUC-JPだと エラーになる。とりあえずUTF-8で同名のハードリンクを使ってごまかしているけど、 多分、gmtpの中で文字コード変換処理を追加してやればいいくらいのバグなので、 時間ができたら調べてみよう。 -------- - まだgmtpはパッケージとしてはあげていないけど、個人的な備忘録。 -- [[kojima]] &new{2012-12-23 (日) 22:54:19}; - とりあえずこれくらいの修正でeuc-jpなファイルを送ることができた。 音楽データのトラック名も変換するようにしてみたけどテストはしていない。あとダウンロードはどこかでg_filename_from_utf8()な処理が必要っぽい -- [[kojima]] &new{2013-01-03 (木) 00:57:57}; $ diff -u gMTP/src/mtp.c build/src/mtp.c --- gMTP/src/mtp.c 2012-11-14 13:34:36.000000000 +0900 +++ build/src/mtp.c 2013-01-03 00:39:50.000000000 +0900 @@ -655,9 +655,12 @@ return; } + GError *terror = NULL; + gchar *display_filename; filename_stripped = basename(filename); + display_filename = g_filename_to_utf8(filename_stripped, -1, NULL, NULL, &terror); displayProgressBar(_("File Upload")); - setProgressFilename(g_strdup(filename_stripped)); + setProgressFilename(display_filename); // What we need to do is work what type of file we are sending // and either use the general file send, or @@ -672,7 +675,8 @@ trackfile = LIBMTP_new_track_t(); trackfile->filesize = filesize; - trackfile->filename = g_strdup(filename_stripped); + // trackfile->filename = g_strdup(filename_stripped); + trackfile->filename = g_filename_to_utf8(filename_stripped, -1, NULL, NULL, &terror); trackfile->filetype = find_filetype(filename_stripped); trackfile->parent_id = currentFolderID; trackfile->storage_id = DeviceMgr.devicestorage->id; @@ -708,8 +712,10 @@ // Add some data if it's all blank so we don't freak out some players. if (trackfile->album == NULL) trackfile->album = NULL; - if (trackfile->title == NULL) - trackfile->title = g_strdup(filename_stripped); + if (trackfile->title == NULL) { + // trackfile->title = g_strdup(filename_stripped); + trackfile->title = g_filename_to_utf8(filename_stripped, -1, NULL, NULL, &terror); + } if (trackfile->artist == NULL) trackfile->artist = g_strdup(_("<Unknown>")); if (trackfile->date == NULL) { @@ -776,10 +782,12 @@ LIBMTP_destroy_track_t(trackfile); LIBMTP_destroy_album_t(albuminfo); } else { + GError *error = NULL; // Generic file upload. genfile = LIBMTP_new_file_t(); genfile->filesize = filesize; - genfile->filename = g_strdup(filename_stripped); + // genfile->filename = g_strdup(filename_stripped); + genfile->filename = g_filename_to_utf8(filename_stripped, -1, NULL, NULL, &error); genfile->filetype = find_filetype(filename_stripped); genfile->parent_id = currentFolderID; genfile->storage_id = DeviceMgr.devicestorage->id; - ざっと見、データをダウンロードしてくる際のファイル名の変換処理はlibmtpの側でやらないといけない感じ。そうすると、文字コードの変換機能はlibmtp側にもたせる方がよさげだが、libmtpのコードは見ていない -- [[kojima]] &new{2013-01-03 (木) 08:59:58}; #comment
タイムスタンプを変更しない
* gmtpでEUC-JPなファイルが送れない [#bc7138af] - ページ: [[不具合報告/5.0 x86]] - 投稿者: [[kojima]] - 優先順位: 低 - 状態: 提案 - カテゴリー: 不具合報告 - 投稿日: 2012-12-23 (日) 22:50:52 - バージョン: Plamo-5.0 ** メッセージ [#y462812c] MTP経由で外部機器(Nexus7)とgmtpを使って通信する際に、送るファイルの名前がEUC-JPだと エラーになる。とりあえずUTF-8で同名のハードリンクを使ってごまかしているけど、 多分、gmtpの中で文字コード変換処理を追加してやればいいくらいのバグなので、 時間ができたら調べてみよう。 -------- - まだgmtpはパッケージとしてはあげていないけど、個人的な備忘録。 -- [[kojima]] &new{2012-12-23 (日) 22:54:19}; - とりあえずこれくらいの修正でeuc-jpなファイルを送ることができた。 音楽データのトラック名も変換するようにしてみたけどテストはしていない。あとダウンロードはどこかでg_filename_from_utf8()な処理が必要っぽい -- [[kojima]] &new{2013-01-03 (木) 00:57:57}; $ diff -u gMTP/src/mtp.c build/src/mtp.c --- gMTP/src/mtp.c 2012-11-14 13:34:36.000000000 +0900 +++ build/src/mtp.c 2013-01-03 00:39:50.000000000 +0900 @@ -655,9 +655,12 @@ return; } + GError *terror = NULL; + gchar *display_filename; filename_stripped = basename(filename); + display_filename = g_filename_to_utf8(filename_stripped, -1, NULL, NULL, &terror); displayProgressBar(_("File Upload")); - setProgressFilename(g_strdup(filename_stripped)); + setProgressFilename(display_filename); // What we need to do is work what type of file we are sending // and either use the general file send, or @@ -672,7 +675,8 @@ trackfile = LIBMTP_new_track_t(); trackfile->filesize = filesize; - trackfile->filename = g_strdup(filename_stripped); + // trackfile->filename = g_strdup(filename_stripped); + trackfile->filename = g_filename_to_utf8(filename_stripped, -1, NULL, NULL, &terror); trackfile->filetype = find_filetype(filename_stripped); trackfile->parent_id = currentFolderID; trackfile->storage_id = DeviceMgr.devicestorage->id; @@ -708,8 +712,10 @@ // Add some data if it's all blank so we don't freak out some players. if (trackfile->album == NULL) trackfile->album = NULL; - if (trackfile->title == NULL) - trackfile->title = g_strdup(filename_stripped); + if (trackfile->title == NULL) { + // trackfile->title = g_strdup(filename_stripped); + trackfile->title = g_filename_to_utf8(filename_stripped, -1, NULL, NULL, &terror); + } if (trackfile->artist == NULL) trackfile->artist = g_strdup(_("<Unknown>")); if (trackfile->date == NULL) { @@ -776,10 +782,12 @@ LIBMTP_destroy_track_t(trackfile); LIBMTP_destroy_album_t(albuminfo); } else { + GError *error = NULL; // Generic file upload. genfile = LIBMTP_new_file_t(); genfile->filesize = filesize; - genfile->filename = g_strdup(filename_stripped); + // genfile->filename = g_strdup(filename_stripped); + genfile->filename = g_filename_to_utf8(filename_stripped, -1, NULL, NULL, &error); genfile->filetype = find_filetype(filename_stripped); genfile->parent_id = currentFolderID; genfile->storage_id = DeviceMgr.devicestorage->id; - ざっと見、データをダウンロードしてくる際のファイル名の変換処理はlibmtpの側でやらないといけない感じ。そうすると、文字コードの変換機能はlibmtp側にもたせる方がよさげだが、libmtpのコードは見ていない -- [[kojima]] &new{2013-01-03 (木) 08:59:58}; #comment
テキスト整形のルールを表示する