<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Опечатки и ненайденные команды]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=24325</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=24325&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Опечатки и ненайденные команды».]]></description>
		<lastBuildDate>Fri, 21 Sep 2012 16:51:37 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299501#p299501</link>
			<description><![CDATA[<p>Спасибо, вот, сижу, разбираюсь пока что... Сказывается нехватка опыта <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></description>
			<author><![CDATA[null@example.com (yars)]]></author>
			<pubDate>Fri, 21 Sep 2012 16:51:37 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299501#p299501</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299488#p299488</link>
			<description><![CDATA[<p>Кстати, в той же теме был помянут и такой патч:<br /><a href="https://abf.rosalinux.ru/import/bash/blob/rosa2012lts/bash-4.2-multibyte.patch">https://abf.rosalinux.ru/import/bash/bl … byte.patch</a></p><p>суть которого в преобразовании перед проверкой мультибайтной строки в юникодную строку символов фиксированной ширины (wchar_t).</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Fri, 21 Sep 2012 14:03:19 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299488#p299488</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299249#p299249</link>
			<description><![CDATA[<p>Ладно, напишу багрепорт, раз сам эту багофичу не могу побороть &quot;правильно&quot;. Патч я откатил, все нормально, вроде бы ничего не отвалилось пока что <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> А вот с детектом UTF-8 надо подумать...</p>]]></description>
			<author><![CDATA[null@example.com (yars)]]></author>
			<pubDate>Wed, 19 Sep 2012 19:05:55 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299249#p299249</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299235#p299235</link>
			<description><![CDATA[<p>Хм, на модификацию меня пока не хватит (только-только c мэйкфайлами научился обращаться), а вот патчик откачу, спасибо. <br />А по какому признаку можно определить, что имеем дело с UTF-8?</p>]]></description>
			<author><![CDATA[null@example.com (yars)]]></author>
			<pubDate>Wed, 19 Sep 2012 18:06:06 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299235#p299235</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299229#p299229</link>
			<description><![CDATA[<p>Ну и лечить соответственно: откатить вышеприведённый фрагмент патча, либо модифицировать приведённую пару функций на детектирование UTF-8 и соответствующее поведение.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 19 Sep 2012 17:48:12 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299229#p299229</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299227#p299227</link>
			<description><![CDATA[<p>yars,<br />всё на поверхности (см. добавленные вызовы ansic_shouldquote(), ansic_quote()):</p><div class="codebox"><pre><code>--- bash-4.1/execute_cmd.c    Wed Dec 30 21:55:37 2009
+++ bash-4.2/execute_cmd.c    Thu Feb 10 02:32:25 2011

...

@@ -4571,6 +4731,9 @@
       hookf = find_function (NOTFOUND_HOOK);
       if (hookf == 0)
         {
+          /* Make sure filenames are displayed using printable characters */
+          if (ansic_shouldquote (pathname))
+            pathname = ansic_quote (pathname, 0, NULL);
           internal_error (_(&quot;%s: command not found&quot;), pathname);
           exit (EX_NOTFOUND);    /* Posix.2 says the exit status is 127 */
         }</code></pre></div><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>lib/sh/strtrans.c</p><div class="codebox"><pre><code>/* return 1 if we need to quote with $&#039;...&#039; because of non-printing chars. */
int
ansic_shouldquote (string)
     const char *string;
{
  const char *s;
  unsigned char c;

  if (string == 0)
    return 0;

  for (s = string; c = *s; s++)
    if (ISPRINT (c) == 0)
      return 1;

  return 0;
}</code></pre></div><p>lib/sh/strtrans.c</p><div class="codebox"><pre><code>/* Take a string STR, possibly containing non-printing characters, and turn it
   into a $&#039;...&#039; ANSI-C style quoted string.  Returns a new string. */
char *
ansic_quote (str, flags, rlen)
     char *str;
     int flags, *rlen;
{
  char *r, *ret, *s;
  int l, rsize;
  unsigned char c;

  if (str == 0 || *str == 0)
    return ((char *)0);

  l = strlen (str);
  rsize = 4 * l + 4;
  r = ret = (char *)xmalloc (rsize);

  *r++ = &#039;$&#039;;
  *r++ = &#039;\&#039;&#039;;

  for (s = str, l = 0; *s; s++)
    {
      c = *s;
      l = 1;        /* 1 == add backslash; 0 == no backslash */
      switch (c)
    {
    case ESC: c = &#039;E&#039;; break;
#ifdef __STDC__
    case &#039;\a&#039;: c = &#039;a&#039;; break;
    case &#039;\v&#039;: c = &#039;v&#039;; break;
#else
    case &#039;\007&#039;: c = &#039;a&#039;; break;
    case 0x0b: c = &#039;v&#039;; break;
#endif

    case &#039;\b&#039;: c = &#039;b&#039;; break;
    case &#039;\f&#039;: c = &#039;f&#039;; break;
    case &#039;\n&#039;: c = &#039;n&#039;; break;
    case &#039;\r&#039;: c = &#039;r&#039;; break;
    case &#039;\t&#039;: c = &#039;t&#039;; break;
    case &#039;\\&#039;:
    case &#039;\&#039;&#039;:
      break;
    default:
      if (ISPRINT (c) == 0)
        {
          *r++ = &#039;\\&#039;;
          *r++ = TOCHAR ((c &gt;&gt; 6) &amp; 07);
          *r++ = TOCHAR ((c &gt;&gt; 3) &amp; 07);
          *r++ = TOCHAR (c &amp; 07);
          continue;
        }
      l = 0;
      break;
    }
      if (l)
    *r++ = &#039;\\&#039;;
      *r++ = c;
    }

  *r++ = &#039;\&#039;&#039;;
  *r = &#039;\0&#039;;
  if (rlen)
    *rlen = r - ret;
  return ret;
}</code></pre></div></div></div><p>Вот только &quot;ansic_shouldquote()&quot; использует &quot;по-char-ную&quot; (const char *s; ... s++) проверку на &quot;печатность&quot;, что весьма слабо подходит для UTF-8.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 19 Sep 2012 17:34:17 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299227#p299227</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299226#p299226</link>
			<description><![CDATA[<p>Ай, я черт слепой, прошу прощения. <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> Я действительно не заметил, что это bash из 13.37. Сейчас пороюсь в исходниках.</p>]]></description>
			<author><![CDATA[null@example.com (yars)]]></author>
			<pubDate>Wed, 19 Sep 2012 17:14:54 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299226#p299226</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299225#p299225</link>
			<description><![CDATA[<p>yars,<br />под спойлером была демонстрация того, что собранный в 14.0_RC4 bash, взятый из 13.37, указанной проблемой не страдает. Следовательно, нужно смотреть, что там в этой части менялось между версиями bash-а. <br />Но мог и элементарно чего-то не заметить.</p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 19 Sep 2012 17:07:36 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299225#p299225</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299224#p299224</link>
			<description><![CDATA[<div class="quotebox"><cite>bormant пишет:</cite><blockquote><p>Кстати: <a href="http://unixforum.org/index.php?showtopi">http://unixforum.org/index.php?showtopi</a> … ;p=1225819</p></blockquote></div><p>О! Спасибо, я эту темку смотрел, но не до конца. Интерес к ней немного поугас.&nbsp; Значит, нужно найти патч(и), что в эту функцию вмешиваются, откатить и отправить багрепорт Патрику <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> <br />Как временная мера прописывание этой <a href="http://unixforum.org/index.php?showtopic=102243&amp;view=findpost&amp;p=1225819">функции</a> в /etc/.bashrc вполне, но... это полумера <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /><br />Да, кстати, а вы пересобирали (см. сообщение №8) вообще без патчей? То-то я гляжу, у меня та же последовательность действий, что под спойлером, результата не дала.</p>]]></description>
			<author><![CDATA[null@example.com (yars)]]></author>
			<pubDate>Wed, 19 Sep 2012 17:00:42 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299224#p299224</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=299223#p299223</link>
			<description><![CDATA[<p>Кстати: <a href="http://unixforum.org/index.php?showtopic=102243&amp;view=findpost&amp;p=1225819">http://unixforum.org/index.php?showtopi … ;p=1225819</a></p>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Wed, 19 Sep 2012 16:10:58 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=299223#p299223</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=298952#p298952</link>
			<description><![CDATA[<p>Резюме: настройки локали не при чём, причина в исходниках/патчах bash-а.</p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><p>Собственно проверка:<br />Slackware-14.0_RC4</p><div class="codebox"><pre><code># wget -r -nH --cut-dirs=5 ftp://ftp.osuosl.org/pub/slackware/slackware-13.37/source/a/bash
# cd bash
# chmod +x *Build
# ./*Build
# explodepkg /tmp/bash-*t?z
# bin/bash4.new
# дд
bash4.new: дд: command not found
# exit
# дд
-bash: $&#039;\320\264\320\264&#039;: command not found</code></pre></div></div></div>]]></description>
			<author><![CDATA[null@example.com (bormant)]]></author>
			<pubDate>Tue, 18 Sep 2012 07:42:09 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=298952#p298952</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=298948#p298948</link>
			<description><![CDATA[<p>Выходит, это проблема bash&#039;а? Попробую пересобрать. О результатах отпишусь.</p>]]></description>
			<author><![CDATA[null@example.com (yars)]]></author>
			<pubDate>Tue, 18 Sep 2012 06:26:20 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=298948#p298948</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=298945#p298945</link>
			<description><![CDATA[<p>Кстати, в <em>bash</em> вывод такой же как у вас<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />lupo@gentoo-laptop ~ $ дд<br />bash: $&#039;\320\264\320\264&#039;: команда не найдена<br /></div><br />в <em>zsh</em> пишет<br /><div class="termtitle" style="font-family: sans-serif; position:relative; height:auto; width:auto; background:#3A4061; color:#FFFFFF; padding: 1px;"><b> Консоль:</b></div>
<div class="termcont" style="font-family: Terminus; position:relative; height:auto; width:auto; overflow-x:scroll; white-space: nowrap ; overflow-y:auto;background:#000000; color:#4EF44E; line-height:1.2; padding: 3px; font-size: 1rem; max-height: 60vh"><br />lupo@gentoo-laptop ~ % ды -д<br />zsh: command not found: ды<br /></div></p>]]></description>
			<author><![CDATA[null@example.com (Lupo Alberto)]]></author>
			<pubDate>Tue, 18 Sep 2012 06:12:31 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=298945#p298945</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=298944#p298944</link>
			<description><![CDATA[<p>Да, это вылезло в процессе обновления системы. Вот и хочу вернуть это в нормальное состояние. Вот вывод:<br /></p><div class="codebox"><pre><code>locale
LANG=ru_RU.UTF-8
LC_CTYPE=&quot;ru_RU.UTF-8&quot;
LC_NUMERIC=&quot;ru_RU.UTF-8&quot;
LC_TIME=&quot;ru_RU.UTF-8&quot;
LC_COLLATE=C
LC_MONETARY=&quot;ru_RU.UTF-8&quot;
LC_MESSAGES=&quot;ru_RU.UTF-8&quot;
LC_PAPER=&quot;ru_RU.UTF-8&quot;
LC_NAME=&quot;ru_RU.UTF-8&quot;
LC_ADDRESS=&quot;ru_RU.UTF-8&quot;
LC_TELEPHONE=&quot;ru_RU.UTF-8&quot;
LC_MEASUREMENT=&quot;ru_RU.UTF-8&quot;
LC_IDENTIFICATION=&quot;ru_RU.UTF-8&quot;
LC_ALL=</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (yars)]]></author>
			<pubDate>Tue, 18 Sep 2012 06:04:42 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=298944#p298944</guid>
		</item>
		<item>
			<title><![CDATA[Re: Опечатки и ненайденные команды]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=298943#p298943</link>
			<description><![CDATA[<p><strong>yars</strong>, честно говоря, так и не понял, в чём именно вопрос <img src="https://linuxforum.ru/img/smilies/ac.gif" alt="ac" /><br />Вам не нравится такой «кодированный» вывод ошибки в консоль?<br />Покажите<br /></p><div class="codebox"><pre><code>locale</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Lupo Alberto)]]></author>
			<pubDate>Tue, 18 Sep 2012 06:00:32 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=298943#p298943</guid>
		</item>
	</channel>
</rss>
