View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003336 | Far Manager | RegExp | public | 2016-10-30 13:40 | 2022-09-04 18:28 |
Reporter | DrKnS | Assigned To | DrKnS | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Target Version | 3.0 | Fixed in Version | 3.0 | ||
Summary | 0003336: Регекс \{(.)?\} находит } в {} | ||||
Description | Есть регекс \{(.)?\} - т. е. или любой символ в фигурных скобках, или пустые фигурные скобки. При поиске в строке {} в $1 внезапно оказывается }. std::regex / https://regex101.com - в $1 пусто. На первый взгляд - код корректно откатывается назад, но не устанавливает RegExpMatch обратно в {-1, -1}. | ||||
Tags | No tags attached. | ||||
Build | 6018 | ||||
|
Фигурные скобки не существенны для данной неисправности. То есть, можно чуть укоротить формулировку: Регекс a(.)?b находит b в ab |
|
В строке RegExp.cpp:3229 начинается комментарий, убрав который это исправится. Но наверное он там по какой-то причине... Которую я совершенно не помню :) |
|
Приложен патч для Фар3. Проверен на far2l. Все мои тесты проходит. patch.diff (448 bytes)
--- RegExp.cpp.old Sun Sep 04 19:55:31 2022 +++ RegExp.cpp Sun Sep 04 19:57:20 2022 @@ -3095,12 +3095,11 @@ st.savestr=str; stack.emplace_back(st); } - /* if(op->bracket.index>=0 && op->bracket.index<matchcount) { - match[op->bracket.index].end=str-start; + match[op->bracket.index].start=-1; + match[op->bracket.index].end=-1; } - */ break; } |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-10-30 13:40 | DrKnS | New Issue | |
2016-10-30 14:04 | shmuel | Note Added: 0014956 | |
2016-11-01 05:22 | Xecutor | Note Added: 0014967 | |
2022-09-04 18:02 | shmuel | Note Added: 0017351 | |
2022-09-04 18:02 | shmuel | File Added: patch.diff | |
2022-09-04 18:28 | DrKnS | Assigned To | => DrKnS |
2022-09-04 18:28 | DrKnS | Status | new => closed |
2022-09-04 18:28 | DrKnS | Resolution | open => fixed |
2022-09-04 18:28 | DrKnS | Fixed in Version | => 3.0 |
2022-09-04 18:28 | DrKnS | Build | => 6018 |