pushd <path>: странная реакция на хвостовые пробелы в командной строке

Здесь можно сообщить о найденных багах в Far.
Post Reply
Alecsis
Posts: 2
Joined: Wed 29 May, 2013 09:12

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by Alecsis » Wed 26 Apr, 2017 18:15

FAR 3.0.4943 x64
После команды «pushd %WINDIR%» перед нажатием на Enter случайно влепил пробел, получилось вот что :shock:
Image

Без хвостового пробела всё работает нормально.
Провёл серию лабораторных работ:
— запуск FAR'а без плагинов;
— запуск с чистым профилем;
— запуск стабильного build'а 4900;
Во всех перечисленных случаях картина та же самая как под Win7 Pro SP1 x64 (лицензия), так и под WinXP Pro SP3; никаких «левых» макросов нет. В hepl'е нигде явно не сказано, что так делать (т.е. лепить хвостовые пробелы в командную строку) нельзя, да и штатной консоли Windows они по боку. Что характерно, FAR'овская CD относится к ним вполне себе спокойно…

В принципе, оно не смертельно, но таки «осадочек остался» ©
Собсс-но вопрос: это глюк или какая-то глубокая концепция?

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by HaRT » Wed 26 Apr, 2017 18:49

Alecsis wrote: получилось вот что
Как правильно делать снимки экрана
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by zg » Wed 26 Apr, 2017 23:21

создайте папку «windows » — будет нормальная реакция.

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 84 times

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by 2useven10 » Thu 27 Apr, 2017 09:12

Alecsis wrote: это глюк или какая-то глубокая концепция?
Для командной строки это глюк.

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by zg » Thu 27 Apr, 2017 10:08

2useven10 wrote: Для командной строки это глюк.
в чём он заключается? в pushd всё после самой команды - путь, пробелы экранировать кавычками - не обязательно.

User avatar
DrKnS
Posts: 4648
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by DrKnS » Thu 27 Apr, 2017 10:38

zg wrote: в pushd всё после самой команды - путь
Тогда cd, получается, поломан. Чиним?

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by zg » Thu 27 Apr, 2017 11:27

получается, что да.

Shmuel
Posts: 5235
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by Shmuel » Thu 27 Apr, 2017 11:36

Имхо, концевые пробелы в комстроке надо убирать.

2useven10
Posts: 3045
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 84 times

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by 2useven10 » Thu 27 Apr, 2017 11:46

zg wrote: в чём он заключается?
Если мы эмулируем команду, желательно сохранять совместимость c cmd, если для этого нет серьёзных противопоказаний.
Для сохранения невизуализируемого пробела в конце строки разумных оснований нет.
Если нужен, можно поставить кавычки. А если быть пуристом, то и пробелы перед именем каталога надо сохранять.

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by zg » Thu 27 Apr, 2017 12:25

по справке всё, что после команды, трактуется как путь. кавычки не обязательны. так как cmd не поддерживает имена с пробелами на конце, то он их может смело обрезать. фар — поддерживает, никаких разумных оснований обрезать их, учитывая, что всё что после команды путь — я не вижу.

User avatar
HaRT
Moderator
Posts: 8118
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 68 times
Been thanked: 107 times

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by HaRT » Thu 27 Apr, 2017 12:28

Тогда не помешала бы визуализация пробелов в комстроке — например, такая же, как в полях ввода в диалогах.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 4648
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 4 times
Been thanked: 125 times
Contact:

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by DrKnS » Thu 27 Apr, 2017 12:45

2useven10 wrote: пробелы перед именем каталога надо сохранять
Ну как бы да - если сохранять, то везде, если резать - то тоже везде.

Shmuel
Posts: 5235
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by Shmuel » Thu 27 Apr, 2017 12:52

Вероятность ненамеренного ввода пробела в конце не так уж и мала, особенно учитывая, что Far сам вставляет пробел в конце при нажатии CtrlEnter на элементе панели.

User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

pushd <path>: странная реакция на хвостовые пробелы в командной строке

Post by zg » Thu 27 Apr, 2017 12:55

пробелы перед именем каталога — аргумент, тогда действительно можно резать.

Post Reply

Return to “Глюки и баги”