Запятая в квадратных скобках в масках имён [,]

Здесь можно сообщить о найденных багах в Far.
User avatar
Vertigo
Posts: 85
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 11 times
Been thanked: 4 times

Запятая в квадратных скобках в масках имён [,]

Post by Vertigo »

SlashNet wrote: Thu 08 Feb, 2018 07:47Есть группа сортировки/раскраски:

Code: Select all

*.asc,*.as0,*.ay,*.chi,*.dmm,*.dst,*.M,*.pt[1,2,3],*.S,*.sq[d,t],*.st[1,3,c,p,r],*.$m,*.tf[0,c,d,e],*.spc,*.cop,*.mtc,*.sid,*.ayc,*.ftc,*.gtr,*.ps[c,m,g],*.ts,*.vtx,*.ym
Почему-то она начала реагировать на папки/файлы с именами "2", "3", "D", "C", "R", и т.д.
На другие цифры - другие подобные группы раскраски.

FAR 3.0 build 5140 x86
Win8 x64
Так запятых внутри [] быть не должно. Так как в противном случае *.pt[1,2,3] рассматривается как три независимых маски.
Last edited by HaRT on Thu 08 Feb, 2018 19:38, edited 1 time in total.
Reason: Добавлена цитата из исходной Темы
User avatar
SlashNet
Posts: 638
Joined: Fri 20 Mar, 2009 09:43
Location: Львов
Has thanked: 16 times
Been thanked: 16 times

Глюки и баги, появившиеся в «ночных сборках»

Post by SlashNet »

Странно. Работало же так до недавна (5139 точно).
Попробую запятые поубирать.
Last edited by SlashNet on Thu 08 Feb, 2018 10:17, edited 1 time in total.
ədиw wo⊥є ʚ o⊥ʎнdəʚədəu əɔʚ
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Глюки и баги, появившиеся в «ночных сборках»

Post by DrKnS »

SlashNet wrote: Thu 08 Feb, 2018 10:15Работало же так до недавна
До недавна у вас *.pt[1,2,3] "работало" как *.pt,, *.pt1, *.pt2, *.pt3.
Вряд ли это то, что подразумевалось.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

DrKnS wrote: Thu 08 Feb, 2018 10:31Вряд ли это то, что подразумевалось.
А что подразумевает ?
Last edited by 2useven10 on Thu 08 Feb, 2018 10:40, edited 1 time in total.
User avatar
SlashNet
Posts: 638
Joined: Fri 20 Mar, 2009 09:43
Location: Львов
Has thanked: 16 times
Been thanked: 16 times

Глюки и баги, появившиеся в «ночных сборках»

Post by SlashNet »

DrKnS wrote: Thu 08 Feb, 2018 10:31До недавна у вас *.pt[1,2,3] "работало" как *.pt,, *.pt1, *.pt2, *.pt3.
Да. Совершенно верно.

Файлы "*.pt," (с запятыми в расширении) мне ещё не попадались. Возможно, на эту проблему обратили бы внимание и раньше.

Подобная конструкция юзается ещё с версии 2.0. И, соответственно, я этот синтаксис из помощи взял, а не сам придумал (как 2useven10 подсказывает).

Поубирать запятые отовсюду мне не влом. Но тогда у кого-то может возникнуть ситуация, что маска с запятой у других теперь не будет работать (если она когда-нибудь да понадобится)
ədиw wo⊥є ʚ o⊥ʎнdəʚədəu əɔʚ
User avatar
Vertigo
Posts: 85
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 11 times
Been thanked: 4 times

Глюки и баги, появившиеся в «ночных сборках»

Post by Vertigo »

Хм, давно я туда не смотрел. И никогда запятые не использовал. Тут какое-то противоречие с логикой. В справке они присутствуют, но про них ничего там не сказано. Получается, как-будто это тоже такой допустимый символ. Более того, такой , символ в имени файла как раз допустим.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Глюки и баги, появившиеся в «ночных сборках»

Post by DrKnS »

2useven10 wrote: Thu 08 Feb, 2018 10:39
DrKnS wrote: Thu 08 Feb, 2018 10:31Вряд ли это то, что подразумевалось.
А что подразумевает Help
То, что его автор не до конца понимал собственный код:
маска [c-f,t]*.txt может выбрать config.txt, demo.txt, faq.txt и tips.txt
- а ещё она может внезапно выбрать ,lolwut.txt, и так было всегда.
User avatar
Vertigo
Posts: 85
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 11 times
Been thanked: 4 times

Глюки и баги, появившиеся в «ночных сборках»

Post by Vertigo »

DrKnS wrote: Thu 08 Feb, 2018 11:21и так было всегда
А теперь как? Запятая - исключительно разделитель списка масок, или всё же как-то можно её использовать как литерал? В кавычки заключать?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Глюки и баги, появившиеся в «ночных сборках»

Post by DrKnS »

Vertigo wrote: Thu 08 Feb, 2018 11:24А теперь как?
Запятая и точка с запятой - разделители списка.
Чтобы использовать их в качестве литералов - заключайте в кавычки, хоть всю маску, хоть по одному символу, все кавычки после обработки выбрасываются.

Я могу вернуть логику "если разделитель в квадратных скобках, то это не разделитель", но это усложняет парсер и пока не совсем понятно, что есть большее зло - сломать "неправильные" маски сейчас или ждать, пока они неожиданно совпадут с тем, с чем не просили.
Справку и так и так придется править.
User avatar
Vertigo
Posts: 85
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 11 times
Been thanked: 4 times

Глюки и баги, появившиеся в «ночных сборках»

Post by Vertigo »

DrKnS wrote: Thu 08 Feb, 2018 11:44Я могу вернуть логику "если разделитель в квадратных скобках, то это не разделитель"
По мне так плохая логика. Потому что в других местах действует "запятая - разделитель, если не в кавычках".
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Глюки и баги, появившиеся в «ночных сборках»

Post by HaRT »

DrKnS wrote: Thu 08 Feb, 2018 11:44могу вернуть логику "если разделитель в квадратных скобках, то это не разделитель"
Это не так уж плохо, поскольку для открывающей квадратной скобки ([) заключение в квадратные скобки ([[]) как раз снимает специальное значение (см., напр., тут и там). Зачем ломать совместимость для запятой, непонятно.
DrKnS wrote: Thu 08 Feb, 2018 11:44все кавычки после обработки выбрасываются
Использование кавычек — тоже хорошо, но только если они обрамляют всю маску, поскольку на плагиновых панелях кавычка вполне может быть валидным символом в имени элемента.

Одним словом, я за то, чтобы и совместимость сохранить, и закавычивание маски поддержать.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Vertigo
Posts: 85
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 11 times
Been thanked: 4 times

Глюки и баги, появившиеся в «ночных сборках»

Post by Vertigo »

HaRT wrote: Thu 08 Feb, 2018 13:41Это не так уж плохо, поскольку для открывающей квадратной скобки ([) заключение в квадратные скобки ([[]) как раз снимает специальное значение
Согласен...
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

Если делать совместимость, то запятая (как и минус) должна считаться просто допустимым символом, если она идёт сразу после первой [ или перед последней ]. В противном случае - это разделитель допустимых символов и частью имени она быть не может.
Last edited by 2useven10 on Thu 08 Feb, 2018 14:09, edited 1 time in total.
User avatar
Vertigo
Posts: 85
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 11 times
Been thanked: 4 times

Глюки и баги, появившиеся в «ночных сборках»

Post by Vertigo »

Давайте уж тогда до конца следовать синтаксису регулярок. Про минус в начале или конце поддерживаю, а вот про специальный смысл запятых внутри квадратных скобок вроде ничего такого там нет.

С другой стороны, на кой там вообще минус как описатель диапазона - не понимаю. Точнее, с трудом могу придумать пример практического использования. [0-9a-f]??? Тогда уж проще настоящую регулярку использовать. А тут оставить исключительно как набор литералов.
Last edited by Vertigo on Thu 08 Feb, 2018 14:50, edited 1 time in total.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Глюки и баги, появившиеся в «ночных сборках»

Post by 2useven10 »

Там нет, а в хэлпе было.
Вообще это 'если делать совместимость', можно не делать совсем, а делать так чтобы запятая была неожиданно допустимым символом точно не надо.
Post Reply

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