diff options
Diffstat (limited to 'contrib/expat/xmlwf/xmlfile.c')
| -rw-r--r-- | contrib/expat/xmlwf/xmlfile.c | 25 | 
1 files changed, 16 insertions, 9 deletions
| diff --git a/contrib/expat/xmlwf/xmlfile.c b/contrib/expat/xmlwf/xmlfile.c index 9c4f7f8dbadd..ce0b61217ed7 100644 --- a/contrib/expat/xmlwf/xmlfile.c +++ b/contrib/expat/xmlwf/xmlfile.c @@ -11,7 +11,7 @@     Copyright (c) 2002-2003 Fred L. Drake, Jr. <fdrake@users.sourceforge.net>     Copyright (c) 2004-2006 Karl Waclawek <karl@waclawek.net>     Copyright (c) 2005-2007 Steven Solie <steven@solie.ca> -   Copyright (c) 2016-2023 Sebastian Pipping <sebastian@pipping.org> +   Copyright (c) 2016-2025 Sebastian Pipping <sebastian@pipping.org>     Copyright (c) 2017      Rhodri James <rhodri@wildebeest.org.uk>     Copyright (c) 2019      David Loffredo <loffredo@steptools.com>     Copyright (c) 2021      Donghee Na <donghee.na@python.org> @@ -56,12 +56,19 @@  #include "xmltchar.h"  #include "filemap.h" +/* Function "read": */  #if defined(_MSC_VER)  #  include <io.h> -#endif - -#ifdef HAVE_UNISTD_H +/* https://msdn.microsoft.com/en-us/library/wyssk1bs(v=vs.100).aspx */ +#  define EXPAT_read _read +#  define EXPAT_read_count_t int +#  define EXPAT_read_req_t unsigned int +#else /* POSIX */  #  include <unistd.h> +/* https://pubs.opengroup.org/onlinepubs/009695399/functions/read.html */ +#  define EXPAT_read read +#  define EXPAT_read_count_t ssize_t +#  define EXPAT_read_req_t size_t  #endif  #ifndef O_BINARY @@ -89,8 +96,8 @@ reportError(XML_Parser parser, const XML_Char *filename) {      ftprintf(stdout,               T("%s") T(":%") T(XML_FMT_INT_MOD) T("u") T(":%")                   T(XML_FMT_INT_MOD) T("u") T(": %s\n"), -             filename, XML_GetErrorLineNumber(parser), -             XML_GetErrorColumnNumber(parser), message); +             filename, XML_GetCurrentLineNumber(parser), +             XML_GetCurrentColumnNumber(parser), message);    else      ftprintf(stderr, T("%s: (unknown message %u)\n"), filename,               (unsigned int)code); @@ -192,7 +199,7 @@ processStream(const XML_Char *filename, XML_Parser parser) {      }    }    for (;;) { -    int nread; +    EXPAT_read_count_t nread;      char *buf = (char *)XML_GetBuffer(parser, g_read_size_bytes);      if (! buf) {        if (filename != NULL) @@ -201,14 +208,14 @@ processStream(const XML_Char *filename, XML_Parser parser) {                 filename != NULL ? filename : T("xmlwf"));        return 0;      } -    nread = read(fd, buf, g_read_size_bytes); +    nread = EXPAT_read(fd, buf, (EXPAT_read_req_t)g_read_size_bytes);      if (nread < 0) {        tperror(filename != NULL ? filename : T("STDIN"));        if (filename != NULL)          close(fd);        return 0;      } -    if (XML_ParseBuffer(parser, nread, nread == 0) == XML_STATUS_ERROR) { +    if (XML_ParseBuffer(parser, (int)nread, nread == 0) == XML_STATUS_ERROR) {        reportError(parser, filename != NULL ? filename : T("STDIN"));        if (filename != NULL)          close(fd); | 
