Page 1 of 1

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

Posted: Wed 26 Apr, 2017 18:15
by Alecsis
FAR 3.0.4943 x64
После команды «pushd %WINDIR%» перед нажатием на Enter случайно влепил пробел, получилось вот что :shock:
Image

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

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

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

Posted: Wed 26 Apr, 2017 18:49
by HaRT
Alecsis wrote: получилось вот что
Как правильно делать снимки экрана

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

Posted: Wed 26 Apr, 2017 23:21
by zg
создайте папку «windows » — будет нормальная реакция.

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

Posted: Thu 27 Apr, 2017 09:12
by 2useven10
Alecsis wrote: это глюк или какая-то глубокая концепция?
Для командной строки это глюк.

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

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

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

Posted: Thu 27 Apr, 2017 10:38
by DrKnS
zg wrote: в pushd всё после самой команды - путь
Тогда cd, получается, поломан. Чиним?

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

Posted: Thu 27 Apr, 2017 11:27
by zg
получается, что да.

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

Posted: Thu 27 Apr, 2017 11:36
by Shmuel
Имхо, концевые пробелы в комстроке надо убирать.

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

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

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

Posted: Thu 27 Apr, 2017 12:25
by zg
по справке всё, что после команды, трактуется как путь. кавычки не обязательны. так как cmd не поддерживает имена с пробелами на конце, то он их может смело обрезать. фар — поддерживает, никаких разумных оснований обрезать их, учитывая, что всё что после команды путь — я не вижу.

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

Posted: Thu 27 Apr, 2017 12:28
by HaRT
Тогда не помешала бы визуализация пробелов в комстроке — например, такая же, как в полях ввода в диалогах.

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

Posted: Thu 27 Apr, 2017 12:45
by DrKnS
2useven10 wrote: пробелы перед именем каталога надо сохранять
Ну как бы да - если сохранять, то везде, если резать - то тоже везде.

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

Posted: Thu 27 Apr, 2017 12:52
by Shmuel
Вероятность ненамеренного ввода пробела в конце не так уж и мала, особенно учитывая, что Far сам вставляет пробел в конце при нажатии CtrlEnter на элементе панели.

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

Posted: Thu 27 Apr, 2017 12:55
by zg
пробелы перед именем каталога — аргумент, тогда действительно можно резать.