View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000591 | Plugins | MultiArc (old) | public | 2008-08-20 00:33 | 2020-12-29 10:29 |
Reporter | JohnDoe | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 1.71 | ||||
Summary | 0000591: Баг в разборе PCRE-регэкспов в строке 'FormatX' | ||||
Description | Для примера возьмём 7-zip-архивы. Строка Format0 по умолчанию такова: Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" Эквивалентная регэксп-строка будет такой: Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) (?P<attr>\S+)\s+(?P<size>\d+)\s+(?P<packedSize>\d*) (?P<name>.+)$/" К сожалению, не работает :( Вероятная причина - "слишком большое" количество "именованых строк". Т.е. если убрать какую-нибудь одну из скобок, то всё работает. (само-собой при этом какая-то информация теряется) Вот 2 примера рабочих но "урезаных" регекспов: Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) (?P<attr>\S+)\s+(?P<size>\d+)\s+\d* (?P<name>.+)$/" Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) \S+\s+(?P<size>\d+)\s+(?P<packedSize>\d*) (?P<name>.+)$/" | ||||
Additional Information | Прилагаю в качестве примера листинг архива 7z459_extra.7z http://downloads.sourceforge.net/sevenzip/7z459_extra.7z?modtime=1218634788&big_mirror=0 7-Zip (A) 4.59 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-13 Listing archive: 7z459_extra.7z Method = LZMA BCJ2 Solid = + Blocks = 2 Physical Size = 283015 Headers Size = 608 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2006-03-03 14:05:34 ....A 207 15286 Installer\cr.bat 2005-12-05 16:35:40 ....A 139 Installer\config.txt 2001-08-29 23:19:26 ....A 26948 copying.txt 2008-08-09 17:02:03 ....A 2487 FAR\far7z.txt 2006-05-09 08:04:27 ....A 1805 history.txt 2008-05-19 11:27:29 ....A 1274 License.txt 2008-08-13 10:09:05 ....A 1275 readme.txt 2008-08-13 10:09:10 ....A 3508 Installer\readme.txt 2006-02-24 11:19:29 ....A 2987 FAR\far7z.reg 2006-02-24 11:20:21 ....A 2760 FAR\7zToFar.ini 2008-05-30 13:24:40 ....A 2364 FAR\7-ZipEng.hlf 2008-05-30 13:24:44 ....A 2191 FAR\7-ZipRus.hlf 2008-08-13 10:18:52 ....A 2255 FAR\7-ZipEng.lng 2008-07-29 16:27:04 ....A 2260 FAR\7-ZipRus.lng 2008-08-13 08:24:27 ....A 328704 267121 7zr.exe 2008-08-13 10:19:41 ....A 157184 FAR\7-ZipFar.dll 2008-08-13 08:24:28 ....A 260608 7za.dll 2008-08-13 08:24:29 ....A 164352 7zxa.dll 2008-08-13 08:24:30 ....A 132096 7zS.sfx 2008-08-13 08:24:25 ....A 97280 7zSD.sfx ------------------- ----- ------------ ------------ ------------------------ 1192684 282407 20 files, 0 folders И на всякий случай привожу всю [7z] секцию Custom.ini (потому как та секция что в стандартном Custom.ini уже давно нерабочая, в связи с изменениями в 7-zip'е) [7z] TypeName=7z ID=37 7A BC AF 27 1C IDPos= IDOnly=1 Extension=7z List=7za l -- %%AQ Start="^--" End="^--" ;ok Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) (?P<attr>\S+)\s+(?P<size>\d+)\s+\d* (?P<name>.+)$/" ;ok Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) \S+\s+(?P<size>\d+)\s+(?P<packedSize>\d*) (?P<name>.+)$/" ;bug Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) (?P<attr>\S+)\s+(?P<size>\d+)\s+(?P<packedSize>\d*) (?P<name>.+)$/" Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" Extract=7za x {-p%%P} -r0 -scsDOS -- %%A @%%LQMN ExtractWithoutPath=7za e {-p%%P} -r0 -scsDOS -- %%A @%%LQMN Test=7za t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN Delete=7za d {-p%%P} -r0 -scsDOS -- %%A @%%LQMN Add=7za a {-p%%P} -r0 -t7z -scsDOS -ms=off {%%S} -- %%A @%%LQMN AddRecurse=7za a {-p%%P} -r0 -t7z -scsDOS -ms=off {%%S} -- %%A @%%LQMN AllFilesMask="*" | ||||
Tags | No tags attached. | ||||
2008-08-20 00:40
|
Multiarc PCRE-regexp parsing bug (4,650 bytes)
�� ������� ����� 7-zip-����. ������ Format0 �� ������� ������: Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" ������������ ������-������ ����� �����: Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) (?P<attr>\S+)\s+(?P<size>\d+)\s+(?P<packedSize>\d*) (?P<name>.+)$/" � ��������, �� �������� :( ������� ������ - "������ �����" ��������� "�������� �����". �.�. ���� ����� ����-����� ���� �� ������, �� �� ��������. (����-����� ��� ���� ����-�� �������� ������) ��� 2 ������� ����� �� "������" ���������: Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) (?P<attr>\S+)\s+(?P<size>\d+)\s+\d* (?P<name>.+)$/" Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) \S+\s+(?P<size>\d+)\s+(?P<packedSize>\d*) (?P<name>.+)$/" ������� � ������� ������� ������� ����� 7z459_extra.7z http://downloads.sourceforge.net/sevenzip/7z459_extra.7z?modtime=1218634788&big_mirror=0 [^] 7-Zip (A) 4.59 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-13 Listing archive: 7z459_extra.7z Method = LZMA BCJ2 Solid = + Blocks = 2 Physical Size = 283015 Headers Size = 608 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2006-03-03 14:05:34 ....A 207 15286 Installer\cr.bat 2005-12-05 16:35:40 ....A 139 Installer\config.txt 2001-08-29 23:19:26 ....A 26948 copying.txt 2008-08-09 17:02:03 ....A 2487 FAR\far7z.txt 2006-05-09 08:04:27 ....A 1805 history.txt 2008-05-19 11:27:29 ....A 1274 License.txt 2008-08-13 10:09:05 ....A 1275 readme.txt 2008-08-13 10:09:10 ....A 3508 Installer\readme.txt 2006-02-24 11:19:29 ....A 2987 FAR\far7z.reg 2006-02-24 11:20:21 ....A 2760 FAR\7zToFar.ini 2008-05-30 13:24:40 ....A 2364 FAR\7-ZipEng.hlf 2008-05-30 13:24:44 ....A 2191 FAR\7-ZipRus.hlf 2008-08-13 10:18:52 ....A 2255 FAR\7-ZipEng.lng 2008-07-29 16:27:04 ....A 2260 FAR\7-ZipRus.lng 2008-08-13 08:24:27 ....A 328704 267121 7zr.exe 2008-08-13 10:19:41 ....A 157184 FAR\7-ZipFar.dll 2008-08-13 08:24:28 ....A 260608 7za.dll 2008-08-13 08:24:29 ....A 164352 7zxa.dll 2008-08-13 08:24:30 ....A 132096 7zS.sfx 2008-08-13 08:24:25 ....A 97280 7zSD.sfx ------------------- ----- ------------ ------------ ------------------------ 1192684 282407 20 files, 0 folders � �� ����� ����� ������� �� [7z] ���� Custom.ini (������ ��� �� ���� ��� � ����������� Custom.ini ��� ����� �������, � ���� � ���������� � 7-zip'�) [7z] TypeName=7z ID=37 7A BC AF 27 1C IDPos= IDOnly=1 Extension=7z List=7za l -- %%AQ Start="^--" End="^--" ;ok Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) (?P<attr>\S+)\s+(?P<size>\d+)\s+\d* (?P<name>.+)$/" ;ok Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) \S+\s+(?P<size>\d+)\s+(?P<packedSize>\d*) (?P<name>.+)$/" ;bug Format0="/^(?P<mYear>\d+)-(?P<mMonth>\d+)-(?P<mDay>\d+) (?P<mHour>\d+):(?P<mMin>\d+):(?P<mSec>\d+) (?P<attr>\S+)\s+(?P<size>\d+)\s+(?P<packedSize>\d*) (?P<name>.+)$/" Format0="yyyy tt dd hh mm ss aaaaa zzzzzzzzzzzz pppppppppppp nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" Extract=7za x {-p%%P} -r0 -scsDOS -- %%A @%%LQMN ExtractWithoutPath=7za e {-p%%P} -r0 -scsDOS -- %%A @%%LQMN Test=7za t {-p%%P} -r0 -scsDOS -- %%A @%%LQMN Delete=7za d {-p%%P} -r0 -scsDOS -- %%A @%%LQMN Add=7za a {-p%%P} -r0 -t7z -scsDOS -ms=off {%%S} -- %%A @%%LQMN AddRecurse=7za a {-p%%P} -r0 -t7z -scsDOS -ms=off {%%S} -- %%A @%%LQMN AllFilesMask="*" |
|
Мантис похерил все пробелы, поэтому я продублировал текст в приложенном файле |
|
Исправление этого бага и обновление PCRE до 6.7. |
|
@zollo Great! May be better put this to https://github.com/FarGroup/FarManager/pulls? |
|
Thank you! Fixed in https://github.com/FarGroup/FarManager/pull/321 |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-08-20 00:33 | JohnDoe | New Issue | |
2008-08-20 00:40 | JohnDoe | File Added: Multiarc PCRE-regexp parsing bug | |
2008-08-20 00:43 | JohnDoe | Note Added: 0001753 | |
2013-05-20 20:38 | alexy | Category | MultiArc => MultiArc (old) |
2020-12-24 20:32 | zollo | Note Added: 0016982 | |
2020-12-24 20:32 | zollo | File Added: libpcre-6.7.7z | |
2020-12-25 10:51 | JohnDoe | Note Added: 0016983 | |
2020-12-29 10:29 | JohnDoe | Status | new => resolved |
2020-12-29 10:29 | JohnDoe | Note Added: 0016984 | |
2020-12-29 10:29 | JohnDoe | Status | resolved => closed |
2020-12-29 10:29 | JohnDoe | Resolution | open => fixed |