View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001768 | Far Manager | Macro | public | 2011-05-15 21:46 | 2011-05-20 13:53 |
Reporter | Raistlin | Assigned To | vskirdin | ||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | OS Version | XP SP3 |
Product Version | 2.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0001768: testfolder(): неверный код возврата для пустого каталога | ||||
Description | Для пустых каталогов сабж возвращает не 0, как сказано в Энциклопедии, а -1, так же как когда нет доступа. Вообще надо сказать, что значения кодов подобраны неудачно. Был бы логичнее такой набор: 2 папка не пустая 1 папка пустая 0 папка не существует -1 нет доступа -2 ошибка (некорректный параметр или внутренние проблемы с выделением памяти) Если > 0 - существует и доступна Если = 0 - не существует, но можно попробовать создать Если < 0 - ничего обнадеживающего функция не сообщает | ||||
Tags | No tags attached. | ||||
Build | 2040 | ||||
|
dirmix.cpp#TestFolder() заменить 2 строки if (lstError.Get() == ERROR_FILE_NOT_FOUND) return TSTFLD_EMPTY; на вот такое if (lstError.Get() == ERROR_FILE_NOT_FOUND || lstError.Get() == ERROR_NO_MORE_FILES) return TSTFLD_EMPTY; if (lstError.Get() == ERROR_PATH_NOT_FOUND) return TSTFLD_NOTFOUND; на счет изменить коды возврата у макрофункции - это, я думаю, нужно коллегиально решать: можешь на форуме тему поднять :-) |
|
...хотя. Изменены коды возвратов у testfolder. build 2036 |
|
А я уже целое сочинение готовлю на форум. Мысль полетела - не удержать. Тестовый билд выложишь? |
|
http://skirda-file.googlecode.com/files/Far3b2036.7z |
|
На недоступной папке вылезает окно повышения полномочий. Для битого симлинка выдается 0. Для файла - -1. И вот: http://forum.farmanager.com/viewtopic.php?f=15&t=6445 |
|
> На недоступной папке вылезает окно повышения полномочий. Хмм... а поподробнее - какие права у тебя на тачке, какая ось? > Для битого симлинка выдается 0. Что не так? > Для файла - -1. Кто бы сомневался. Функция файлы не рассматривает... |
|
x86 XP SP3, обычный пользователь. > Что не так? Ну как бы 0 - это папка не существует, а тут-то... На небитом симлинке ведь возвращается 1. > Кто бы сомневался. Функция файлы не рассматривает... Логичнее ничего не возвращать, ведь -1 - это "нет доступа". |
|
симлинк битый - ну, все верно: оригинальной папки то нет, на что ссылаться то? > ничего не возвращать ничего - это "0", т.е. "папка не существует" :-) |
|
В общем, как ни крути, все криво выходит. |
|
build 2037 для файла пока возвращаем TSTFLD_ERROR |
|
Билд дашь? P. S. А нет ли где инструкции, как самому скомпилировать? |
|
http://skirda-file.googlecode.com/files/Far3b2038.7z сборка где-то на форуме описана |
|
А что изменилось? По-прежнему выскакивает elevation на недоступной папке. Впрочем, я тестирую на System Volume Information, может, так оно и должно быть... |
|
Впрочем, все же баг. На каталоге, на который нет прав на чтение, но есть права на чтение разрешений, тоже elevation спрашиваем. Мало того, если окно запроса закрываем по Esc, вылетает: ╔═══════════════════ Exception occurred ═══════════════════╗ ║ Exception: Access violation (read from 0x006D0079) ║ ║ Address: 0x004A6566 ║ ║ Function: ║ ║ Module: C:\Program Files\Far3\Far.exe ║ ╟──────────────────────────────────────────────────────────╢ ║ { Terminate FAR } [ Debug ] ║ ╚══════════════════════════════════════════════════════════╝ |
|
едем дальше - http://skirda-file.googlecode.com/files/Far3b2038.2.7z |
|
Да, теперь нормально. |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-05-15 21:46 | Raistlin | New Issue | |
2011-05-19 12:33 | vskirdin | Note Added: 0006929 | |
2011-05-19 12:33 | vskirdin | Assigned To | => vskirdin |
2011-05-19 12:33 | vskirdin | Status | new => assigned |
2011-05-19 14:10 | vskirdin | Note Added: 0006938 | |
2011-05-19 14:10 | vskirdin | Status | assigned => feedback |
2011-05-19 14:11 | Raistlin | Note Added: 0006940 | |
2011-05-19 14:11 | Raistlin | Status | feedback => assigned |
2011-05-19 14:23 | vskirdin | Note Added: 0006941 | |
2011-05-19 14:23 | vskirdin | Status | assigned => feedback |
2011-05-19 15:01 | Raistlin | Note Added: 0006942 | |
2011-05-19 15:01 | Raistlin | Status | feedback => assigned |
2011-05-19 15:02 | Raistlin | Note Edited: 0006942 | |
2011-05-19 16:48 | vskirdin | Note Added: 0006947 | |
2011-05-19 16:58 | Raistlin | Note Added: 0006948 | |
2011-05-19 18:33 | vskirdin | Note Added: 0006954 | |
2011-05-19 18:38 | Raistlin | Note Added: 0006955 | |
2011-05-20 07:10 | vskirdin | Note Added: 0006959 | |
2011-05-20 07:10 | vskirdin | Status | assigned => feedback |
2011-05-20 07:13 | Raistlin | Note Added: 0006960 | |
2011-05-20 07:13 | Raistlin | Status | feedback => assigned |
2011-05-20 07:21 | vskirdin | Note Added: 0006961 | |
2011-05-20 07:21 | vskirdin | Status | assigned => feedback |
2011-05-20 08:13 | Raistlin | Note Added: 0006964 | |
2011-05-20 08:13 | Raistlin | Status | feedback => assigned |
2011-05-20 10:17 | Raistlin | Note Added: 0006969 | |
2011-05-20 12:24 | vskirdin | Note Added: 0006972 | |
2011-05-20 12:24 | vskirdin | Status | assigned => feedback |
2011-05-20 12:37 | Raistlin | Note Added: 0006973 | |
2011-05-20 12:37 | Raistlin | Status | feedback => assigned |
2011-05-20 12:37 | Raistlin | Status | assigned => resolved |
2011-05-20 13:53 | vskirdin | Build | => 2040 |
2011-05-20 13:53 | vskirdin | Status | resolved => closed |
2011-05-20 13:53 | vskirdin | Resolution | open => fixed |
2011-05-20 13:53 | vskirdin | Fixed in Version | => 3.0 |