<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>21080</bug_id>
          
          <creation_ts>2009-08-14 21:01:40 +0400</creation_ts>
          <short_desc>Всегда пишет в юникоде в pipe</short_desc>
          <delta_ts>2009-09-19 12:02:21 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>mpc</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Slava Semushin">php-coder</reporter>
          <assigned_to name="Anton Farygin">rider</assigned_to>
          <cc>evg</cc>
    
    <cc>rider</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96472</commentid>
    <comment_count>0</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-08-14 21:01:40 +0400</bug_when>
    <thetext>Обновился до mpc-0.16-alt1 и получил кракозябры, т.к. у меня локаль CP1251, а mpc выдаёт юникод.

Проверяется так: mpc | cat</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96483</commentid>
    <comment_count>1</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-08-15 07:08:56 +0400</bug_when>
    <thetext>Хотел помочь найти проблемный коммит, но это оказалось непросто: сделал бранч на основе 0.12.0-alt1, посмотрел а в нём только спек. Оказывается в пакете с некоторых пор используются теги. Ок, с ними конечно я не очень умею работать, но попробую: сделал бранч на основе тегов 0.12.1 и 0.14 -- в этих версиях бага ещё нет. Далее надо бы проверить версии 0.15 и 0.16, но для них тегов нет, есть только сразу же последний -- 0.16-alt1

Плохо :(

Попробовал слить репо с официального сайта:

error: transfer closed with outstanding read data remaining (curl_result = 18, http_code = 200, sha1 = fd14fe69f586531ed231c0310c0c4f37f820eb44)
error: Unable to find 946c85ad837cbd90aaf1744291e2cd7c9dde74f5 under http://git.musicpd.org/cgit/master/mpc.git
Cannot obtain needed blob 946c85ad837cbd90aaf1744291e2cd7c9dde74f5
while processing commit 551a6949315dd1c0644ec7e7862e6bf6bca2587e.
fatal: Fetch failed.

Такие дела :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96484</commentid>
    <comment_count>2</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-08-15 07:29:53 +0400</bug_when>
    <thetext>Пришлось качать тарболлы с оффсайта. Дошел до 0.14 -- в нём баг уже есть. Почему он не проявился когда я из тегов собирал -- не знаю, может не то собрал. Короче, качаю тарболлы. Вот он ваш хвалёный гит и груповая разработка -- если не следить, то легче с тарболлами дело иметь.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96485</commentid>
    <comment_count>3</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-08-15 07:57:52 +0400</bug_when>
    <thetext>Ага, нашел! Сломалось между 0.14 и 0.15. Вот код из src/main.c:

	charset_init(command-&gt;pipe &gt;= 0 || isatty(STDIN_FILENO),
		     isatty(STDOUT_FILENO));

И вот прототип этой ф-ции:

charset_init(bool enable_input, bool enable_output);

В моём случае, isatty(STDOUT_FILENO) возвращал 0, т.к. вывод шел не на терминал, а в pipe и перекодировка для выводимых данных отключалась. Это же касается не только данных, которые отправляются в pipe, но и при перенаправлении в файл, например.

Исправить можно, например, так (включает безусловную перекодировку выходных данных):

-	charset_init(command-&gt;pipe &gt;= 0 || isatty(STDIN_FILENO),
-		     isatty(STDOUT_FILENO));
+ 	charset_init(command-&gt;pipe &gt;= 0 || isatty(STDIN_FILENO), 1);

Сейчас отпишу автору насчет этого, что он скажет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96486</commentid>
    <comment_count>4</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-08-15 08:03:03 +0400</bug_when>
    <thetext>P.S. Вышел 0.17, к слову.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96540</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2009-08-16 04:12:48 +0400</bug_when>
    <thetext>(В ответ на комментарий №1)
&gt; Хотел помочь найти проблемный коммит, но это оказалось непросто: сделал бранч
&gt; на основе 0.12.0-alt1, посмотрел а в нём только спек. Оказывается в пакете с
&gt; некоторых пор используются теги.
Не теги, а бранчи. Учите гит, исходники апстрима лежат в отдельном бранче. Рекомендую также пользоваться средствами визуализации: giggle, gitg...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96541</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2009-08-16 04:14:28 +0400</bug_when>
    <thetext>Теперь что касается комментария №3:
&gt; Исправить можно, например, так (включает безусловную перекодировку выходных
&gt; данных):
&gt; 
&gt; -    charset_init(command-&gt;pipe &gt;= 0 || isatty(STDIN_FILENO),
&gt; -             isatty(STDOUT_FILENO));
&gt; +     charset_init(command-&gt;pipe &gt;= 0 || isatty(STDIN_FILENO), 1);
&gt; 
&gt; Сейчас отпишу автору насчет этого, что он скажет.
Не знаю, что вам помешало осилить гит хотя бы в виде веб-интерфейса http://git.musicpd.org/cgit/master/mpc.git , но автор там открытым текстом пишет о своих мотивах для того, чтобы так сделать. Почитайте лог коммита  d99be092. Я не уверен, что стоит откатывать этот коммит.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96549</commentid>
    <comment_count>7</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-08-16 11:44:59 +0400</bug_when>
    <thetext>(В ответ на комментарий №6)
&gt; Почитайте лог коммита  d99be092. Я не уверен, что стоит откатывать этот коммит.

Почитал (http://git.musicpd.org/cgit/master/mpc.git/commit/?id=d99be092) -- вроде как пытались позаботиться о тех у кого локаль не юникодная, а в итоге лично мне стало от этого изменения только хуже.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96564</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2009-08-16 18:41:19 +0400</bug_when>
    <thetext>Что-то я не чувствую разницы между mpc ls и mpc ls | cat у себя на машине. Кодировку выставил ru_RU.CP1251</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96565</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2009-08-16 18:43:45 +0400</bug_when>
    <thetext>Т.е. выглядит это в обоих случаях так:
РЎСѓСЂРіР°РЅРѕРІР° Рё РѕСЂРєРµСЃС‚СЂ
и так далее. У mpd, правда, стоит filesystem_charset utf8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96567</commentid>
    <comment_count>10</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-08-16 18:49:46 +0400</bug_when>
    <thetext>(В ответ на комментарий №9)
&gt; Т.е. выглядит это в обоих случаях так:
&gt; РЎСѓСЂРіР°РЅРѕРІР° Рё РѕСЂРєРµСЃС‚СЂ
&gt; и так далее. У mpd, правда, стоит filesystem_charset utf8.

У меня filesystem_charset &quot;cp1251&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96775</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2009-08-19 01:46:53 +0400</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; Сейчас отпишу автору насчет этого, что он скажет.
Автор что-нибудь ответил?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96783</commentid>
    <comment_count>12</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-08-19 06:08:50 +0400</bug_when>
    <thetext>(В ответ на комментарий №11)
&gt; (В ответ на комментарий №3)
&gt; &gt; Сейчас отпишу автору насчет этого, что он скажет.
&gt; Автор что-нибудь ответил?

Нет ещё.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98992</commentid>
    <comment_count>13</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-09-13 11:00:04 +0400</bug_when>
    <thetext>(В ответ на комментарий №12)
&gt; Автор что-нибудь ответил?

Да. Вот его ответ:

&quot;I have reverted that patch now, you have convinced me that it was a
bad idea.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98993</commentid>
    <comment_count>14</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-09-13 11:02:40 +0400</bug_when>
    <thetext>P.S.: http://git.musicpd.org/cgit/master/mpc.git/commit/?id=ea66e807e892bc05e49a761c201a2c67f56a3361</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99104</commentid>
    <comment_count>15</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2009-09-15 02:02:37 +0400</bug_when>
    <thetext>mpc-0.17-alt2 -&gt; sisyphus:

* Mon Sep 14 2009 Alexey Rusakov &lt;ktirf@altlinux&gt; 0.17-alt2

- revert &quot;disable character set conversion to/from pipe&quot; (ALT #21080).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99475</commentid>
    <comment_count>16</comment_count>
    <who name="Slava Semushin">php-coder</who>
    <bug_when>2009-09-19 11:05:31 +0400</bug_when>
    <thetext>Чот не помогло.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99481</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Rusakov">ktirf</who>
    <bug_when>2009-09-19 12:02:21 +0400</bug_when>
    <thetext>Ну, я даже не знаю, чем помочь. Можете взять мой гит и посмотреть, правильный ли коммит я накатил. Хотя мне показалось, что правильный.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>