fix warnings on Linux introduced by previous changes on Windows

This commit is contained in:
2018-06-11 16:03:12 +02:00
parent 0c5227dfc5
commit 8dde86dae7
13 changed files with 47 additions and 41 deletions

View File

@ -463,7 +463,7 @@ struct checksum
checksumFunc func;
unsigned int init;
unsigned int xorout;
signed char bytes;
unsigned char bytes;
};
static checksum checksumMap[] =
@ -562,7 +562,7 @@ parse(const StreamFormat&, StreamBuffer& info, const char*& source, bool)
}
}
error ("Unknown checksum algorithm \"%.*s\"\n", len, source);
error ("Unknown checksum algorithm \"%.*s\"\n", (int)len, source);
return false;
}
@ -677,12 +677,12 @@ scanPseudo(const StreamFormat& format, StreamBuffer& input, size_t& cursor)
debug("ChecksumConverter %s: input checksum is 0x%0*X\n",
checksumMap[fnum].name, 2*checksumMap[fnum].bytes, sum);
int i, j;
unsigned int inchar;
if (format.flags & sign_flag) // decimal
{
unsigned int sumin = 0;
size_t i;
for (i = 0; i < expectedLength; i++)
{
inchar = input[cursor+i];
@ -692,13 +692,14 @@ scanPseudo(const StreamFormat& format, StreamBuffer& input, size_t& cursor)
if (sumin != sum)
{
debug("ChecksumConverter %s: Input %0*u does not match checksum %0*u\n",
checksumMap[fnum].name, i, sumin, expectedLength, sum);
checksumMap[fnum].name, (int)i, sumin, (int)expectedLength, sum);
return -1;
}
}
else
if (format.flags & alt_flag) // lsb first (little endian)
{
size_t i;
for (i = 0; i < checksumMap[fnum].bytes; i++)
{
if (format.flags & zero_flag) // ASCII
@ -741,11 +742,13 @@ scanPseudo(const StreamFormat& format, StreamBuffer& input, size_t& cursor)
}
else // msb first (big endian)
{
ssize_t i;
size_t j;
for (i = checksumMap[fnum].bytes-1, j = 0; i >= 0; i--, j++)
{
if (format.flags & zero_flag) // ASCII
{
sscanf(input(cursor+2*i), "%2x", &inchar);
sscanf(input(cursor+2*i), "%2X", &inchar);
}
else
if (format.flags & left_flag) // poor man's hex: 0x30 - 0x3F

View File

@ -38,7 +38,7 @@
class RegexpConverter : public StreamFormatConverter
{
int parse (const StreamFormat& fmt, StreamBuffer&, const char*&, bool);
ssize_t scanString(const StreamFormat& fmt, const char*, char*, unsigned long&);
ssize_t scanString(const StreamFormat& fmt, const char*, char*, size_t&);
ssize_t scanPseudo(const StreamFormat& fmt, StreamBuffer& input, size_t& cursor);
bool printPseudo(const StreamFormat& fmt, StreamBuffer& output);
};
@ -195,7 +195,7 @@ static void regsubst(const StreamFormat& fmt, StreamBuffer& buffer, long start)
debug("rest = \"%s\"\n", buffer(start+c+ovector[1]));
s = subst;
debug("subs = \"%s\"\n", s.expand()());
for (r = 0; r < s.length(); r++)
for (r = 0; r < (int)s.length(); r++)
{
debug("check \"%s\"\n", s.expand(r)());
if (s[r] == esc)
@ -230,7 +230,7 @@ static void regsubst(const StreamFormat& fmt, StreamBuffer& buffer, long start)
}
ssize_t RegexpConverter::
scanPseudo(const StreamFormat& fmt, StreamBuffer& input, ssize_t& cursor)
scanPseudo(const StreamFormat& fmt, StreamBuffer& input, size_t& cursor)
{
/* re-write input buffer */
regsubst(fmt, input, cursor);

View File

@ -136,12 +136,8 @@ append(const void* s, ssize_t size)
}
ssize_t StreamBuffer::
find(const char* m, size_t size, ssize_t start) const
find(const void* m, size_t size, ssize_t start) const
{
if (m && size == 0)
{
size = strlen(m);
}
if (start < 0)
{
start += len;

View File

@ -205,7 +205,10 @@ public:
c, start<0?-start:len-start)))?
p-(buffer+offs) : -1;}
ssize_t find(const char* s, size_t size=0, ssize_t start=0) const;
ssize_t find(const void* s, size_t size, ssize_t start=0) const;
ssize_t find(const char* s, ssize_t start=0) const
{return find(s, s?strlen(s):0, start);}
ssize_t find(const StreamBuffer& s, ssize_t start=0) const
{return find(s.buffer+s.offs, s.len, start);}

View File

@ -728,7 +728,7 @@ printSeparator()
return;
}
if (!separator) return;
long i = 0;
size_t i = 0;
for (; i < separator.length(); i++)
{
switch (separator[i])
@ -1049,7 +1049,7 @@ readCallback(StreamIoStatus status,
if (end >= 0)
{
termlen = inTerminator.length();
debug("StreamCore::readCallback(%s) inTerminator %s at position %ld\n",
debug("StreamCore::readCallback(%s) inTerminator %s at position %" P "d\n",
name(), inTerminator.expand()(), end);
} else {
debug("StreamCore::readCallback(%s) inTerminator %s not found\n",
@ -1063,14 +1063,14 @@ readCallback(StreamIoStatus status,
name());
end = inputBuffer.length();
}
if (maxInput && end < 0 && (long)maxInput <= inputBuffer.length())
if (maxInput && end < 0 && maxInput <= inputBuffer.length())
{
// no terminator but maxInput bytes read
debug("StreamCore::readCallback(%s) maxInput size reached\n",
name());
end = maxInput;
}
if (maxInput && end > (long)maxInput)
if (maxInput && end > (ssize_t)maxInput)
{
// limit input length to maxInput (ignore terminator)
end = maxInput;
@ -1110,7 +1110,7 @@ readCallback(StreamIoStatus status,
}
else
{
error("%s: Timeout after reading %ld byte%s \"%s%s\"\n",
error("%s: Timeout after reading %" P "d byte%s \"%s%s\"\n",
name(), end, end==1 ? "" : "s", end > 20 ? "..." : "",
inputBuffer.expand(-20)());
}
@ -1366,7 +1366,7 @@ normal_format:
{
int i = 0;
while (commandIndex[i] >= ' ') i++;
error("%s: Input \"%s%s\" mismatch after %ld byte%s: %c != %c\n",
error("%s: Input \"%s%s\" mismatch after %" P "d byte%s: %c != %c\n",
name(),
consumedInput > 10 ? "..." : "",
inputLine.expand(consumedInput > 10 ?
@ -1393,18 +1393,18 @@ normal_format:
{
if (!(flags & AsyncMode) && onMismatch[0] != in_cmd)
{
error("%s: %ld byte%s surplus input \"%s%s\"\n",
error("%s: %" P "d byte%s surplus input \"%s%s\"\n",
name(), surplus, surplus==1 ? "" : "s",
inputLine.expand(consumedInput, 20)(),
surplus > 20 ? "..." : "");
if (consumedInput>20)
error("%s: after %ld byte%s \"...%s\"\n",
error("%s: after %" P "d byte%s \"...%s\"\n",
name(), consumedInput,
consumedInput==1 ? "" : "s",
inputLine.expand(consumedInput-20, 20)());
else
error("%s: after %ld byte%s: \"%s\"\n",
error("%s: after %" P "d byte%s: \"%s\"\n",
name(), consumedInput,
consumedInput==1 ? "" : "s",
inputLine.expand(0, consumedInput)());
@ -1515,7 +1515,7 @@ scanValue(const StreamFormat& fmt, double& value)
}
else return -1;
}
if (fmt.flags & fix_width_flag && (consumed != (fmt.width + fmt.prec + 1))) return -1;
if (fmt.flags & fix_width_flag && (consumed != (ssize_t)(fmt.width + fmt.prec + 1))) return -1;
if ((size_t)consumed > inputLine.length()-consumedInput) return -1;
debug("StreamCore::scanValue(%s) scanned %#g\n",
name(), value);
@ -1536,7 +1536,7 @@ scanValue(const StreamFormat& fmt, char* value, size_t& size)
if (!matchSeparator()) return -1;
ssize_t consumed = StreamFormatConverter::find(fmt.conv)->
scanString(fmt, inputLine(consumedInput), value, size);
debug("StreamCore::scanValue(%s, format=%%%c, char*, size=%ld) input=\"%s\"\n",
debug("StreamCore::scanValue(%s, format=%%%c, char*, size=%" P "d) input=\"%s\"\n",
name(), fmt.conv, size, inputLine.expand(consumedInput)());
if (consumed < 0)
{
@ -1547,7 +1547,7 @@ scanValue(const StreamFormat& fmt, char* value, size_t& size)
}
else return -1;
}
if (fmt.flags & fix_width_flag && (unsigned long)consumed != fmt.width) return -1;
if (fmt.flags & fix_width_flag && consumed != (ssize_t)fmt.width) return -1;
if ((size_t)consumed > inputLine.length()-consumedInput) return -1;
#ifndef NO_TEMPORARY
debug("StreamCore::scanValue(%s) scanned \"%s\"\n",

View File

@ -80,6 +80,8 @@ extern "C" epicsShareFunc int epicsShareAPI iocshCmd(const char *command);
#include <sysSymTbl.h>
#endif
#define P PRINTF_SIZE_T_PREFIX
enum MoreFlags {
// 0x00FFFFFF used by StreamCore
InDestructor = 0x0100000,
@ -294,7 +296,7 @@ void streamEpicsPrintTimestamp(char* buffer, size_t size)
c[4] = 0;
}
tlen = strlen(buffer);
sprintf(buffer+tlen, " %.*s", size-tlen-2, taskName(0));
sprintf(buffer+tlen, " %.*s", (int)(size-tlen-2), taskName(0));
}
#else // !EPICS_3_13
void streamEpicsPrintTimestamp(char* buffer, size_t size)
@ -1184,7 +1186,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
{
consumed = scanValue(format, lval);
if (consumed >= 0) ((epicsUInt32*)buffer)[nord] = lval;
debug("Stream::matchValue(%s): %s.%s[%li] = %lu\n",
debug("Stream::matchValue(%s): %s.%s[%" P "u] = %lu\n",
name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name,
nord, lval);
@ -1194,7 +1196,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
{
consumed = scanValue(format, lval);
if (consumed >= 0) ((epicsInt32*)buffer)[nord] = lval;
debug("Stream::matchValue(%s): %s.%s[%li] = %li\n",
debug("Stream::matchValue(%s): %s.%s[%" P "u] = %li\n",
name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name,
nord, lval);
@ -1205,7 +1207,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
consumed = scanValue(format, lval);
if (consumed >= 0)
((epicsUInt16*)buffer)[nord] = (epicsUInt16)lval;
debug("Stream::matchValue(%s): %s.%s[%li] = %li\n",
debug("Stream::matchValue(%s): %s.%s[%" P "u] = %li\n",
name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name,
nord, lval);
@ -1221,7 +1223,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
if (consumed >= 0)
memcpy(((epicsFloat64*)buffer)+nord,
&f64, sizeof(f64));
debug("Stream::matchValue(%s): %s.%s[%li] = %#g %#g\n",
debug("Stream::matchValue(%s): %s.%s[%" P "u] = %#g %#g\n",
name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name,
nord, dval,
@ -1247,7 +1249,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
stringsize = MAX_STRING_SIZE;
consumed = scanValue(format,
buffer+MAX_STRING_SIZE*nord, stringsize);
debug("Stream::matchValue(%s): %s.%s[%li] = \"%.*s\"\n",
debug("Stream::matchValue(%s): %s.%s[%" P "u] = \"%.*s\"\n",
name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name,
nord, (int)stringsize, buffer+MAX_STRING_SIZE*nord);
@ -1351,14 +1353,14 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
case DBF_ULONG:
case DBF_LONG:
case DBF_ENUM:
error("%s: %s(%s.%s, %s, %li, %lu) failed\n",
error("%s: %s(%s.%s, %s, %li, %" P "u) failed\n",
name(), putfunc, pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name,
pamapdbfType[fmt.type].strvalue,
lval, nord);
return false;
case DBF_DOUBLE:
error("%s: %s(%s.%s, %s, %#g, %lu) failed\n",
error("%s: %s(%s.%s, %s, %#g, %" P "u) failed\n",
name(), putfunc, pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name,
pamapdbfType[fmt.type].strvalue,
@ -1366,7 +1368,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
return false;
case DBF_STRING:
case DBF_CHAR:
error("%s: %s(%s.%s, %s, \"%.*s\", %lu) failed\n",
error("%s: %s(%s.%s, %s, \"%.*s\", %" P "u) failed\n",
name(), putfunc, pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name,
pamapdbfType[fmt.type].strvalue,

View File

@ -255,7 +255,7 @@ static void copyFormatString(StreamBuffer& info, const char* source)
// Standard Long Converter for 'diouxX'
static size_t prepareval(const StreamFormat& fmt, const char*& input, bool& neg)
static ssize_t prepareval(const StreamFormat& fmt, const char*& input, bool& neg)
{
size_t consumed = 0;
neg = false;

View File

@ -978,7 +978,7 @@ replaceVariable(StreamBuffer& buffer, const char* varname)
}
// quoted
buffer.append('"');
long i;
size_t i;
bool escaped = false;
for (i = 0; i < v->value.length(); i++)
{

View File

@ -154,7 +154,8 @@ printDouble(const StreamFormat& format, StreamBuffer& output, double value)
size_t length;
time_t sec;
double frac;
size_t i, n;
ssize_t i;
size_t n;
char* c;
char* p;

View File

@ -54,6 +54,7 @@ extern "C" {
#include "devSup.h"
#include "dbAccess.h"
#include <stdio.h>
#include <sys/types.h>
#if defined(_WIN32) && !defined(ssize_t)
#define ssize_t ptrdiff_t

View File

@ -122,7 +122,7 @@ static long readData(dbCommon *record, format_t *format)
memset(aai->bptr, 0, aai->nelm);
return ERROR;
}
if ((size_t)lval < aai->nelm)
if (lval < (ssize_t)aai->nelm)
{
memset(((char*)aai->bptr)+lval , 0, aai->nelm-lval);
lval++;

View File

@ -122,7 +122,7 @@ static long readData(dbCommon *record, format_t *format)
memset(aao->bptr, 0, aao->nelm);
return ERROR;
}
if ((size_t)length < aao->nelm)
if (length < (ssize_t)aao->nelm)
{
memset(((char*)aao->bptr)+lval , 0, aao->nelm-lval);
lval++;

View File

@ -122,7 +122,7 @@ static long readData(dbCommon *record, format_t *format)
memset(wf->bptr, 0, wf->nelm);
return ERROR;
}
if (length < wf->nelm)
if (length < (ssize_t)wf->nelm)
{
memset(((char*)wf->bptr)+lval , 0, wf->nelm-lval);
lval++;