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

View File

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

View File

@ -136,12 +136,8 @@ append(const void* s, ssize_t size)
} }
ssize_t StreamBuffer:: 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) if (start < 0)
{ {
start += len; start += len;

View File

@ -205,7 +205,10 @@ public:
c, start<0?-start:len-start)))? c, start<0?-start:len-start)))?
p-(buffer+offs) : -1;} 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 ssize_t find(const StreamBuffer& s, ssize_t start=0) const
{return find(s.buffer+s.offs, s.len, start);} {return find(s.buffer+s.offs, s.len, start);}

View File

@ -728,7 +728,7 @@ printSeparator()
return; return;
} }
if (!separator) return; if (!separator) return;
long i = 0; size_t i = 0;
for (; i < separator.length(); i++) for (; i < separator.length(); i++)
{ {
switch (separator[i]) switch (separator[i])
@ -1049,7 +1049,7 @@ readCallback(StreamIoStatus status,
if (end >= 0) if (end >= 0)
{ {
termlen = inTerminator.length(); 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); name(), inTerminator.expand()(), end);
} else { } else {
debug("StreamCore::readCallback(%s) inTerminator %s not found\n", debug("StreamCore::readCallback(%s) inTerminator %s not found\n",
@ -1063,14 +1063,14 @@ readCallback(StreamIoStatus status,
name()); name());
end = inputBuffer.length(); end = inputBuffer.length();
} }
if (maxInput && end < 0 && (long)maxInput <= inputBuffer.length()) if (maxInput && end < 0 && maxInput <= inputBuffer.length())
{ {
// no terminator but maxInput bytes read // no terminator but maxInput bytes read
debug("StreamCore::readCallback(%s) maxInput size reached\n", debug("StreamCore::readCallback(%s) maxInput size reached\n",
name()); name());
end = maxInput; end = maxInput;
} }
if (maxInput && end > (long)maxInput) if (maxInput && end > (ssize_t)maxInput)
{ {
// limit input length to maxInput (ignore terminator) // limit input length to maxInput (ignore terminator)
end = maxInput; end = maxInput;
@ -1110,7 +1110,7 @@ readCallback(StreamIoStatus status,
} }
else 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 ? "..." : "", name(), end, end==1 ? "" : "s", end > 20 ? "..." : "",
inputBuffer.expand(-20)()); inputBuffer.expand(-20)());
} }
@ -1366,7 +1366,7 @@ normal_format:
{ {
int i = 0; int i = 0;
while (commandIndex[i] >= ' ') i++; 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(), name(),
consumedInput > 10 ? "..." : "", consumedInput > 10 ? "..." : "",
inputLine.expand(consumedInput > 10 ? inputLine.expand(consumedInput > 10 ?
@ -1393,18 +1393,18 @@ normal_format:
{ {
if (!(flags & AsyncMode) && onMismatch[0] != in_cmd) 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", name(), surplus, surplus==1 ? "" : "s",
inputLine.expand(consumedInput, 20)(), inputLine.expand(consumedInput, 20)(),
surplus > 20 ? "..." : ""); surplus > 20 ? "..." : "");
if (consumedInput>20) if (consumedInput>20)
error("%s: after %ld byte%s \"...%s\"\n", error("%s: after %" P "d byte%s \"...%s\"\n",
name(), consumedInput, name(), consumedInput,
consumedInput==1 ? "" : "s", consumedInput==1 ? "" : "s",
inputLine.expand(consumedInput-20, 20)()); inputLine.expand(consumedInput-20, 20)());
else else
error("%s: after %ld byte%s: \"%s\"\n", error("%s: after %" P "d byte%s: \"%s\"\n",
name(), consumedInput, name(), consumedInput,
consumedInput==1 ? "" : "s", consumedInput==1 ? "" : "s",
inputLine.expand(0, consumedInput)()); inputLine.expand(0, consumedInput)());
@ -1515,7 +1515,7 @@ scanValue(const StreamFormat& fmt, double& value)
} }
else return -1; 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; if ((size_t)consumed > inputLine.length()-consumedInput) return -1;
debug("StreamCore::scanValue(%s) scanned %#g\n", debug("StreamCore::scanValue(%s) scanned %#g\n",
name(), value); name(), value);
@ -1536,7 +1536,7 @@ scanValue(const StreamFormat& fmt, char* value, size_t& size)
if (!matchSeparator()) return -1; if (!matchSeparator()) return -1;
ssize_t consumed = StreamFormatConverter::find(fmt.conv)-> ssize_t consumed = StreamFormatConverter::find(fmt.conv)->
scanString(fmt, inputLine(consumedInput), value, size); 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)()); name(), fmt.conv, size, inputLine.expand(consumedInput)());
if (consumed < 0) if (consumed < 0)
{ {
@ -1547,7 +1547,7 @@ scanValue(const StreamFormat& fmt, char* value, size_t& size)
} }
else return -1; 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; if ((size_t)consumed > inputLine.length()-consumedInput) return -1;
#ifndef NO_TEMPORARY #ifndef NO_TEMPORARY
debug("StreamCore::scanValue(%s) scanned \"%s\"\n", 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> #include <sysSymTbl.h>
#endif #endif
#define P PRINTF_SIZE_T_PREFIX
enum MoreFlags { enum MoreFlags {
// 0x00FFFFFF used by StreamCore // 0x00FFFFFF used by StreamCore
InDestructor = 0x0100000, InDestructor = 0x0100000,
@ -294,7 +296,7 @@ void streamEpicsPrintTimestamp(char* buffer, size_t size)
c[4] = 0; c[4] = 0;
} }
tlen = strlen(buffer); 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 #else // !EPICS_3_13
void streamEpicsPrintTimestamp(char* buffer, size_t size) void streamEpicsPrintTimestamp(char* buffer, size_t size)
@ -1184,7 +1186,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
{ {
consumed = scanValue(format, lval); consumed = scanValue(format, lval);
if (consumed >= 0) ((epicsUInt32*)buffer)[nord] = 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, name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name, ((dbFldDes*)pdbaddr->pfldDes)->name,
nord, lval); nord, lval);
@ -1194,7 +1196,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
{ {
consumed = scanValue(format, lval); consumed = scanValue(format, lval);
if (consumed >= 0) ((epicsInt32*)buffer)[nord] = 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, name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name, ((dbFldDes*)pdbaddr->pfldDes)->name,
nord, lval); nord, lval);
@ -1205,7 +1207,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
consumed = scanValue(format, lval); consumed = scanValue(format, lval);
if (consumed >= 0) if (consumed >= 0)
((epicsUInt16*)buffer)[nord] = (epicsUInt16)lval; ((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, name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name, ((dbFldDes*)pdbaddr->pfldDes)->name,
nord, lval); nord, lval);
@ -1221,7 +1223,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
if (consumed >= 0) if (consumed >= 0)
memcpy(((epicsFloat64*)buffer)+nord, memcpy(((epicsFloat64*)buffer)+nord,
&f64, sizeof(f64)); &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, name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name, ((dbFldDes*)pdbaddr->pfldDes)->name,
nord, dval, nord, dval,
@ -1247,7 +1249,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
stringsize = MAX_STRING_SIZE; stringsize = MAX_STRING_SIZE;
consumed = scanValue(format, consumed = scanValue(format,
buffer+MAX_STRING_SIZE*nord, stringsize); 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, name(), pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name, ((dbFldDes*)pdbaddr->pfldDes)->name,
nord, (int)stringsize, buffer+MAX_STRING_SIZE*nord); nord, (int)stringsize, buffer+MAX_STRING_SIZE*nord);
@ -1351,14 +1353,14 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
case DBF_ULONG: case DBF_ULONG:
case DBF_LONG: case DBF_LONG:
case DBF_ENUM: 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, name(), putfunc, pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name, ((dbFldDes*)pdbaddr->pfldDes)->name,
pamapdbfType[fmt.type].strvalue, pamapdbfType[fmt.type].strvalue,
lval, nord); lval, nord);
return false; return false;
case DBF_DOUBLE: 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, name(), putfunc, pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name, ((dbFldDes*)pdbaddr->pfldDes)->name,
pamapdbfType[fmt.type].strvalue, pamapdbfType[fmt.type].strvalue,
@ -1366,7 +1368,7 @@ matchValue(const StreamFormat& format, const void* fieldaddress)
return false; return false;
case DBF_STRING: case DBF_STRING:
case DBF_CHAR: 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, name(), putfunc, pdbaddr->precord->name,
((dbFldDes*)pdbaddr->pfldDes)->name, ((dbFldDes*)pdbaddr->pfldDes)->name,
pamapdbfType[fmt.type].strvalue, pamapdbfType[fmt.type].strvalue,

View File

@ -255,7 +255,7 @@ static void copyFormatString(StreamBuffer& info, const char* source)
// Standard Long Converter for 'diouxX' // 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; size_t consumed = 0;
neg = false; neg = false;

View File

@ -978,7 +978,7 @@ replaceVariable(StreamBuffer& buffer, const char* varname)
} }
// quoted // quoted
buffer.append('"'); buffer.append('"');
long i; size_t i;
bool escaped = false; bool escaped = false;
for (i = 0; i < v->value.length(); i++) 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; size_t length;
time_t sec; time_t sec;
double frac; double frac;
size_t i, n; ssize_t i;
size_t n;
char* c; char* c;
char* p; char* p;

View File

@ -54,6 +54,7 @@ extern "C" {
#include "devSup.h" #include "devSup.h"
#include "dbAccess.h" #include "dbAccess.h"
#include <stdio.h> #include <stdio.h>
#include <sys/types.h>
#if defined(_WIN32) && !defined(ssize_t) #if defined(_WIN32) && !defined(ssize_t)
#define ssize_t ptrdiff_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); memset(aai->bptr, 0, aai->nelm);
return ERROR; return ERROR;
} }
if ((size_t)lval < aai->nelm) if (lval < (ssize_t)aai->nelm)
{ {
memset(((char*)aai->bptr)+lval , 0, aai->nelm-lval); memset(((char*)aai->bptr)+lval , 0, aai->nelm-lval);
lval++; lval++;

View File

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

View File

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