?

Log in

No account? Create an account
Баг - Олег Етеревский [entries|archive|friends|userinfo]
Oleg Eterevsky

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Баг [23 March 2009|17:26]
Oleg Eterevsky

Есть такой дистрибутив линукса, Gentoo. Команда, с помощью которой в нём обновляются все пакеты выглядит вот так:

# emerge -avuDN world

Долгое время у меня с этой командой был связан абсолютно неуловимый баг. Примерно в половине случаев, когда я её набирал, она выдавала следующую ошибку:

# emerge -avuDN world
Usage: emerge [options]

emerge: error: no such option: -

Никакой разумной закономерности в её поведении мне найти не удавалось. Вот ошибка выдаётся, ввожу команду ещё раз — всё работает. Ни с какими другими программами ничего подобного не происходило.

Если скопировать и вставить команду, то ошибка сохраняется, поэтому я долго думал, что, должно быть, у меня почему-то вводится не тот дефис. Ну, мало ли в юникоде знаков, похожих на чёрточку. Может, это минус, а не дефис. Разгадка оказалась проще. Когда я нажимаю на клавиатуре пробел, удерживая при этом шифт, вместо обычного пробела вводится неразрывный. Список опций а команде заканчивается на "DN", и после них я иногда отпускал шифт недостаточно быстро.

LinkReply

Comments:
[User Picture]From: ted_dy
2009-03-23 03:00 pm (UTC)
А это только в юникоде неразрывный пробел таким образом получается?
(Reply) (Thread)
[User Picture]From: eterevsky
2009-03-23 03:09 pm (UTC)
Как настроишь, так и будет получаться. Вообще, юникод никак не специфицирует поведение клавиатур. =)
(Reply) (Parent) (Thread)
[User Picture]From: allambee
2009-03-23 03:15 pm (UTC)
забавно получилось (-:
а вот у меня клавиатура на лаптопе при включении то работает, то нет. такая вот неопределённость
(Reply) (Thread)
[User Picture]From: cavaler
2009-03-23 04:12 pm (UTC)
Если ОНИ ;-) такие умные, чтобы вводить такое с клавиатуры, могли бы побыть достаточно умными и чтобы при парсинге параметров воспринимать его как пробельный символ ;-/
(Reply) (Thread)
[User Picture]From: eterevsky
2009-03-23 07:21 pm (UTC)
Ну, это спорный вопрос. Может и не следует его считать разделителем. Это же как знак_подчёркивания, только невидимый.

К тому же, это я сам такой умный, что в Гномовских настройках клавиатуры включил такую фичу.
(Reply) (Parent) (Thread)
[User Picture]From: orbital_teapot
2009-03-23 04:24 pm (UTC)
Крайне интересный баг.
(Reply) (Thread)
[User Picture]From: octavarium
2009-03-23 04:36 pm (UTC)
Я пользуюсь "другой" коммандой
# emerge -uDaNv world
И у меня такого бага никогда не было :)

Кстати, каким терминалом пользуешься?
(Reply) (Thread)
[User Picture]From: eterevsky
2009-03-23 07:23 pm (UTC)
Гномовским. Но от терминала это стопудово не зависит. К тому же, всякие продвинутые клавиатурные фичи ещё сначала надо включить.
(Reply) (Parent) (Thread)
[User Picture]From: octavarium
2009-03-23 07:29 pm (UTC)
Ну почему же не зависит?! Теоретически может! Я знаю, как в xterm напечатать в английском лайауте шведские ö, ä, å. А вот в urxvt этот же фокус не работает.

Однако у меня в гномовском терминале шифт-пробел действительно ни к чему такому не привёл.
(Reply) (Parent) (Thread)
[User Picture]From: eterevsky
2009-03-23 07:35 pm (UTC)
Это фича включается в System > Preferences > Keyboard > Layouts > Layout Options.

После того, как ты это включил, то соответвующие комбинации клавиш начинают работать везде — именно так я в браузере набираю длинное тире.
(Reply) (Parent) (Thread)
[User Picture]From: ringm
2009-03-25 11:04 pm (UTC)
Можно добавить неразрывный пробел в $IFS - хотя, возможно, это идеологически неправильно.
(Reply) (Thread)