More small windows int types fixes.

This commit is contained in:
Jean-Francois Dockes 2015-09-01 15:03:21 +02:00
parent 59ba8e9fce
commit 1b9673deb1
8 changed files with 29 additions and 21 deletions

View file

@ -43,10 +43,15 @@ const int KB = 1024;
// Process a plain text file // Process a plain text file
bool MimeHandlerText::set_document_file(const string& mt, const string &fn) bool MimeHandlerText::set_document_file(const string& mt, const string &fn)
{ {
LOGDEB(("MimeHandlerText::set_document_file: [%s]\n", fn.c_str())); LOGDEB(("MimeHandlerText::set_document_file: [%s] offs %lld\n",
fn.c_str(), m_offs));
RecollFilter::set_document_file(mt, fn); RecollFilter::set_document_file(mt, fn);
m_fn = fn; m_fn = fn;
// This should not be necessary, but it happens on msw that offset is large
// negative at this point, could not find the reason (still trying).
m_offs = 0;
// file size for oversize check // file size for oversize check
long long fsize = path_filesize(m_fn); long long fsize = path_filesize(m_fn);

View file

@ -19,7 +19,6 @@
#include <sys/types.h> #include <sys/types.h>
#include <string> #include <string>
using std::string;
#include "mimehandler.h" #include "mimehandler.h"
@ -30,22 +29,22 @@ using std::string;
*/ */
class MimeHandlerText : public RecollFilter { class MimeHandlerText : public RecollFilter {
public: public:
MimeHandlerText(RclConfig *cnf, const string& id) MimeHandlerText(RclConfig *cnf, const std::string& id)
: RecollFilter(cnf, id), m_paging(false), m_offs(0) : RecollFilter(cnf, id), m_paging(false), m_offs(0), m_pagesz(0)
{ {
} }
virtual ~MimeHandlerText() virtual ~MimeHandlerText()
{ {
} }
virtual bool set_document_file(const string& mt, const string &file_path); virtual bool set_document_file(const std::string& mt, const std::string &file_path);
virtual bool set_document_string(const string&, const string&); virtual bool set_document_string(const std::string&, const std::string&);
virtual bool is_data_input_ok(DataInput input) const { virtual bool is_data_input_ok(DataInput input) const {
if (input == DOCUMENT_FILE_NAME || input == DOCUMENT_STRING) if (input == DOCUMENT_FILE_NAME || input == DOCUMENT_STRING)
return true; return true;
return false; return false;
} }
virtual bool next_document(); virtual bool next_document();
virtual bool skip_to_document(const string& s); virtual bool skip_to_document(const std::string& s);
virtual void clear() virtual void clear()
{ {
m_paging = false; m_paging = false;
@ -56,11 +55,11 @@ class MimeHandlerText : public RecollFilter {
} }
private: private:
bool m_paging; bool m_paging;
string m_text; std::string m_text;
string m_fn; std::string m_fn;
off_t m_offs; // Offset of next read in file if we're paging off_t m_offs; // Offset of next read in file if we're paging
size_t m_pagesz; size_t m_pagesz;
string m_charsetfromxattr; std::string m_charsetfromxattr;
bool readnext(); bool readnext();
}; };

View file

@ -29,6 +29,7 @@
#include <map> #include <map>
#include <string> #include <string>
#include <algorithm> #include <algorithm>
#include <iostream>
#include UNORDERED_MAP_INCLUDE #include UNORDERED_MAP_INCLUDE
using std::string; using std::string;
@ -14169,7 +14170,7 @@ int unacmaybefold_string_utf16(const char* in, size_t in_length,
char** outp, size_t* out_lengthp, int what) char** outp, size_t* out_lengthp, int what)
{ {
char* out; char* out;
int out_size; size_t out_size;
int out_length; int out_length;
unsigned int i; unsigned int i;
@ -14189,7 +14190,7 @@ int unacmaybefold_string_utf16(const char* in, size_t in_length,
for(i = 0; i < in_length; i += 2) { for(i = 0; i < in_length; i += 2) {
unsigned short c; unsigned short c;
unsigned short* p; unsigned short* p;
int l; size_t l;
int k; int k;
c = (in[i] << 8) | (in[i + 1] & 0xff); c = (in[i] << 8) | (in[i + 1] & 0xff);
/* /*
@ -14435,10 +14436,11 @@ static int convert(const char* from, const char* to,
const char* tmp = space; const char* tmp = space;
size_t tmp_length = 2; size_t tmp_length = 2;
if(iconv(cd, (ICONV_CONST char **) &tmp, &tmp_length, &out, &out_remain) == (size_t)-1) { if(iconv(cd, (ICONV_CONST char **) &tmp, &tmp_length, &out, &out_remain) == (size_t)-1) {
if(errno == E2BIG) if(errno == E2BIG) {
/* fall thru to the E2BIG case below */; /* fall thru to the E2BIG case below */;
else } else {
goto out; goto out;
}
} else { } else {
/* The offending character was replaced by a SPACE, skip it. */ /* The offending character was replaced by a SPACE, skip it. */
in += 2; in += 2;
@ -14454,7 +14456,7 @@ static int convert(const char* from, const char* to,
/* /*
* The output does not fit in the current out buffer, enlarge it. * The output does not fit in the current out buffer, enlarge it.
*/ */
int length = out - out_base; size_t length = out - out_base;
out_size *= 2; out_size *= 2;
{ {
char *saved = out_base; char *saved = out_base;

View file

@ -125,7 +125,9 @@ static string idFileInternal(istream& input, const char *fn)
// Except for a possible first line with 'From ', lines must // Except for a possible first line with 'From ', lines must
// begin with whitespace or have a colon // begin with whitespace or have a colon
// (hope no one comes up with a longer header name ! // (hope no one comes up with a longer header name !
if (!isspace(cline[0])) { // Take care to convert to unsigned char because ms ctype does
// like negative values
if (!isspace((unsigned char)cline[0])) {
char *cp = strchr(cline, ':'); char *cp = strchr(cline, ':');
if (cp == 0 || (cp - cline) > 70) { if (cp == 0 || (cp - cline) > 70) {
LOGDEB2(("idfile: can't be mail header line: [%s]\n", cline)); LOGDEB2(("idfile: can't be mail header line: [%s]\n", cline));

View file

@ -520,7 +520,7 @@ bool path_isroot(const string& path)
if (path.size() == 1 && path[0] == '/') if (path.size() == 1 && path[0] == '/')
return true; return true;
#ifdef _WIN32 #ifdef _WIN32
if (path.size == 3 && isalpha(path[0]) && path[1] == ':' && path[2] == '/') if (path.size() == 3 && isalpha(path[0]) && path[1] == ':' && path[2] == '/')
return true; return true;
#endif #endif
return false; return false;

View file

@ -92,7 +92,7 @@
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<PreprocessorDefinitions>BUILDING_RECOLL;__WIN32__;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>BUILDING_RECOLL;__WIN32__;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>false</SDLCheck> <SDLCheck>false</SDLCheck>
<AdditionalIncludeDirectories>C:\Iconv\include;C:\xapian\xapian-core-1.2.8\include;C:\Users\Bill\recoll\src\internfile;C:\Users\Bill\recoll\src\rcldb;C:\Users\Bill\recoll\src\index;C:\Users\Bill\recoll\src\bincimapmime;C:\Users\Bill\recoll\src\unac;C:\Users\Bill\recoll\src\windows;C:\zlib\include;C:\pthreads-w32\Pre-built.2\include;C:\Users\Bill\recoll\src\xaposix;C:\Users\Bill\recoll\src\common;C:\Users\Bill\recoll\src\utils;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>C:\Iconv64\include;C:\xapian\xapian-core-1.2.8\include;C:\Users\Bill\recoll\src\internfile;C:\Users\Bill\recoll\src\rcldb;C:\Users\Bill\recoll\src\index;C:\Users\Bill\recoll\src\bincimapmime;C:\Users\Bill\recoll\src\unac;C:\Users\Bill\recoll\src\windows;C:\zlib\include;C:\pthreads-w32\Pre-built.2\include;C:\Users\Bill\recoll\src\xaposix;C:\Users\Bill\recoll\src\common;C:\Users\Bill\recoll\src\utils;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4800;4996</DisableSpecificWarnings> <DisableSpecificWarnings>4800;4996</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<Link> <Link>

View file

@ -110,7 +110,7 @@
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>C:\xapian\xapian-core-1.2.8\win32\x64\Debug;C:\Users\Bill\recoll\src\windows\x64\Debug;C:\pthreads-w32\Pre-built.2\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>C:\xapian\xapian-core-1.2.8\win32\x64\Debug;C:\Users\Bill\recoll\src\windows\x64\Debug;C:\pthreads-w32\Pre-built.2\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Win32ProjectRecoll.lib;C:\zlib64\zlib-win64\x64\Debug\zlib.lib;xapian-core.lib;C:\iconv64\Debug_x64\libiconvD.lib;Ws2_32.lib;Rpcrt4.lib;pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>Win32ProjectRecoll.lib;C:\zlib64\zlib-win64\x64\Debug\zlib.lib;xapian-core.lib;C:\iconv64\libiconv\x64\Debug\libiconv.lib;Ws2_32.lib;Rpcrt4.lib;pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

View file

@ -108,7 +108,7 @@
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalLibraryDirectories>C:\xapian\xapian-core-1.2.8\win32\x64\Debug;C:\Users\Bill\recoll\src\windows\x64\Debug;C:\pthreads-w32\Pre-built.2\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>C:\xapian\xapian-core-1.2.8\win32\x64\Debug;C:\Users\Bill\recoll\src\windows\x64\Debug;C:\pthreads-w32\Pre-built.2\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>Win32ProjectRecoll.lib;C:\zlib64\zlib-win64\x64\Debug\zlib.lib;xapian-core.lib;C:\iconv64\Debug_x64\libiconvD.lib;Ws2_32.lib;Rpcrt4.lib;pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>Win32ProjectRecoll.lib;C:\zlib64\zlib-win64\x64\Debug\zlib.lib;xapian-core.lib;C:\iconv64\libiconv\x64\Debug\libiconv.lib;Ws2_32.lib;Rpcrt4.lib;pthreadVC2.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">