View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002124 | Far Manager | RegExp | public | 2012-06-06 12:19 | 2012-06-07 12:40 |
Reporter | shmuel | Assigned To | 2useven10 | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | OS Version | XP SP3 |
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0002124: Регекс /$/m работает "нестандартно" | ||||
Description | При "многострочном поиске" (опция m) выражение /$/m соответствует не пустой строке, предшествующей символам, разделяющим строки, а этим самым символам. То-есть, длина совпадения при таком поиске может быть 1 (для \r или \n), либо 2 (для \r\n). Не знаю, считать это багом или нет, но это поведение отличается от библиотек PCRE и Oniguruma, где $ никогда не "потребляет" символов. | ||||
Tags | No tags attached. | ||||
Build | 2723 | ||||
|
Как воспроизвести? |
|
как вы в этом убедились ? (воспроизводимость - всегда) |
|
Поскольку поиск в редакторе Фара не многострочный, для проверки не подойдёт. Я проверял плагином LuaFAR for Editor (аналогичную проверку можно сделать и на Си): far.Show( regex.match("abc\r", "/$/m") == "\r", regex.match("abc\n", "/$/m") == "\n", regex.match("abc\r\n", "/$/m") == "\r\n") Получил true все три раза. |
|
ещё раз: почему вы решили, что match() у вас не позиция где начинается соответствие регулярному выражению, а строка ? чему соответствует match() в LuaFAR - известно только вам. давайте его реализацию через apiRegExpControl(). |
|
> ещё раз: почему вы решили, что match() у вас не позиция где начинается соответствие регулярному выражению, а строка ? Потому что врапперы для регекс-библиотек пишу уже 8 лет. Функция match написана мной и проверена вдоль и поперёк. > чему соответствует match() в LuaFAR - известно только вам. Ну почему же, она описана в мануале LuaFAR. > давайте его реализацию через apiRegExpControl(). А вам трудно проверить как apiRegExpControl() работает в описанном мною случае? Тогда сочувствую. |
|
>Тогда сочувствую. Зашибись... |
|
|
|
Чтобы не быть голословным, приложен тестовый плагин. На Си, без Луафара. Для LuaFAR-фобов замечу, что в этом Си-плагине 82 строки, тогда как то же самое на LuaFAR'е делается 4-мя строками, как было показано выше. |
|
> Для LuaFAR-фобов замечу Предлагается подобные высказывания держать при себе. Официально поддерживается только то, что есть сейчас. Отсюда вытекает простое требование - предоставлять тестовые плагины для багрепортов на Це. Никто и никогда не будет разбираться в том, почему Ваш lua-фан-арт не работает. |
|
> Отсюда вытекает простое требование - предоставлять тестовые плагины для багрепортов на Це. Требования предоставлять тестовые плагины нет и никогда не было. Данный багрепорт как он есть чётко и однозначно описывает поведение системы. > Никто и никогда не будет разбираться в том, почему Ваш lua-фан-арт не работает. Во-первых, не говорите за всех. Во-вторых, данный баг-репорт не содержит никакого упоминания о Луафаре. Меня спросили, как я это воспроизвожу - я ответил. В третьих, мой lua-фан-арт как раз то и работает превосходно. |
|
> В третьих, мой lua-фан-арт как раз то и работает превосходно. Это означает, что Инц исчерпан? |
|
Валя, я же приложил плагин на Си, который демонстрирует описанное поведение. Луафар там не задействован (и вообще к данному Инцу никакого отношения не имеет). |
|
2shmuel проверяйте -- http://sharapov-16.narod.ru/0/far3-m2124.7z add: не только описанный баг а и 'не отвалилось ли что-то другое'... |
|
Проверил, всё хорошо. Также запустил свои автоматические тесты для регекспов - ничего не отвалилось. |
|
build 2723 |
|
ps: я не Lua-фоб и не Lua-фил, я Lua-пох. несколько последних строчек из OpenW() было-бы достаточно... |
|
> ps: я не Lua-фоб и не Lua-фил, я Lua-пох. Уже теплее. > несколько последних строчек из OpenW() было-бы достаточно... Поскольку не телепат, не мог знать, чего вам было бы достаточно. |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-06-06 12:19 | shmuel | New Issue | |
2012-06-06 12:26 | JohnDoe | Note Added: 0009304 | |
2012-06-06 12:27 | 2useven10 | Note Added: 0009305 | |
2012-06-06 12:56 | shmuel | Note Added: 0009306 | |
2012-06-06 16:35 | 2useven10 | Note Added: 0009307 | |
2012-06-06 16:36 | 2useven10 | Note Edited: 0009307 | |
2012-06-06 16:47 | shmuel | Note Added: 0009308 | |
2012-06-06 17:58 | JohnDoe | Note Added: 0009309 | |
2012-06-06 18:45 | shmuel | File Added: test1.7z | |
2012-06-06 18:45 | shmuel | Note Added: 0009310 | |
2012-06-06 20:01 | vskirdin | Note Added: 0009311 | |
2012-06-06 20:02 | vskirdin | Note Edited: 0009311 | |
2012-06-06 20:19 | shmuel | Note Added: 0009312 | |
2012-06-07 05:45 | vskirdin | Note Added: 0009313 | |
2012-06-07 06:15 | shmuel | Note Added: 0009314 | |
2012-06-07 09:32 | 2useven10 | Note Added: 0009315 | |
2012-06-07 09:34 | 2useven10 | Note Edited: 0009315 | |
2012-06-07 10:31 | shmuel | Note Added: 0009316 | |
2012-06-07 10:37 | 2useven10 | Note Added: 0009317 | |
2012-06-07 10:37 | 2useven10 | Assigned To | => 2useven10 |
2012-06-07 10:37 | 2useven10 | Status | new => feedback |
2012-06-07 10:56 | 2useven10 | Note Added: 0009318 | |
2012-06-07 12:12 | shmuel | Note Added: 0009319 | |
2012-06-07 12:12 | shmuel | Status | feedback => assigned |
2012-06-07 12:12 | shmuel | Status | assigned => resolved |
2012-06-07 12:40 | 2useven10 | Build | => 2723 |
2012-06-07 12:40 | 2useven10 | Status | resolved => closed |
2012-06-07 12:40 | 2useven10 | Resolution | open => fixed |
2012-06-07 12:40 | 2useven10 | Fixed in Version | => 3.0 |