From: Scott Kostyshak Date: Tue, 20 May 2014 11:46:22 +0000 (-0400) Subject: Fix a GCC warning: comparing signed vs. unsigned X-Git-Tag: 2.2.0alpha1~1920 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=fc19148f6dd60a1d925472cd86cb09ae0abdd35e;p=lyx.git Fix a GCC warning: comparing signed vs. unsigned This also changes the type of an int to an ssize_t. nRead is initialized as an ssize_t because it could be negative. It is cast to a size_t for comparison to the size of a vector, but only after we check that nRead is not negative. --- diff --git a/src/support/filetools.cpp b/src/support/filetools.cpp index 19d9701464..66d4b22701 100644 --- a/src/support/filetools.cpp +++ b/src/support/filetools.cpp @@ -840,7 +840,7 @@ bool readLink(FileName const & file, FileName & link) string const encoded = file.toFilesystemEncoding(); #ifdef HAVE_DEF_PATH_MAX char linkbuffer[PATH_MAX + 1]; - int const nRead = ::readlink(encoded.c_str(), + ssize_t const nRead = ::readlink(encoded.c_str(), linkbuffer, sizeof(linkbuffer) - 1); if (nRead <= 0) return false; @@ -854,7 +854,7 @@ bool readLink(FileName const & file, FileName & link) if (nRead < 0) { return false; } - if (nRead < buf.size() - 1) { + if (static_cast(nRead) < buf.size() - 1) { break; } buf.resize(buf.size() * 2);