Плугин Network сборка 52. Не соберётся в GCC - в NetClass.cpp перед строкой 407 забыли переменную объявить.
Итог: make: *** [final.32W.gcc/obj/NetClass.o] Error 1
Лечится одной строкой раньше строки 405: long FILE_ATTRIBUTE_VIRTUAL = 0;. Варнинги связанные с вольным обращением с типами данных останутся.
Комплексный патч включает в себя прибитие данной ошибки, и прибитие ошибок Mantis#957/958 c Samba (правда для Микрософт и её поклонников это всё равно что красная тряпка для быка) для наглядности дан в теге море - 369 строк, многовато будет иначе публиковать. [more=Полный патч для плугина Network build 52]
Код: diff --ignore-file-name-case -rtuFdTl old/changelog new/changelog
--- old/changelog 2009-09-11 03:06:52 +0400
+++ new/changelog 2009-09-11 11:20:23 +0400
@@ -1,6 +1,10 @@
VictorVG 10.09.2009 20:22:29 +0300 - build 52-1
-1. Не собирался в GCC - переменные надо указывать явно до их использования. Исправил.
+1. Приспособим патчи Mantis#957 и #958 и к новому билду - решим эти проблемы в зародыше.
+2. GCC: Заодно и очередную злую багу от Микрософта пришибём - gcc ругается (и справедливо! - спецификации языка грубейшим образом нарушены, где только можно и нельзя - Микрософт...
) - "NetClass.cpp:407: error: 'FILE_ATTRIBUTE_VIRTUAL' was not declared in this scope", а в итоге "make: *** [final.32W.gcc/obj/NetClass.o] Error 1". Лечится добавкой в NetClass.cpp строки 405: ' long FILE_ATTRIBUTE_VIRTUAL = 0;' явно обявляющей данную переменную с инициализациеё 0x0 - нет мусора, нет и ошибок. Если что, поправьте мой патч.
+
+ RE: Явное объявление переменных всегда считалось хорошим тоном даже для PL/1, который допускает их неявное объявление по контексту формальным описанием языка, а про Algol, Fortran, Kobol, Assembler я просто молчу.
Это только Микрософт позволяет себе плевать на стандарты ISO - что с них взять, M$ - это диагноз, а он увы, не лечится.
+3. Заодно уж и GCC майк поправим - пусть он сам определяет надо ли справки и языковые файлы конвертировать, чистит "мусор" и "сдаёт нам работу" в папке с именем плагина.
svs 10.09.2009 17:11:40 +0300 - build 52
@@ -9,6 +13,15 @@
Для принтеров пока выставляется файловый атрибут FILE_ATTRIBUTE_VIRTUAL (чтобы можно было отработать в макросах, раскраске, etc.)
Выгоды пока NULL (если не воспользоваться UserMenu и каким нибудь VB/JS/etc-скриптом).
+VictorVG 25.08.2009 04:05:37 +0300 - build 51-1
+
+1. Build number chenged up to 51-1 as UNIX like style
+
+VictorVG 06.07.2009 04:02:38 +0300 - build 51a
+
+1. Mantis#0000957: Невозможно перейти в скрытые Samba-шары
+2. Mantis#0000958: При переходе через net: с открытого ресурса на несуществующий текущим остается предыдущий ресурс
+
t-rex 29.03.2009 19:11:54 +0200
1. From DiRTy GaRRy: патч от варнингов на разное выравнивание структур при компиляции плагина на VS9 с ключом /GL.
diff --ignore-file-name-case -rtuFdTl old/makefile_gcc new/makefile_gcc
--- old/makefile_gcc 2009-07-03 10:12:17 +0400
+++ new/makefile_gcc 2009-09-11 11:12:31 +0400
@@ -6,11 +6,25 @@
NetFavorites.cpp \
NetMix.cpp \
NetNT.cpp \
-NetReg.cpp
-DOCS = NetEng.hlf NetRus.hlf NetEng.lng NetRus.lng
-
+NetReg.cpp
+DOCS = NetEng.hlf NetRus.hlf NetEng.lng NetRus.lng changelog
USERLIBS = -lmpr
-
+OBJ = $(DLLDIR)/obj
+RMR = rm -fR
+CNV = ../common/convert.exe
+MV = mv -f
+CPD = cp -fu -t
+RM = rm -f
include ../makefile_gcc_def_inc
-
include ../makefile_gcc_target_inc
+all:
+ @$(RMR) $(OBJ)
+ifdef WIDE
+ @$(CNV) NetEng.hlf $(DLLDIR)
+ @$(CNV) NetRus.hlf $(DLLDIR)
+ @$(CNV) NetEng.lng $(DLLDIR)
+ @$(CNV) NetRus.lng $(DLLDIR)
+else
+ @$(CPD) $(DLLDIR) NetEng.hlf NetRus.hlf NetEng.lng NetRus.lng
+endif
+ @$(MV) $(DLLDIR) $(NAME)
\ No newline at end of file
diff --ignore-file-name-case -rtuFdTl old/NetClass.cpp new/NetClass.cpp
--- old/NetClass.cpp 2009-09-11 01:42:30 +0400
+++ new/NetClass.cpp 2009-09-11 06:55:36 +0400
@@ -401,6 +401,7 @@
#else
NewPanelItem[CurItemPos].FindData.lpwszFileName = _wcsdup(RemoteName);
#endif
+
long FILE_ATTRIBUTE_VIRTUAL = 0;
DWORD attr = FILE_ATTRIBUTE_DIRECTORY;
if (NetList[I].dwType==RESOURCETYPE_PRINT)
@@ -895,117 +896,116 @@
TCHAR AnsiDir[NM];
OEMToChar(Dir,AnsiDir);
if (AnsiDir [0] == _T('/'))
- AnsiDir [0] = _T('\\');
- if (AnsiDir [1] == _T('/'))
- AnsiDir [1] = _T('\\');
+ if (AnsiDir [1] == _T('/'))
+ AnsiDir [1] = _T('\\');
- for (unsigned I=0;I<NetList.Count();I++)
- {
- TCHAR RemoteName[NM];
- GetRemoteName(&NetList[I],RemoteName);
- if (FSF.LStricmp(AnsiDir,RemoteName)==0)
- {
- if (CheckFavoriteItem(&NetList[I]))
- {
- NetResourceList::CopyNetResource (CurResource, NetList [I]);
- PCurResource = &CurResource;
- //RootResources.Push (CurResource);
-
- return TRUE;
- }
- if ((NetList[I].dwUsage & RESOURCEUSAGE_CONTAINER)==0 &&
- (NetList[I].dwType & RESOURCETYPE_DISK) &&
- NetList[I].lpRemoteName!=NULL)
- {
- if (IsFind)
- return(FALSE);
- TCHAR NewDir[NM],LocalName[NM];
- GetLocalName(NetList[I].lpRemoteName,LocalName);
- if (*LocalName)
- if(IsReadable(LocalName))
- lstrcpy(NewDir,LocalName);
- else
- {
- Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
- NULL, (const TCHAR **) GetMsg (MError), 0, 0);
- return TRUE;
- }
- else
- {
- BOOL ConnectError = FALSE;
- lstrcpy(NewDir,NetList[I].lpRemoteName);
- CharToOEM(NewDir,NewDir);
- if (IsExplicit)
- {
- if (!AddConnectionExplicit (&NetList [I]) || !IsReadable (NewDir))
- ConnectError = TRUE;
- }
- else {
- if (!IsReadable(NewDir))
- if (!AddConnection(&NetList[I]) || !IsReadable (NewDir))
- ConnectError = TRUE;
- }
- if (ConnectError)
- {
- DWORD res = GetLastError();
- if(!IsExplicit)
- if (res == ERROR_INVALID_PASSWORD || res == ERROR_LOGON_FAILURE || res == ERROR_ACCESS_DENIED || res == ERROR_INVALID_HANDLE)
- ConnectError = !((AddConnectionFromFavorites(&NetList[I]) ||
- AddConnectionExplicit(&NetList[I])) && IsReadable (NewDir));
- if(ConnectError)
- {
- ChangeDirSuccess = FALSE;
- if (GetLastError() != ERROR_CANCELLED)
- Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
- NULL, (const TCHAR **) GetMsg (MError), 0, 0);
- return TRUE;
- }
- }
- }
-#ifndef UNICODE
- Info.Control(this,FCTL_CLOSEPLUGIN,NewDir);
-#else
- Info.Control(this,FCTL_CLOSEPLUGIN,0,(LONG_PTR)NewDir);
-#endif
- return(TRUE);
- }
- if (IsExplicit?!AddConnectionExplicit(&NetList[I]):!IsResourceReadable (NetList [I]))
- {
- int res = GetLastError();
- if (res == ERROR_INVALID_PASSWORD || res == ERROR_LOGON_FAILURE || res == ERROR_ACCESS_DENIED || res == ERROR_LOGON_TYPE_NOT_GRANTED)
- ChangeDirSuccess = IsExplicit?FALSE
AddConnectionFromFavorites(&NetList[I]) || AddConnectionExplicit(&NetList[I]));
- else
- ChangeDirSuccess = FALSE;
- if(!ChangeDirSuccess)
- {
- if (GetLastError() != ERROR_CANCELLED)
- Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
- NULL, (const TCHAR **) GetMsg (MError), 0, 0);
- return FALSE;
- }
- }
- NetResourceList::CopyNetResource (CurResource, NetList [I]);
- PCurResource = &CurResource;
- if (!IsMSNetResource (CurResource))
- {
-#ifdef NETWORK_LOGGING
- LogData(_T("Resource is not MSN"));
- LogNetResource(CurResource);
-#endif
- RootResources.Push (CurResource);
- }
-#ifdef NETWORK_LOGGING
- else
- {
- LogData(_T("Resource is MSN"));
- LogNetResource(CurResource);
- }
-#endif
- return(TRUE);
- }
- }
- return FALSE;
-}
+ for (unsigned I=0;I<NetList.Count();I++)
+ {
+ TCHAR RemoteName[NM];
+ GetRemoteName(&NetList[I],RemoteName);
+ if (FSF.LStricmp(AnsiDir,RemoteName)==0)
+ {
+ if (CheckFavoriteItem(&NetList[I]))
+ {
+ NetResourceList::CopyNetResource (CurResource, NetList [I]);
+ PCurResource = &CurResource;
+ //RootResources.Push (CurResource);
+
+ return TRUE;
+ }
+ if ((NetList[I].dwUsage & RESOURCEUSAGE_CONTAINER)==0 &&
+ (NetList[I].dwType & RESOURCETYPE_DISK) &&
+ NetList[I].lpRemoteName!=NULL)
+ {
+ if (IsFind)
+ return(FALSE);
+ TCHAR NewDir[NM],LocalName[NM];
+ GetLocalName(NetList[I].lpRemoteName,LocalName);
+ if (*LocalName)
+ if(IsReadable(LocalName))
+ lstrcpy(NewDir,LocalName);
+ else
+ {
+ Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
+ NULL, (const TCHAR **) GetMsg (MError), 0, 0);
+ return TRUE;
+ }
+ else
+ {
+ BOOL ConnectError = FALSE;
+ lstrcpy(NewDir,NetList[I].lpRemoteName);
+ CharToOEM(NewDir,NewDir);
+ if (IsExplicit)
+ {
+ if (!AddConnectionExplicit (&NetList [I]) || !IsReadable (NewDir))
+ ConnectError = TRUE;
+ }
+ else {
+ if (!IsReadable(NewDir))
+ if (!AddConnection(&NetList[I]) || !IsReadable (NewDir))
+ ConnectError = TRUE;
+ }
+ if (ConnectError)
+ {
+ DWORD res = GetLastError();
+ if(!IsExplicit)
+ if (res == ERROR_INVALID_PASSWORD || res == ERROR_LOGON_FAILURE || res == ERROR_ACCESS_DENIED || res == ERROR_INVALID_HANDLE)
+ ConnectError = !((AddConnectionFromFavorites(&NetList[I]) ||
+ AddConnectionExplicit(&NetList[I])) && IsReadable (NewDir));
+ if(ConnectError)
+ {
+ ChangeDirSuccess = FALSE;
+ if (GetLastError() != ERROR_CANCELLED)
+ Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
+ NULL, (const TCHAR **) GetMsg (MError), 0, 0);
+ return TRUE;
+ }
+ }
+ }
+ #ifndef UNICODE
+ Info.Control(this,FCTL_CLOSEPLUGIN,NewDir);
+ #else
+ Info.Control(this,FCTL_CLOSEPLUGIN,0,(LONG_PTR)NewDir);
+ #endif
+ return(TRUE);
+ }
+ if (IsExplicit?!AddConnectionExplicit(&NetList[I]):!IsResourceReadable (NetList [I]))
+ {
+ int res = GetLastError();
+ if (res == ERROR_INVALID_PASSWORD || res == ERROR_LOGON_FAILURE || res == ERROR_ACCESS_DENIED || res == ERROR_LOGON_TYPE_NOT_GRANTED)
+ ChangeDirSuccess = IsExplicit?FALSE
AddConnectionFromFavorites(&NetList[I]) || AddConnectionExplicit(&NetList[I]));
+ else
+ ChangeDirSuccess = FALSE;
+ if(!ChangeDirSuccess)
+ {
+ if (GetLastError() != ERROR_CANCELLED)
+ Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
+ NULL, (const TCHAR **) GetMsg (MError), 0, 0);
+ return FALSE;
+ }
+ }
+ NetResourceList::CopyNetResource (CurResource, NetList [I]);
+ PCurResource = &CurResource;
+ if (!IsMSNetResource (CurResource))
+ {
+ #ifdef NETWORK_LOGGING
+ LogData(_T("Resource is not MSN"));
+ LogNetResource(CurResource);
+ #endif
+ RootResources.Push (CurResource);
+ }
+ #ifdef NETWORK_LOGGING
+ else
+ {
+ LogData(_T("Resource is MSN"));
+ LogNetResource(CurResource);
+ }
+ #endif
+ return(TRUE);
+ }
+ }
+ return FALSE;
+ }
BOOL NetBrowser::IsMSNetResource (const NETRESOURCE &Res)
@@ -1305,21 +1305,21 @@
Info.Control(this,FCTL_GETPANELINFO,0,(LONG_PTR)&PInfo);
#endif
- for (int I=0;I<PInfo.SelectedItemsNumber;I++)
- {
-#ifndef UNICODE
- if (!MapNetworkDrive (PInfo.SelectedItems[I].FindData.cFileName, (Key == VK_F6), ((ControlState&PKF_SHIFT)==0)))
-#else
- PluginPanelItem* PPI=(PluginPanelItem*)malloc(Info.Control(this,FCTL_GETSELECTEDPANELITEM,I,0));
- if(PPI)
- {
- Info.Control(this,FCTL_GETSELECTEDPANELITEM,I,(LONG_PTR)PPI);
- }
- if (!PPI||!MapNetworkDrive (PPI->FindData.lpwszFileName, (Key == VK_F6), ((ControlState&PKF_SHIFT)==0)))
-#endif
- {
-#ifdef UNICODE
- free(PPI);
+ for (int I=0;I<PInfo.SelectedItemsNumber;I++)
+ {
+ #ifndef UNICODE
+ if (!MapNetworkDrive (PInfo.SelectedItems[I].FindData.cFileName, (Key == VK_F6), ((ControlState&PKF_SHIFT)==0)))
+ #else
+ PluginPanelItem* PPI=(PluginPanelItem*)malloc(Info.Control(this,FCTL_GETSELECTEDPANELITEM,I,0));
+ if(PPI)
+ {
+ Info.Control(this,FCTL_GETSELECTEDPANELITEM,I,(LONG_PTR)PPI);
+ }
+ if (!PPI||!MapNetworkDrive (PPI->FindData.lpwszFileName, (Key == VK_F6), ((ControlState&PKF_SHIFT)==0)))
+ #endif
+ {
+ #ifdef UNICODE
+ free(PPI);
#endif
break;
}
@@ -1994,18 +1994,18 @@
}
}
- CharUpper(ComputerName);
+ CharUpper(ComputerName);
- NETRESOURCE res;
- NetResourceList::InitNetResource (res);
- if (!GetResourceInfo (ComputerName, &res))
- return FALSE;
- /*
- if (!IsMSNetResource (res))
- return FALSE;
- */
- if (!IsResourceReadable(res))
- {
+ NETRESOURCE res;
+ NetResourceList::InitNetResource (res);
+ if (!GetResourceInfo (ComputerName, &res))
+ return FALSE;
+ /*
+ if (!IsMSNetResource (res))
+ return FALSE;
+ */
+ if (!IsResourceReadable(res))
+ {
int err = GetLastError();
if (err == ERROR_INVALID_PASSWORD || err == ERROR_LOGON_FAILURE || err == ERROR_ACCESS_DENIED || err == ERROR_INVALID_HANDLE || err == ERROR_LOGON_TYPE_NOT_GRANTED)
if(!((AddConnectionFromFavorites(&res)||AddConnectionExplicit(&res))&&IsResourceReadable (res)))
diff --ignore-file-name-case -rtuFdTl old/NetEng.lng new/NetEng.lng
--- old/NetEng.lng 2009-09-10 18:53:03 +0400
+++ new/NetEng.lng 2009-09-10 20:19:07 +0400
@@ -22,6 +22,7 @@
"Cannot browse network"
"Cannot connect \"%.40s\" to %s"
+"Cannot connect to %s"
"The disk name has a remembered connection"
"If you do not close the open files, data may be lost."
diff --ignore-file-name-case -rtuFdTl old/NetRus.lng new/NetRus.lng
--- old/NetRus.lng 2009-09-10 18:53:03 +0400
+++ new/NetRus.lng 2009-09-10 20:19:22 +0400
@@ -22,6 +22,7 @@
"ЋиЁЎЄ Їа®б¬®ва бҐвЁ"
"ЌҐ г¤ Ґвбп Ї®¤б®Ґ¤Ё-Ёвм \"%.40s\" Є %s"
+"ЌҐ г¤ Ґвбп Ї®¤б®Ґ¤Ё-Ёвмбп Є %s"
"ќв® Ё¬п ¤ЁбЄ 㦥 § ¤Ґ©бвў®ў -® Ї®¤ § Ї®¬-Ґ--®Ґ ᮥ¤Ё-Ґ-ЁҐ"
"…б«Ё ўл -Ґ § Єа®ҐвҐ ®вЄалвлҐ д ©«л, ў®§¬®¦- Ї®вҐап ¤ --ле."
diff --ignore-file-name-case -rtuFdTl old/Network.rc new/Network.rc
--- old/Network.rc 2009-09-10 18:53:03 +0400
+++ new/Network.rc 2009-09-10 19:26:10 +0400
@@ -1,6 +1,6 @@
#include "farversion.hpp"
-#define PLUGIN_BUILD 52
+#define PLUGIN_BUILD 52-1
#define PLUGIN_DESC "Network Plugin for FAR Manager"
#define PLUGIN_NAME "Network"
#define PLUGIN_FILENAME "Network.dll"
![](http://i.ru-board.com/s/smile.gif)
![](http://i.ru-board.com/s/smile.gif)
![](http://i.ru-board.com/s/smile.gif)
Комплексный патч включает в себя прибитие данной ошибки, и прибитие ошибок Mantis#957/958 c Samba (правда для Микрософт и её поклонников это всё равно что красная тряпка для быка) для наглядности дан в теге море - 369 строк, многовато будет иначе публиковать. [more=Полный патч для плугина Network build 52]
Код: diff --ignore-file-name-case -rtuFdTl old/changelog new/changelog
--- old/changelog 2009-09-11 03:06:52 +0400
+++ new/changelog 2009-09-11 11:20:23 +0400
@@ -1,6 +1,10 @@
VictorVG 10.09.2009 20:22:29 +0300 - build 52-1
-1. Не собирался в GCC - переменные надо указывать явно до их использования. Исправил.
+1. Приспособим патчи Mantis#957 и #958 и к новому билду - решим эти проблемы в зародыше.
+2. GCC: Заодно и очередную злую багу от Микрософта пришибём - gcc ругается (и справедливо! - спецификации языка грубейшим образом нарушены, где только можно и нельзя - Микрософт...
![](http://i.ru-board.com/s/smile.gif)
+
+ RE: Явное объявление переменных всегда считалось хорошим тоном даже для PL/1, который допускает их неявное объявление по контексту формальным описанием языка, а про Algol, Fortran, Kobol, Assembler я просто молчу.
![](http://i.ru-board.com/s/smile.gif)
![](http://i.ru-board.com/s/smile.gif)
+3. Заодно уж и GCC майк поправим - пусть он сам определяет надо ли справки и языковые файлы конвертировать, чистит "мусор" и "сдаёт нам работу" в папке с именем плагина.
svs 10.09.2009 17:11:40 +0300 - build 52
@@ -9,6 +13,15 @@
Для принтеров пока выставляется файловый атрибут FILE_ATTRIBUTE_VIRTUAL (чтобы можно было отработать в макросах, раскраске, etc.)
Выгоды пока NULL (если не воспользоваться UserMenu и каким нибудь VB/JS/etc-скриптом).
+VictorVG 25.08.2009 04:05:37 +0300 - build 51-1
+
+1. Build number chenged up to 51-1 as UNIX like style
+
+VictorVG 06.07.2009 04:02:38 +0300 - build 51a
+
+1. Mantis#0000957: Невозможно перейти в скрытые Samba-шары
+2. Mantis#0000958: При переходе через net: с открытого ресурса на несуществующий текущим остается предыдущий ресурс
+
t-rex 29.03.2009 19:11:54 +0200
1. From DiRTy GaRRy: патч от варнингов на разное выравнивание структур при компиляции плагина на VS9 с ключом /GL.
diff --ignore-file-name-case -rtuFdTl old/makefile_gcc new/makefile_gcc
--- old/makefile_gcc 2009-07-03 10:12:17 +0400
+++ new/makefile_gcc 2009-09-11 11:12:31 +0400
@@ -6,11 +6,25 @@
NetFavorites.cpp \
NetMix.cpp \
NetNT.cpp \
-NetReg.cpp
-DOCS = NetEng.hlf NetRus.hlf NetEng.lng NetRus.lng
-
+NetReg.cpp
+DOCS = NetEng.hlf NetRus.hlf NetEng.lng NetRus.lng changelog
USERLIBS = -lmpr
-
+OBJ = $(DLLDIR)/obj
+RMR = rm -fR
+CNV = ../common/convert.exe
+MV = mv -f
+CPD = cp -fu -t
+RM = rm -f
include ../makefile_gcc_def_inc
-
include ../makefile_gcc_target_inc
+all:
+ @$(RMR) $(OBJ)
+ifdef WIDE
+ @$(CNV) NetEng.hlf $(DLLDIR)
+ @$(CNV) NetRus.hlf $(DLLDIR)
+ @$(CNV) NetEng.lng $(DLLDIR)
+ @$(CNV) NetRus.lng $(DLLDIR)
+else
+ @$(CPD) $(DLLDIR) NetEng.hlf NetRus.hlf NetEng.lng NetRus.lng
+endif
+ @$(MV) $(DLLDIR) $(NAME)
\ No newline at end of file
diff --ignore-file-name-case -rtuFdTl old/NetClass.cpp new/NetClass.cpp
--- old/NetClass.cpp 2009-09-11 01:42:30 +0400
+++ new/NetClass.cpp 2009-09-11 06:55:36 +0400
@@ -401,6 +401,7 @@
#else
NewPanelItem[CurItemPos].FindData.lpwszFileName = _wcsdup(RemoteName);
#endif
+
long FILE_ATTRIBUTE_VIRTUAL = 0;
DWORD attr = FILE_ATTRIBUTE_DIRECTORY;
if (NetList[I].dwType==RESOURCETYPE_PRINT)
@@ -895,117 +896,116 @@
TCHAR AnsiDir[NM];
OEMToChar(Dir,AnsiDir);
if (AnsiDir [0] == _T('/'))
- AnsiDir [0] = _T('\\');
- if (AnsiDir [1] == _T('/'))
- AnsiDir [1] = _T('\\');
+ if (AnsiDir [1] == _T('/'))
+ AnsiDir [1] = _T('\\');
- for (unsigned I=0;I<NetList.Count();I++)
- {
- TCHAR RemoteName[NM];
- GetRemoteName(&NetList[I],RemoteName);
- if (FSF.LStricmp(AnsiDir,RemoteName)==0)
- {
- if (CheckFavoriteItem(&NetList[I]))
- {
- NetResourceList::CopyNetResource (CurResource, NetList [I]);
- PCurResource = &CurResource;
- //RootResources.Push (CurResource);
-
- return TRUE;
- }
- if ((NetList[I].dwUsage & RESOURCEUSAGE_CONTAINER)==0 &&
- (NetList[I].dwType & RESOURCETYPE_DISK) &&
- NetList[I].lpRemoteName!=NULL)
- {
- if (IsFind)
- return(FALSE);
- TCHAR NewDir[NM],LocalName[NM];
- GetLocalName(NetList[I].lpRemoteName,LocalName);
- if (*LocalName)
- if(IsReadable(LocalName))
- lstrcpy(NewDir,LocalName);
- else
- {
- Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
- NULL, (const TCHAR **) GetMsg (MError), 0, 0);
- return TRUE;
- }
- else
- {
- BOOL ConnectError = FALSE;
- lstrcpy(NewDir,NetList[I].lpRemoteName);
- CharToOEM(NewDir,NewDir);
- if (IsExplicit)
- {
- if (!AddConnectionExplicit (&NetList [I]) || !IsReadable (NewDir))
- ConnectError = TRUE;
- }
- else {
- if (!IsReadable(NewDir))
- if (!AddConnection(&NetList[I]) || !IsReadable (NewDir))
- ConnectError = TRUE;
- }
- if (ConnectError)
- {
- DWORD res = GetLastError();
- if(!IsExplicit)
- if (res == ERROR_INVALID_PASSWORD || res == ERROR_LOGON_FAILURE || res == ERROR_ACCESS_DENIED || res == ERROR_INVALID_HANDLE)
- ConnectError = !((AddConnectionFromFavorites(&NetList[I]) ||
- AddConnectionExplicit(&NetList[I])) && IsReadable (NewDir));
- if(ConnectError)
- {
- ChangeDirSuccess = FALSE;
- if (GetLastError() != ERROR_CANCELLED)
- Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
- NULL, (const TCHAR **) GetMsg (MError), 0, 0);
- return TRUE;
- }
- }
- }
-#ifndef UNICODE
- Info.Control(this,FCTL_CLOSEPLUGIN,NewDir);
-#else
- Info.Control(this,FCTL_CLOSEPLUGIN,0,(LONG_PTR)NewDir);
-#endif
- return(TRUE);
- }
- if (IsExplicit?!AddConnectionExplicit(&NetList[I]):!IsResourceReadable (NetList [I]))
- {
- int res = GetLastError();
- if (res == ERROR_INVALID_PASSWORD || res == ERROR_LOGON_FAILURE || res == ERROR_ACCESS_DENIED || res == ERROR_LOGON_TYPE_NOT_GRANTED)
- ChangeDirSuccess = IsExplicit?FALSE
![](http://i.ru-board.com/s/sad.gif)
- else
- ChangeDirSuccess = FALSE;
- if(!ChangeDirSuccess)
- {
- if (GetLastError() != ERROR_CANCELLED)
- Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
- NULL, (const TCHAR **) GetMsg (MError), 0, 0);
- return FALSE;
- }
- }
- NetResourceList::CopyNetResource (CurResource, NetList [I]);
- PCurResource = &CurResource;
- if (!IsMSNetResource (CurResource))
- {
-#ifdef NETWORK_LOGGING
- LogData(_T("Resource is not MSN"));
- LogNetResource(CurResource);
-#endif
- RootResources.Push (CurResource);
- }
-#ifdef NETWORK_LOGGING
- else
- {
- LogData(_T("Resource is MSN"));
- LogNetResource(CurResource);
- }
-#endif
- return(TRUE);
- }
- }
- return FALSE;
-}
+ for (unsigned I=0;I<NetList.Count();I++)
+ {
+ TCHAR RemoteName[NM];
+ GetRemoteName(&NetList[I],RemoteName);
+ if (FSF.LStricmp(AnsiDir,RemoteName)==0)
+ {
+ if (CheckFavoriteItem(&NetList[I]))
+ {
+ NetResourceList::CopyNetResource (CurResource, NetList [I]);
+ PCurResource = &CurResource;
+ //RootResources.Push (CurResource);
+
+ return TRUE;
+ }
+ if ((NetList[I].dwUsage & RESOURCEUSAGE_CONTAINER)==0 &&
+ (NetList[I].dwType & RESOURCETYPE_DISK) &&
+ NetList[I].lpRemoteName!=NULL)
+ {
+ if (IsFind)
+ return(FALSE);
+ TCHAR NewDir[NM],LocalName[NM];
+ GetLocalName(NetList[I].lpRemoteName,LocalName);
+ if (*LocalName)
+ if(IsReadable(LocalName))
+ lstrcpy(NewDir,LocalName);
+ else
+ {
+ Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
+ NULL, (const TCHAR **) GetMsg (MError), 0, 0);
+ return TRUE;
+ }
+ else
+ {
+ BOOL ConnectError = FALSE;
+ lstrcpy(NewDir,NetList[I].lpRemoteName);
+ CharToOEM(NewDir,NewDir);
+ if (IsExplicit)
+ {
+ if (!AddConnectionExplicit (&NetList [I]) || !IsReadable (NewDir))
+ ConnectError = TRUE;
+ }
+ else {
+ if (!IsReadable(NewDir))
+ if (!AddConnection(&NetList[I]) || !IsReadable (NewDir))
+ ConnectError = TRUE;
+ }
+ if (ConnectError)
+ {
+ DWORD res = GetLastError();
+ if(!IsExplicit)
+ if (res == ERROR_INVALID_PASSWORD || res == ERROR_LOGON_FAILURE || res == ERROR_ACCESS_DENIED || res == ERROR_INVALID_HANDLE)
+ ConnectError = !((AddConnectionFromFavorites(&NetList[I]) ||
+ AddConnectionExplicit(&NetList[I])) && IsReadable (NewDir));
+ if(ConnectError)
+ {
+ ChangeDirSuccess = FALSE;
+ if (GetLastError() != ERROR_CANCELLED)
+ Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
+ NULL, (const TCHAR **) GetMsg (MError), 0, 0);
+ return TRUE;
+ }
+ }
+ }
+ #ifndef UNICODE
+ Info.Control(this,FCTL_CLOSEPLUGIN,NewDir);
+ #else
+ Info.Control(this,FCTL_CLOSEPLUGIN,0,(LONG_PTR)NewDir);
+ #endif
+ return(TRUE);
+ }
+ if (IsExplicit?!AddConnectionExplicit(&NetList[I]):!IsResourceReadable (NetList [I]))
+ {
+ int res = GetLastError();
+ if (res == ERROR_INVALID_PASSWORD || res == ERROR_LOGON_FAILURE || res == ERROR_ACCESS_DENIED || res == ERROR_LOGON_TYPE_NOT_GRANTED)
+ ChangeDirSuccess = IsExplicit?FALSE
![](http://i.ru-board.com/s/sad.gif)
+ else
+ ChangeDirSuccess = FALSE;
+ if(!ChangeDirSuccess)
+ {
+ if (GetLastError() != ERROR_CANCELLED)
+ Info.Message (Info.ModuleNumber, FMSG_WARNING | FMSG_ERRORTYPE | FMSG_MB_OK | FMSG_ALLINONE,
+ NULL, (const TCHAR **) GetMsg (MError), 0, 0);
+ return FALSE;
+ }
+ }
+ NetResourceList::CopyNetResource (CurResource, NetList [I]);
+ PCurResource = &CurResource;
+ if (!IsMSNetResource (CurResource))
+ {
+ #ifdef NETWORK_LOGGING
+ LogData(_T("Resource is not MSN"));
+ LogNetResource(CurResource);
+ #endif
+ RootResources.Push (CurResource);
+ }
+ #ifdef NETWORK_LOGGING
+ else
+ {
+ LogData(_T("Resource is MSN"));
+ LogNetResource(CurResource);
+ }
+ #endif
+ return(TRUE);
+ }
+ }
+ return FALSE;
+ }
BOOL NetBrowser::IsMSNetResource (const NETRESOURCE &Res)
@@ -1305,21 +1305,21 @@
Info.Control(this,FCTL_GETPANELINFO,0,(LONG_PTR)&PInfo);
#endif
- for (int I=0;I<PInfo.SelectedItemsNumber;I++)
- {
-#ifndef UNICODE
- if (!MapNetworkDrive (PInfo.SelectedItems[I].FindData.cFileName, (Key == VK_F6), ((ControlState&PKF_SHIFT)==0)))
-#else
- PluginPanelItem* PPI=(PluginPanelItem*)malloc(Info.Control(this,FCTL_GETSELECTEDPANELITEM,I,0));
- if(PPI)
- {
- Info.Control(this,FCTL_GETSELECTEDPANELITEM,I,(LONG_PTR)PPI);
- }
- if (!PPI||!MapNetworkDrive (PPI->FindData.lpwszFileName, (Key == VK_F6), ((ControlState&PKF_SHIFT)==0)))
-#endif
- {
-#ifdef UNICODE
- free(PPI);
+ for (int I=0;I<PInfo.SelectedItemsNumber;I++)
+ {
+ #ifndef UNICODE
+ if (!MapNetworkDrive (PInfo.SelectedItems[I].FindData.cFileName, (Key == VK_F6), ((ControlState&PKF_SHIFT)==0)))
+ #else
+ PluginPanelItem* PPI=(PluginPanelItem*)malloc(Info.Control(this,FCTL_GETSELECTEDPANELITEM,I,0));
+ if(PPI)
+ {
+ Info.Control(this,FCTL_GETSELECTEDPANELITEM,I,(LONG_PTR)PPI);
+ }
+ if (!PPI||!MapNetworkDrive (PPI->FindData.lpwszFileName, (Key == VK_F6), ((ControlState&PKF_SHIFT)==0)))
+ #endif
+ {
+ #ifdef UNICODE
+ free(PPI);
#endif
break;
}
@@ -1994,18 +1994,18 @@
}
}
- CharUpper(ComputerName);
+ CharUpper(ComputerName);
- NETRESOURCE res;
- NetResourceList::InitNetResource (res);
- if (!GetResourceInfo (ComputerName, &res))
- return FALSE;
- /*
- if (!IsMSNetResource (res))
- return FALSE;
- */
- if (!IsResourceReadable(res))
- {
+ NETRESOURCE res;
+ NetResourceList::InitNetResource (res);
+ if (!GetResourceInfo (ComputerName, &res))
+ return FALSE;
+ /*
+ if (!IsMSNetResource (res))
+ return FALSE;
+ */
+ if (!IsResourceReadable(res))
+ {
int err = GetLastError();
if (err == ERROR_INVALID_PASSWORD || err == ERROR_LOGON_FAILURE || err == ERROR_ACCESS_DENIED || err == ERROR_INVALID_HANDLE || err == ERROR_LOGON_TYPE_NOT_GRANTED)
if(!((AddConnectionFromFavorites(&res)||AddConnectionExplicit(&res))&&IsResourceReadable (res)))
diff --ignore-file-name-case -rtuFdTl old/NetEng.lng new/NetEng.lng
--- old/NetEng.lng 2009-09-10 18:53:03 +0400
+++ new/NetEng.lng 2009-09-10 20:19:07 +0400
@@ -22,6 +22,7 @@
"Cannot browse network"
"Cannot connect \"%.40s\" to %s"
+"Cannot connect to %s"
"The disk name has a remembered connection"
"If you do not close the open files, data may be lost."
diff --ignore-file-name-case -rtuFdTl old/NetRus.lng new/NetRus.lng
--- old/NetRus.lng 2009-09-10 18:53:03 +0400
+++ new/NetRus.lng 2009-09-10 20:19:22 +0400
@@ -22,6 +22,7 @@
"ЋиЁЎЄ Їа®б¬®ва бҐвЁ"
"ЌҐ г¤ Ґвбп Ї®¤б®Ґ¤Ё-Ёвм \"%.40s\" Є %s"
+"ЌҐ г¤ Ґвбп Ї®¤б®Ґ¤Ё-Ёвмбп Є %s"
"ќв® Ё¬п ¤ЁбЄ 㦥 § ¤Ґ©бвў®ў -® Ї®¤ § Ї®¬-Ґ--®Ґ ᮥ¤Ё-Ґ-ЁҐ"
"…б«Ё ўл -Ґ § Єа®ҐвҐ ®вЄалвлҐ д ©«л, ў®§¬®¦- Ї®вҐап ¤ --ле."
diff --ignore-file-name-case -rtuFdTl old/Network.rc new/Network.rc
--- old/Network.rc 2009-09-10 18:53:03 +0400
+++ new/Network.rc 2009-09-10 19:26:10 +0400
@@ -1,6 +1,6 @@
#include "farversion.hpp"
-#define PLUGIN_BUILD 52
+#define PLUGIN_BUILD 52-1
#define PLUGIN_DESC "Network Plugin for FAR Manager"
#define PLUGIN_NAME "Network"
#define PLUGIN_FILENAME "Network.dll"