Updates to Win32 code to port latest mega-glest features

This commit is contained in:
Mark Vejvoda 2010-03-20 00:22:17 +00:00
parent 965a7ac2ba
commit a731f9c2a9
2 changed files with 54 additions and 52 deletions

View File

@ -19,14 +19,15 @@
#include "util.h" #include "util.h"
#include "conversion.h" #include "conversion.h"
#include "leak_dumper.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <direct.h> #include <direct.h>
#include <algorithm>
#include "leak_dumper.h"
#define S_ISDIR(mode) ((mode) & _S_IFDIR) #define S_ISDIR(mode) ((mode) & _S_IFDIR)
using namespace Shared::Util; using namespace Shared::Util;
using namespace std; using namespace std;
@ -161,48 +162,48 @@ void PlatformExceptionHandler::install(string dumpFileName){
// ===================================================== // =====================================================
// class Misc // class Misc
// ===================================================== // =====================================================
void findDirs(const vector<string> &paths, vector<string> &results, bool errorOnNotFound) { void findDirs(const vector<string> &paths, vector<string> &results, bool errorOnNotFound) {
results.clear(); results.clear();
int pathCount = paths.size(); int pathCount = paths.size();
for(int idx = 0; idx < pathCount; idx++) { for(int idx = 0; idx < pathCount; idx++) {
string path = paths[idx] + "/*."; string path = paths[idx] + "/*.";
vector<string> current_results; vector<string> current_results;
findAll(path, current_results, false, errorOnNotFound); findAll(path, current_results, false, errorOnNotFound);
if(current_results.size() > 0) { if(current_results.size() > 0) {
for(int folder_index = 0; folder_index < current_results.size(); folder_index++) { for(unsigned int folder_index = 0; folder_index < current_results.size(); folder_index++) {
const string current_folder = current_results[folder_index]; const string current_folder = current_results[folder_index];
const string current_folder_path = paths[idx] + "/" + current_folder; const string current_folder_path = paths[idx] + "/" + current_folder;
if(isdir(current_folder_path.c_str()) == true) { if(isdir(current_folder_path.c_str()) == true) {
if(std::find(results.begin(),results.end(),current_folder) == results.end()) { if(std::find(results.begin(),results.end(),current_folder) == results.end()) {
results.push_back(current_folder); results.push_back(current_folder);
} }
} }
} }
} }
} }
std::sort(results.begin(),results.end()); std::sort(results.begin(),results.end());
} }
void findAll(const vector<string> &paths, const string &fileFilter, vector<string> &results, bool cutExtension, bool errorOnNotFound) { void findAll(const vector<string> &paths, const string &fileFilter, vector<string> &results, bool cutExtension, bool errorOnNotFound) {
results.clear(); results.clear();
int pathCount = paths.size(); int pathCount = paths.size();
for(int idx = 0; idx < pathCount; idx++) { for(int idx = 0; idx < pathCount; idx++) {
string path = paths[idx] + "/" + fileFilter; string path = paths[idx] + "/" + fileFilter;
vector<string> current_results; vector<string> current_results;
findAll(path, current_results, cutExtension, errorOnNotFound); findAll(path, current_results, cutExtension, errorOnNotFound);
if(current_results.size() > 0) { if(current_results.size() > 0) {
for(int folder_index = 0; folder_index < current_results.size(); folder_index++) { for(unsigned int folder_index = 0; folder_index < current_results.size(); folder_index++) {
string &current_file = current_results[folder_index]; string &current_file = current_results[folder_index];
if(std::find(results.begin(),results.end(),current_file) == results.end()) { if(std::find(results.begin(),results.end(),current_file) == results.end()) {
results.push_back(current_file); results.push_back(current_file);
} }
} }
} }
} }
std::sort(results.begin(),results.end()); std::sort(results.begin(),results.end());
} }
//finds all filenames like path and stores them in resultys //finds all filenames like path and stores them in resultys
void findAll(const string &path, vector<string> &results, bool cutExtension, bool errorOnNotFound){ void findAll(const string &path, vector<string> &results, bool cutExtension, bool errorOnNotFound){
@ -235,7 +236,7 @@ void findAll(const string &path, vector<string> &results, bool cutExtension, boo
} }
if(cutExtension){ if(cutExtension){
for (int i=0; i<results.size(); ++i){ for (unsigned int i=0; i<results.size(); ++i){
results.at(i)=cutLastExt(results.at(i)); results.at(i)=cutLastExt(results.at(i));
} }
} }
@ -245,9 +246,9 @@ void findAll(const string &path, vector<string> &results, bool cutExtension, boo
bool isdir(const char *path) bool isdir(const char *path)
{ {
struct stat stats; struct stat stats;
bool ret = stat (path, &stats) == 0 && S_ISDIR (stats.st_mode); bool ret = stat (path, &stats) == 0 && S_ISDIR (stats.st_mode);
return ret; return ret;
} }
bool EndsWith(const string &str, const string& key) bool EndsWith(const string &str, const string& key)

View File

@ -14,11 +14,12 @@
#include <stdexcept> #include <stdexcept>
#include "conversion.h" #include "conversion.h"
#include "leak_dumper.h"
#include <time.h> #include <time.h>
#include <strstream> #include <strstream>
#include <algorithm> #include <algorithm>
#include "util.h"
#include "leak_dumper.h"
#define socklen_t int #define socklen_t int
@ -155,7 +156,7 @@ const char* WSAGetLastErrorMessage(const char* pcMessagePrefix,
namespace Shared{ namespace Platform{ namespace Shared{ namespace Platform{
bool Socket::enableDebugText = true; bool Socket::enableDebugText = true;
bool Socket::enableNetworkDebugInfo = true; bool Socket::enableNetworkDebugInfo = true;
// ===================================================== // =====================================================
// class Ip // class Ip
@ -747,7 +748,7 @@ void ClientSocket::connect(const Ip &ip, int port)
if(err < 0) if(err < 0)
{ {
fprintf(stderr, "In [%s::%s] Before END sock = %d, err = %d, errno = %d\n",__FILE__,__FUNCTION__,sock,err,WSAGetLastError()); fprintf(stderr, "In [%s::%s] Before END sock = %d, err = %d, errno = %d\n",__FILE__,__FUNCTION__,sock,err,WSAGetLastError());
//throwException(szBuf); //throwException(szBuf);
disconnectSocket(); disconnectSocket();
} }