View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000537 | Far Manager 1.7x | Macro | public | 2008-05-22 05:10 | 2008-06-08 23:55 |
Reporter | HaRT | Assigned To | vskirdin | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 1.71 | ||||
Fixed in Version | 1.71 | ||||
Summary | 0000537: Menu.Select не позиционирует на Folders в меню фильтров | ||||
Description | Вызываем макросы из файловой панели: Этот работает, как и ожидается: CtrlI Menu.Select ( "Panel file type", MENUSELECT_MATCH_HEAD ) А вот этот не позиционирует: CtrlI Menu.Select ( "Folders", MENUSELECT_MATCH_HEAD ) | ||||
Tags | No tags attached. | ||||
Build | 2364 | ||||
|
У меня работают оба варианта. |
|
> У меня работают оба варианта. На какой сборке? |
|
На идентичной. |
|
> На идентичной. Прискорбно, я тщательно перепроверил. Подождём, воспроизведётся ли у Валентина. Интересно, что на это может влиять. |
|
Я разобрался. У меня первым в списке идёт фильтр "SVN folders", а возвращаемое значение, как видно из макроса, я не проверял. Ошибка в Фаре состоит в том, что Menu.Select при ненулевом втором параметре ищет вхождение в ЛЮБОМ месте строки, а не в начале/ конце, как это следует из документации. Предлагаю привести поведение функции в соответствие с документацией, а также добавить ещё одно значение (3) для второго параметра, означающее "искать в любом месте строки". |
|
Хмм... не вижу ошибки. В коде вот такое: switch(iParam) { case 0: // full compare Res=StrCmpI(strTemp,str)==0; break; case 1: // begin compare Res=StrStrI(strTemp,str)!=NULL; break; case 2: // end compare Res=RevStrStrI(strTemp,str)!=NULL; break; } Здесь (с игнорированием регистра букв): StrCmpI - полное совпадение StrStrI - ищет подстроку, начиная с начала входной строки (приближаясь к концу строки) RevStrStrI - ищет подстроку, начиная с конца входной строки (приближаясь к началу строки) Если сделать второй параметр == 3, то это будет MENUSELECT_MATCH_PATTERN - те самые паттерны, которые масками файлов обзываются. Делать? |
|
Валя, а вот ты можешь мне объяснить какая логическая разница между 1 и 2? |
|
Короче надо вот такое: char *p; switch(iParam) { case 0: // full compare Res=StrCmpI(strTemp,str)==0; break; case 1: // begin compare p=StrStrI(strTemp,str); Res=p==strTemp; break; case 2: // end compare p=RevStrStrI(strTemp,str); Res=p!=NULL && *(p+StrLength(str)) == 0; break; case 3: Res=StrStrI(strTemp,str)!=NULL; break; } |
|
> это будет MENUSELECT_MATCH_PATTERN - те самые паттерны, которые масками файлов обзываются. > Делать? Да, иногда было бы полезно. Предлагаю, чтобы это было при N=4. |
|
Хмм... вот только для паттерна будет заюзана CmpName со всеми вытекающими (в коде CmpName_Body видно...) Так что... вот и подумалось - а стоит ли сейчас 4-й пункт делать? :-) |
|
после 2364/486 без паттернов |
|
Проверено на сборке 2368 |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-05-22 05:10 | HaRT | New Issue | |
2008-05-22 05:10 | HaRT | Status | new => assigned |
2008-05-22 05:10 | HaRT | Assigned To | => vskirdin |
2008-05-22 05:20 | DrKnS | Note Added: 0001509 | |
2008-05-22 05:29 | HaRT | Note Added: 0001510 | |
2008-05-22 05:35 | DrKnS | Note Added: 0001511 | |
2008-05-22 05:37 | HaRT | Note Added: 0001512 | |
2008-05-22 07:52 | HaRT | Note Added: 0001514 | |
2008-05-22 09:03 | vskirdin | Note Added: 0001515 | |
2008-05-23 01:35 | alexy | Note Added: 0001517 | |
2008-05-23 02:00 | alexy | Note Added: 0001518 | |
2008-05-23 02:00 | alexy | Note Edited: 0001518 | |
2008-05-23 03:10 | HaRT | Note Added: 0001519 | |
2008-05-23 07:14 | vskirdin | Note Added: 0001523 | |
2008-05-23 13:01 | vskirdin | Note Added: 0001524 | |
2008-05-23 13:01 | vskirdin | Status | assigned => feedback |
2008-06-06 03:37 | HaRT | Status | feedback => resolved |
2008-06-06 03:37 | HaRT | Resolution | open => fixed |
2008-06-06 03:37 | HaRT | Note Added: 0001557 | |
2008-06-08 23:54 | alexy | Build | => 2364 |
2008-06-08 23:54 | alexy | Status | resolved => closed |
2008-06-08 23:55 | alexy | Fixed in Version | => 1.71 |