widl: Updated to Wine version a4e77b33f6897d930261634c1b3ba5e4edc209f3.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-tools/widl/VERSION b/mingw-w64-tools/widl/VERSION
index d50d9a8..0b3ea1e 100644
--- a/mingw-w64-tools/widl/VERSION
+++ b/mingw-w64-tools/widl/VERSION
@@ -1 +1 @@
-WIDL version 9.17
+WIDL version 9.18
diff --git a/mingw-w64-tools/widl/configure b/mingw-w64-tools/widl/configure
index 788729e..56c448f 100755
--- a/mingw-w64-tools/widl/configure
+++ b/mingw-w64-tools/widl/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for widl 9.17.
+# Generated by GNU Autoconf 2.71 for widl 9.18.
#
# Report bugs to <mingw-w64-public@lists.sourceforge.net>.
#
@@ -610,8 +610,8 @@
# Identity of this package.
PACKAGE_NAME='widl'
PACKAGE_TARNAME='widl'
-PACKAGE_VERSION='9.17'
-PACKAGE_STRING='widl 9.17'
+PACKAGE_VERSION='9.18'
+PACKAGE_STRING='widl 9.18'
PACKAGE_BUGREPORT='mingw-w64-public@lists.sourceforge.net'
PACKAGE_URL=''
@@ -1318,7 +1318,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures widl 9.17 to adapt to many kinds of systems.
+\`configure' configures widl 9.18 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1390,7 +1390,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of widl 9.17:";;
+ short | recursive ) echo "Configuration of widl 9.18:";;
esac
cat <<\_ACEOF
@@ -1492,7 +1492,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-widl configure 9.17
+widl configure 9.18
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1904,7 +1904,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by widl $as_me 9.17, which was
+It was created by widl $as_me 9.18, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3294,7 +3294,7 @@
# Define the identity of the package.
PACKAGE='widl'
- VERSION='9.17'
+ VERSION='9.18'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -5761,7 +5761,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by widl $as_me 9.17, which was
+This file was extended by widl $as_me 9.18, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5829,7 +5829,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-widl config.status 9.17
+widl config.status 9.18
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/mingw-w64-tools/widl/include/basetsd.h b/mingw-w64-tools/widl/include/basetsd.h
index c16d554..eb12478 100644
--- a/mingw-w64-tools/widl/include/basetsd.h
+++ b/mingw-w64-tools/widl/include/basetsd.h
@@ -65,9 +65,17 @@
# endif
#endif /* !defined(_MSC_VER) */
+#ifndef __has_declspec_attribute
+# if defined(_MSC_VER)
+# define __has_declspec_attribute(x) 1
+# else
+# define __has_declspec_attribute(x) 0
+# endif
+#endif
+
/* FIXME: DECLSPEC_ALIGN should be declared only in winnt.h, but we need it here too */
#ifndef DECLSPEC_ALIGN
-# if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
+# if __has_declspec_attribute(align) && !defined(MIDL_PASS)
# define DECLSPEC_ALIGN(x) __declspec(align(x))
# elif defined(__GNUC__)
# define DECLSPEC_ALIGN(x) __attribute__((aligned(x)))
diff --git a/mingw-w64-tools/widl/include/windef.h b/mingw-w64-tools/widl/include/windef.h
index 79a9679..f8438f8 100644
--- a/mingw-w64-tools/widl/include/windef.h
+++ b/mingw-w64-tools/widl/include/windef.h
@@ -186,7 +186,11 @@
#undef NULL
#ifdef __cplusplus
-#define NULL 0
+#ifndef _WIN64
+#define NULL 0
+#else
+#define NULL 0LL
+#endif
#else
#define NULL ((void*)0)
#endif
diff --git a/mingw-w64-tools/widl/include/winnt.h b/mingw-w64-tools/widl/include/winnt.h
index de12c1c..4830ca4 100644
--- a/mingw-w64-tools/widl/include/winnt.h
+++ b/mingw-w64-tools/widl/include/winnt.h
@@ -52,7 +52,7 @@
#define FASTCALL __fastcall
#ifndef DECLSPEC_IMPORT
-# if defined(_MSC_VER)
+# if __has_declspec_attribute(dllimport)
# define DECLSPEC_IMPORT __declspec(dllimport)
# elif defined(__MINGW32__) || defined(__CYGWIN__)
# define DECLSPEC_IMPORT __attribute__((dllimport))
@@ -64,7 +64,7 @@
#endif
#ifndef DECLSPEC_NORETURN
-# if defined(_MSC_VER) && (_MSC_VER >= 1200) && !defined(MIDL_PASS)
+# if __has_declspec_attribute(noreturn) && !defined(MIDL_PASS)
# define DECLSPEC_NORETURN __declspec(noreturn)
# elif defined(__GNUC__)
# define DECLSPEC_NORETURN __attribute__((noreturn))
@@ -74,7 +74,7 @@
#endif
#ifndef DECLSPEC_ALIGN
-# if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
+# if __has_declspec_attribute(align) && !defined(MIDL_PASS)
# define DECLSPEC_ALIGN(x) __declspec(align(x))
# elif defined(__GNUC__)
# define DECLSPEC_ALIGN(x) __attribute__((aligned(x)))
@@ -84,7 +84,7 @@
#endif
#ifndef DECLSPEC_NOTHROW
-# if defined(_MSC_VER) && (_MSC_VER >= 1200) && !defined(MIDL_PASS)
+# if __has_declspec_attribute(nothrow) && !defined(MIDL_PASS)
# define DECLSPEC_NOTHROW __declspec(nothrow)
# elif defined(__GNUC__)
# define DECLSPEC_NOTHROW __attribute__((nothrow))
@@ -98,7 +98,7 @@
#endif
#ifndef DECLSPEC_UUID
-# if defined(_MSC_VER) && (_MSC_VER >= 1100) && defined (__cplusplus)
+# if __has_declspec_attribute(uuid) && defined (__cplusplus)
# define DECLSPEC_UUID(x) __declspec(uuid(x))
# else
# define DECLSPEC_UUID(x)
@@ -106,7 +106,7 @@
#endif
#ifndef DECLSPEC_NOVTABLE
-# if defined(_MSC_VER) && (_MSC_VER >= 1100) && defined(__cplusplus)
+# if __has_declspec_attribute(novtable) && defined(__cplusplus)
# define DECLSPEC_NOVTABLE __declspec(novtable)
# else
# define DECLSPEC_NOVTABLE
@@ -114,7 +114,7 @@
#endif
#ifndef DECLSPEC_SELECTANY
-#if defined(_MSC_VER) && (_MSC_VER >= 1100)
+# if __has_declspec_attribute(selectany)
#define DECLSPEC_SELECTANY __declspec(selectany)
#elif defined(__MINGW32__)
#define DECLSPEC_SELECTANY __attribute__((selectany))
@@ -138,7 +138,7 @@
#endif
#ifndef DECLSPEC_ADDRSAFE
-# if defined(_MSC_VER) && (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))
+# if __has_declspec_attribute(address_safe) && (defined(_M_ALPHA) || defined(_M_AXP64))
# define DECLSPEC_ADDRSAFE __declspec(address_safe)
# else
# define DECLSPEC_ADDRSAFE
@@ -156,7 +156,7 @@
#endif
#ifndef DECLSPEC_NOINLINE
-# if defined(_MSC_VER) && (_MSC_VER >= 1300)
+# if __has_declspec_attribute(noinline)
# define DECLSPEC_NOINLINE __declspec(noinline)
# elif defined(__GNUC__)
# define DECLSPEC_NOINLINE __attribute__((noinline))
@@ -166,7 +166,7 @@
#endif
#ifndef DECLSPEC_DEPRECATED
-# if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
+# if __has_declspec_attribute(deprecated) && !defined(MIDL_PASS)
# define DECLSPEC_DEPRECATED __declspec(deprecated)
# define DEPRECATE_SUPPORTED
# elif defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
@@ -183,7 +183,7 @@
#if defined(__WINESRC__) && !defined(WINE_UNIX_LIB)
/* Wine uses .spec file for PE exports */
# define DECLSPEC_EXPORT
-#elif defined(_MSC_VER)
+#elif __has_declspec_attribute(dllexport)
# define DECLSPEC_EXPORT __declspec(dllexport)
#elif defined(__MINGW32__)
# define DECLSPEC_EXPORT __attribute__((dllexport))
@@ -206,7 +206,7 @@
#ifndef DECLSPEC_CHPE_PATCHABLE
# ifndef __arm64ec__
# define DECLSPEC_CHPE_PATCHABLE
-# elif defined(_MSC_VER)
+# elif __has_declspec_attribute(hybrid_patchable)
# define DECLSPEC_CHPE_PATCHABLE __declspec(hybrid_patchable)
# else
# define DECLSPEC_CHPE_PATCHABLE __attribute__((hybrid_patchable))
diff --git a/mingw-w64-tools/widl/src/header.c b/mingw-w64-tools/widl/src/header.c
index f0fa1b2..27ef8b5 100644
--- a/mingw-w64-tools/widl/src/header.c
+++ b/mingw-w64-tools/widl/src/header.c
@@ -109,7 +109,7 @@
{
static char buf[37];
- sprintf(buf, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
+ snprintf(buf, sizeof(buf), "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
uuid->Data1, uuid->Data2, uuid->Data3, uuid->Data4[0], uuid->Data4[1], uuid->Data4[2],
uuid->Data4[3], uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], uuid->Data4[7]);
@@ -199,7 +199,7 @@
if(nameless_struct_cnt == 1) {
name = "__C89_NAMELESSSTRUCTNAME";
}else if(nameless_struct_i < 5 /* # of supporting macros */) {
- sprintf(buf, "__C89_NAMELESSSTRUCTNAME%d", ++nameless_struct_i);
+ snprintf(buf, sizeof(buf), "__C89_NAMELESSSTRUCTNAME%d", ++nameless_struct_i);
name = buf;
}
}
@@ -210,7 +210,7 @@
if(nameless_union_cnt == 1) {
name = "__C89_NAMELESSUNIONNAME";
}else if(nameless_union_i < 8 /* # of supporting macros */ ) {
- sprintf(buf, "__C89_NAMELESSUNIONNAME%d", ++nameless_union_i);
+ snprintf(buf, sizeof(buf), "__C89_NAMELESSUNIONNAME%d", ++nameless_union_i);
name = buf;
}
}
@@ -1049,9 +1049,9 @@
{
static char buff[255];
if (is_inherited_method(iface, func))
- sprintf(buff, "%s_%s", iface->name, get_name(func));
+ snprintf(buff, sizeof(buff), "%s_%s", iface->name, get_name(func));
else
- sprintf(buff, "%s", get_name(func));
+ snprintf(buff, sizeof(buff), "%s", get_name(func));
return buff;
}
diff --git a/mingw-w64-tools/widl/src/ppl.l b/mingw-w64-tools/widl/src/ppl.l
index 4748d73..947b344 100644
--- a/mingw-w64-tools/widl/src/ppl.l
+++ b/mingw-w64-tools/widl/src/ppl.l
@@ -907,12 +907,12 @@
if(!strcmp(ppp->ident, "__LINE__"))
{
buf = xrealloc(buf, 32);
- sprintf(buf, "%d", pp_status.line_number);
+ snprintf(buf, 32, "%d", pp_status.line_number);
}
else if(!strcmp(ppp->ident, "__FILE__"))
{
buf = xrealloc(buf, strlen(pp_status.input) + 3);
- sprintf(buf, "\"%s\"", pp_status.input);
+ snprintf(buf, strlen(pp_status.input) + 3, "\"%s\"", pp_status.input);
}
if(pp_flex_debug)
diff --git a/mingw-w64-tools/widl/src/ppl.yy.c b/mingw-w64-tools/widl/src/ppl.yy.c
index ec3ff83..a1ff081 100644
--- a/mingw-w64-tools/widl/src/ppl.yy.c
+++ b/mingw-w64-tools/widl/src/ppl.yy.c
@@ -4115,12 +4115,12 @@
if(!strcmp(ppp->ident, "__LINE__"))
{
buf = xrealloc(buf, 32);
- sprintf(buf, "%d", pp_status.line_number);
+ snprintf(buf, 32, "%d", pp_status.line_number);
}
else if(!strcmp(ppp->ident, "__FILE__"))
{
buf = xrealloc(buf, strlen(pp_status.input) + 3);
- sprintf(buf, "\"%s\"", pp_status.input);
+ snprintf(buf, strlen(pp_status.input) + 3, "\"%s\"", pp_status.input);
}
if(pp_flex_debug)
diff --git a/mingw-w64-tools/widl/src/register.c b/mingw-w64-tools/widl/src/register.c
index 02861f3..c5600c9 100644
--- a/mingw-w64-tools/widl/src/register.c
+++ b/mingw-w64-tools/widl/src/register.c
@@ -37,10 +37,11 @@
static const char *format_uuid( const struct uuid *uuid )
{
static char buffer[40];
- sprintf( buffer, "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
- uuid->Data1, uuid->Data2, uuid->Data3,
- uuid->Data4[0], uuid->Data4[1], uuid->Data4[2], uuid->Data4[3],
- uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], uuid->Data4[7] );
+ snprintf( buffer, sizeof(buffer),
+ "{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",
+ uuid->Data1, uuid->Data2, uuid->Data3,
+ uuid->Data4[0], uuid->Data4[1], uuid->Data4[2], uuid->Data4[3],
+ uuid->Data4[4], uuid->Data4[5], uuid->Data4[6], uuid->Data4[7] );
return buffer;
}
@@ -358,7 +359,7 @@
expr = get_attrp( typelib->attrs, ATTR_ID );
if (expr)
{
- sprintf(id_part, "\\%d", expr->cval);
+ snprintf(id_part, sizeof(id_part), "\\%d", expr->cval);
resname = strmake("%s\\%d", typelib_name, expr->cval);
}
put_str( indent, "'%x' { %s = s '%%MODULE%%%s' }\n",
diff --git a/mingw-w64-tools/widl/src/typegen.c b/mingw-w64-tools/widl/src/typegen.c
index 921bdd8..c29bbba 100644
--- a/mingw-w64-tools/widl/src/typegen.c
+++ b/mingw-w64-tools/widl/src/typegen.c
@@ -1270,7 +1270,7 @@
if (flags & IsBasetype) strcat( buffer, " base type," );
if (flags & IsByValue) strcat( buffer, " by value," );
if (flags & IsSimpleRef) strcat( buffer, " simple ref," );
- if (flags >> 13) sprintf( buffer + strlen(buffer), " srv size=%u,", (flags >> 13) * 8 );
+ if (flags >> 13) snprintf( buffer + strlen(buffer), sizeof(buffer) - strlen(buffer), " srv size=%u,", (flags >> 13) * 8 );
strcpy( buffer + strlen( buffer ) - 1, " */" );
print_file( file, indent, "NdrFcShort(0x%hx),\t%s\n", flags, buffer );
print_file( file, indent, "NdrFcShort(0x%x), /* stack offset = %u */\n",
@@ -4896,7 +4896,7 @@
type_to_print = &var->declspec;
else
type_to_print = type_pointer_get_ref(var->declspec.type);
- sprintf(name, "_W%u", i++);
+ snprintf(name, sizeof(name), "_W%u", i++);
write_type_decl(file, type_to_print, name);
fprintf(file, ";\n");
}
diff --git a/mingw-w64-tools/widl/src/widl.c b/mingw-w64-tools/widl/src/widl.c
index ef9ced0..deff5b8 100644
--- a/mingw-w64-tools/widl/src/widl.c
+++ b/mingw-w64-tools/widl/src/widl.c
@@ -243,7 +243,7 @@
if (p)
version += atoi(p + 1);
- sprintf(version_str, "__WIDL__=0x%x", version);
+ snprintf(version_str, sizeof(version_str), "__WIDL__=0x%x", version);
wpp_add_cmdline_define(version_str);
}
diff --git a/mingw-w64-tools/widl/src/write_msft.c b/mingw-w64-tools/widl/src/write_msft.c
index 66401fd..b0401d8 100644
--- a/mingw-w64-tools/widl/src/write_msft.c
+++ b/mingw-w64-tools/widl/src/write_msft.c
@@ -2741,7 +2741,7 @@
expr_t *expr = get_attrp( typelib->typelib->attrs, ATTR_ID );
if (expr)
- sprintf( typelib_id, "#%d", expr->cval );
+ snprintf( typelib_id, sizeof(typelib_id), "#%d", expr->cval );
add_output_to_resources( "TYPELIB", typelib_id );
if (strendswith( typelib_name, "_t.res" )) /* add typelib registration */
output_typelib_regscript( typelib->typelib );
@@ -2817,7 +2817,7 @@
* - a string representation of those
*/
cur_time = 2147483647;
- sprintf(info_string, "Created by WIDL version %s at %s", PACKAGE_VERSION, asctime(gmtime(&cur_time)));
+ snprintf(info_string, sizeof(info_string), "Created by WIDL version %s at %s", PACKAGE_VERSION, asctime(gmtime(&cur_time)));
set_custdata(msft, &midl_info_guid, VT_BSTR, info_string, &msft->typelib_header.CustomDataOffset);
set_custdata(msft, &midl_time_guid, VT_UI4, &cur_time, &msft->typelib_header.CustomDataOffset);
set_custdata(msft, &midl_version_guid, VT_UI4, &version, &msft->typelib_header.CustomDataOffset);
diff --git a/mingw-w64-tools/widl/src/write_sltg.c b/mingw-w64-tools/widl/src/write_sltg.c
index 497cfb9..414a8ec 100644
--- a/mingw-w64-tools/widl/src/write_sltg.c
+++ b/mingw-w64-tools/widl/src/write_sltg.c
@@ -544,7 +544,7 @@
for (i = 0; i < hrefmap->href_count; i++)
{
- sprintf(name, "*\\Rffff*#%x", hrefmap->href[i]);
+ snprintf(name, sizeof(name), "*\\Rffff*#%x", hrefmap->href[i]);
hrefinfo_size += 8 + 2 + strlen(name);
}
@@ -581,7 +581,7 @@
{
short len;
- sprintf(name, "*\\Rffff*#%x", hrefmap->href[i]);
+ snprintf(name, sizeof(name), "*\\Rffff*#%x", hrefmap->href[i]);
len = strlen(name);
append_data(data, &len, sizeof(len));
@@ -1733,7 +1733,7 @@
expr_t *expr = get_attrp(typelib->typelib->attrs, ATTR_ID);
if (expr)
- sprintf(typelib_id, "#%d", expr->cval);
+ snprintf(typelib_id, sizeof(typelib_id), "#%d", expr->cval);
add_output_to_resources("TYPELIB", typelib_id);
if (strendswith(typelib_name, "_t.res")) /* add typelib registration */
output_typelib_regscript(typelib->typelib);