[winpr] add WINPR_C_ARRAY_INIT

since C23 allows c++ style initializing replace direct use with this
macro
This commit is contained in:
Armin Novak
2026-02-24 20:18:25 +01:00
parent a5609b929e
commit 48267edf2f
434 changed files with 2204 additions and 2195 deletions

View File

@@ -41,7 +41,7 @@ UINT android_cliprdr_send_client_format_list(CliprdrClientContext* cliprdr)
UINT32* pFormatIds;
const char* formatName;
CLIPRDR_FORMAT* formats;
CLIPRDR_FORMAT_LIST formatList = { 0 };
CLIPRDR_FORMAT_LIST formatList = WINPR_C_ARRAY_INIT;
if (!cliprdr)
return ERROR_INVALID_PARAMETER;
@@ -93,7 +93,7 @@ static UINT android_cliprdr_send_client_format_data_request(CliprdrClientContext
UINT32 formatId)
{
UINT rc = ERROR_INVALID_PARAMETER;
CLIPRDR_FORMAT_DATA_REQUEST formatDataRequest = { 0 };
CLIPRDR_FORMAT_DATA_REQUEST formatDataRequest = WINPR_C_ARRAY_INIT;
androidContext* afc;
if (!cliprdr)
@@ -331,7 +331,7 @@ android_cliprdr_server_format_data_request(CliprdrClientContext* cliprdr,
BYTE* data;
UINT32 size;
UINT32 formatId;
CLIPRDR_FORMAT_DATA_RESPONSE response = { 0 };
CLIPRDR_FORMAT_DATA_RESPONSE response = WINPR_C_ARRAY_INIT;
androidContext* afc;
if (!cliprdr || !formatDataRequest || !cliprdr->ClientFormatDataResponse)

View File

@@ -257,7 +257,7 @@ static BOOL android_Pointer_SetDefault(rdpContext* context)
static BOOL android_register_pointer(rdpGraphics* graphics)
{
rdpPointer pointer = { 0 };
rdpPointer pointer = WINPR_C_ARRAY_INIT;
if (!graphics)
return FALSE;
@@ -646,7 +646,7 @@ JNIEXPORT jlong JNICALL Java_com_freerdp_freerdpcore_services_LibFreeRDP_freerdp
if (setenv("HOME", _strdup(envStr), 1) != 0)
{
char ebuffer[256] = { 0 };
char ebuffer[256] = WINPR_C_ARRAY_INIT;
WLog_FATAL(TAG, "Failed to set environment HOME=%s %s [%d]", envStr,
winpr_strerror(errno, ebuffer, sizeof(ebuffer)), errno);
return (jlong)NULL;

View File

@@ -201,7 +201,7 @@ finish:
/* callback to freerdp class */
void freerdp_callback(const char* callback, const char* signature, ...)
{
va_list vl = { 0 };
va_list vl = WINPR_C_ARRAY_INIT;
va_start(vl, signature);
java_callback_void(jLibFreeRDPObject, callback, signature, vl);
va_end(vl);
@@ -209,7 +209,7 @@ void freerdp_callback(const char* callback, const char* signature, ...)
jboolean freerdp_callback_bool_result(const char* callback, const char* signature, ...)
{
va_list vl = { 0 };
va_list vl = WINPR_C_ARRAY_INIT;
va_start(vl, signature);
jboolean res = java_callback_bool(jLibFreeRDPObject, callback, signature, vl);
va_end(vl);
@@ -218,7 +218,7 @@ jboolean freerdp_callback_bool_result(const char* callback, const char* signatur
jint freerdp_callback_int_result(const char* callback, const char* signature, ...)
{
va_list vl = { 0 };
va_list vl = WINPR_C_ARRAY_INIT;
va_start(vl, signature);
jint res = java_callback_int(jLibFreeRDPObject, callback, signature, vl);
va_end(vl);

View File

@@ -28,7 +28,7 @@ int mac_cliprdr_send_client_format_list(CliprdrClientContext *cliprdr)
UINT32 *pFormatIds;
const char *formatName;
CLIPRDR_FORMAT *formats;
CLIPRDR_FORMAT_LIST formatList = { 0 };
CLIPRDR_FORMAT_LIST formatList = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(cliprdr);
mfContext *mfc = (mfContext *)cliprdr->custom;
@@ -88,7 +88,7 @@ static int mac_cliprdr_send_client_format_list_response(CliprdrClientContext *cl
static UINT mac_cliprdr_send_client_format_data_request(CliprdrClientContext *cliprdr,
UINT32 formatId)
{
CLIPRDR_FORMAT_DATA_REQUEST formatDataRequest = { 0 };
CLIPRDR_FORMAT_DATA_REQUEST formatDataRequest = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(cliprdr);
if (formatId == 0)
@@ -287,7 +287,7 @@ mac_cliprdr_server_format_data_request(CliprdrClientContext *cliprdr,
BYTE *data;
UINT32 size;
UINT32 formatId;
CLIPRDR_FORMAT_DATA_RESPONSE response = { 0 };
CLIPRDR_FORMAT_DATA_RESPONSE response = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(cliprdr);

View File

@@ -127,7 +127,7 @@ DWORD WINAPI mac_client_thread(void *param)
{
int status;
DWORD rc;
HANDLE events[16] = { 0 };
HANDLE events[16] = WINPR_C_ARRAY_INIT;
HANDLE inputEvent;
DWORD nCount;
DWORD nCountTmp;
@@ -906,7 +906,7 @@ BOOL mac_pre_connect(freerdp *instance)
BOOL mac_post_connect(freerdp *instance)
{
rdpGdi *gdi;
rdpPointer rdp_pointer = { 0 };
rdpPointer rdp_pointer = WINPR_C_ARRAY_INIT;
mfContext *mfc;
MRDPView *view;
@@ -1151,7 +1151,7 @@ DWORD mac_verify_certificate_ex(freerdp *instance, const char *host, UINT16 port
MRDPView *view = (MRDPView *)mfc->view;
CertificateDialog *dialog = [CertificateDialog new];
const char *type = "RDP-Server";
char hostname[8192] = { 0 };
char hostname[8192] = WINPR_C_ARRAY_INIT;
if (flags & VERIFY_CERT_FLAG_GATEWAY)
type = "RDP-Gateway";

View File

@@ -158,7 +158,7 @@ void mac_set_view_size(rdpContext *context, MRDPView *view);
- (void)CreateContext
{
RDP_CLIENT_ENTRY_POINTS clientEntryPoints = { 0 };
RDP_CLIENT_ENTRY_POINTS clientEntryPoints = WINPR_C_ARRAY_INIT;
clientEntryPoints.Size = sizeof(RDP_CLIENT_ENTRY_POINTS);
clientEntryPoints.Version = RDP_CLIENT_INTERFACE_VERSION;

View File

@@ -242,7 +242,7 @@ static DWORD WINAPI tf_client_thread_proc(LPVOID arg)
DWORD nCount = 0;
DWORD status = 0;
DWORD result = 0;
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = { 0 };
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = WINPR_C_ARRAY_INIT;
BOOL rc = freerdp_connect(instance);
WINPR_ASSERT(instance->context);
@@ -387,7 +387,7 @@ static int RdpClientEntry(RDP_CLIENT_ENTRY_POINTS* pEntryPoints)
int main(int argc, char* argv[])
{
int rc = -1;
RDP_CLIENT_ENTRY_POINTS clientEntryPoints = { 0 };
RDP_CLIENT_ENTRY_POINTS clientEntryPoints = WINPR_C_ARRAY_INIT;
RdpClientEntry(&clientEntryPoints);
rdpContext* context = freerdp_client_context_new(&clientEntryPoints);

View File

@@ -341,7 +341,7 @@ static UINT wlf_cliprdr_send_data_request(wfClipboard* clipboard, const wlf_cons
*/
static UINT wlf_cliprdr_send_data_response(wfClipboard* clipboard, const BYTE* data, size_t size)
{
CLIPRDR_FORMAT_DATA_RESPONSE response = { 0 };
CLIPRDR_FORMAT_DATA_RESPONSE response = WINPR_C_ARRAY_INIT;
if (size > UINT32_MAX)
return ERROR_INVALID_PARAMETER;
@@ -530,7 +530,7 @@ static void wlf_cliprdr_transfer_data(UwacSeat* seat, void* context, const char*
EnterCriticalSection(&clipboard->lock);
wlf_const_request request = { 0 };
wlf_const_request request = WINPR_C_ARRAY_INIT;
if (wlf_mime_is_html(mime))
{
request.responseMime = mime_html;

View File

@@ -150,7 +150,7 @@ static BOOL wlf_Pointer_SetPosition(WINPR_ATTR_UNUSED rdpContext* context,
BOOL wlf_register_pointer(rdpGraphics* graphics)
{
rdpPointer pointer = { 0 };
rdpPointer pointer = WINPR_C_ARRAY_INIT;
pointer.size = sizeof(wlfPointer);
pointer.New = wlf_Pointer_New;

View File

@@ -53,10 +53,10 @@ static BOOL wl_update_buffer(wlfContext* context_w, INT32 ix, INT32 iy, INT32 iw
BOOL res = FALSE;
rdpGdi* gdi = NULL;
char* data = NULL;
UwacSize geometry = { 0 };
UwacSize geometry = WINPR_C_ARRAY_INIT;
size_t stride = 0;
UwacReturnCode rc = UWAC_ERROR_INTERNAL;
RECTANGLE_16 area = { 0 };
RECTANGLE_16 area = WINPR_C_ARRAY_INIT;
if (!context_w)
return FALSE;
@@ -474,7 +474,7 @@ static BOOL handle_window_events(freerdp* instance)
static int wlfreerdp_run(freerdp* instance)
{
wlfContext* context = NULL;
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = { 0 };
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = WINPR_C_ARRAY_INIT;
DWORD status = WAIT_ABANDONED;
if (!instance)
@@ -754,7 +754,7 @@ BOOL wlf_copy_image(const void* src, size_t srcStride, size_t srcWidth, size_t s
BOOL wlf_scale_coordinates(rdpContext* context, UINT32* px, UINT32* py, BOOL fromLocalToRDP)
{
wlfContext* wlf = (wlfContext*)context;
UwacSize geometry = { 0 };
UwacSize geometry = WINPR_C_ARRAY_INIT;
if (!context || !px || !py || !context->gdi)
return FALSE;

View File

@@ -50,7 +50,7 @@ INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
rdpSettings* settings;
LPWSTR cmd;
char** argv = NULL;
RDP_CLIENT_ENTRY_POINTS clientEntryPoints = { 0 };
RDP_CLIENT_ENTRY_POINTS clientEntryPoints = WINPR_C_ARRAY_INIT;
int ret = 1;
int argc = 0;
LPWSTR* args = NULL;

View File

@@ -84,9 +84,9 @@ static BOOL wf_has_console(void)
static BOOL wf_end_paint(rdpContext* context)
{
RECT updateRect = { 0 };
REGION16 invalidRegion = { 0 };
RECTANGLE_16 invalidRect = { 0 };
RECT updateRect = WINPR_C_ARRAY_INIT;
REGION16 invalidRegion = WINPR_C_ARRAY_INIT;
RECTANGLE_16 invalidRect = WINPR_C_ARRAY_INIT;
const RECTANGLE_16* extents = NULL;
WINPR_ASSERT(context);
@@ -285,7 +285,7 @@ static BOOL wf_pre_connect(freerdp* instance)
DWORD keyboardLayoutId = freerdp_settings_get_uint32(settings, FreeRDP_KeyboardLayout);
{
CHAR name[KL_NAMELENGTH + 1] = { 0 };
CHAR name[KL_NAMELENGTH + 1] = WINPR_C_ARRAY_INIT;
if (GetKeyboardLayoutNameA(name))
{
ULONG rc = 0;
@@ -319,7 +319,7 @@ static BOOL wf_pre_connect(freerdp* instance)
static void wf_append_item_to_system_menu(HMENU hMenu, UINT fMask, UINT wID, const wchar_t* text,
wfContext* wfc)
{
MENUITEMINFO item_info = { 0 };
MENUITEMINFO item_info = WINPR_C_ARRAY_INIT;
item_info.fMask = fMask;
item_info.cbSize = sizeof(MENUITEMINFO);
item_info.wID = wID;
@@ -521,10 +521,10 @@ static BOOL wf_authenticate_ex(freerdp* instance, char** username, char** passwo
BOOL fSave;
DWORD status;
DWORD dwFlags;
WCHAR UserNameW[CREDUI_MAX_USERNAME_LENGTH + 1] = { 0 };
WCHAR UserW[CREDUI_MAX_USERNAME_LENGTH + 1] = { 0 };
WCHAR DomainW[CREDUI_MAX_DOMAIN_TARGET_LENGTH + 1] = { 0 };
WCHAR PasswordW[CREDUI_MAX_PASSWORD_LENGTH + 1] = { 0 };
WCHAR UserNameW[CREDUI_MAX_USERNAME_LENGTH + 1] = WINPR_C_ARRAY_INIT;
WCHAR UserW[CREDUI_MAX_USERNAME_LENGTH + 1] = WINPR_C_ARRAY_INIT;
WCHAR DomainW[CREDUI_MAX_DOMAIN_TARGET_LENGTH + 1] = WINPR_C_ARRAY_INIT;
WCHAR PasswordW[CREDUI_MAX_PASSWORD_LENGTH + 1] = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(instance);
WINPR_ASSERT(instance->context);
@@ -610,9 +610,9 @@ static BOOL wf_authenticate_ex(freerdp* instance, char** username, char** passwo
ARRAYSIZE(DomainW));
if (status != NO_ERROR)
{
CHAR User[CREDUI_MAX_USERNAME_LENGTH + 1] = { 0 };
CHAR UserName[CREDUI_MAX_USERNAME_LENGTH + 1] = { 0 };
CHAR Domain[CREDUI_MAX_DOMAIN_TARGET_LENGTH + 1] = { 0 };
CHAR User[CREDUI_MAX_USERNAME_LENGTH + 1] = WINPR_C_ARRAY_INIT;
CHAR UserName[CREDUI_MAX_USERNAME_LENGTH + 1] = WINPR_C_ARRAY_INIT;
CHAR Domain[CREDUI_MAX_DOMAIN_TARGET_LENGTH + 1] = WINPR_C_ARRAY_INIT;
(void)ConvertWCharNToUtf8(UserNameW, ARRAYSIZE(UserNameW), UserName,
ARRAYSIZE(UserName));
@@ -664,7 +664,7 @@ static WCHAR* wf_format_text(const WCHAR* fmt, ...)
do
{
WCHAR* tmp = NULL;
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
va_start(ap, fmt);
rc = _vsnwprintf(buffer, size, fmt, ap);
va_end(ap);
@@ -740,12 +740,12 @@ static DWORD wf_is_x509_certificate_trusted(const char* common_name, const char*
HCERTCHAINENGINE hChainEngine = NULL;
PCCERT_CHAIN_CONTEXT pChainContext = NULL;
CERT_ENHKEY_USAGE EnhkeyUsage = { 0 };
CERT_USAGE_MATCH CertUsage = { 0 };
CERT_CHAIN_PARA ChainPara = { 0 };
CERT_CHAIN_POLICY_PARA ChainPolicy = { 0 };
CERT_CHAIN_POLICY_STATUS PolicyStatus = { 0 };
CERT_CHAIN_ENGINE_CONFIG EngineConfig = { 0 };
CERT_ENHKEY_USAGE EnhkeyUsage = WINPR_C_ARRAY_INIT;
CERT_USAGE_MATCH CertUsage = WINPR_C_ARRAY_INIT;
CERT_CHAIN_PARA ChainPara = WINPR_C_ARRAY_INIT;
CERT_CHAIN_POLICY_PARA ChainPolicy = WINPR_C_ARRAY_INIT;
CERT_CHAIN_POLICY_STATUS PolicyStatus = WINPR_C_ARRAY_INIT;
CERT_CHAIN_ENGINE_CONFIG EngineConfig = WINPR_C_ARRAY_INIT;
DWORD derPubKeyLen = WINPR_ASSERTING_INT_CAST(uint32_t, strlen(fingerprint));
char* derPubKey = calloc(derPubKeyLen, sizeof(char));
@@ -1050,7 +1050,7 @@ static BOOL wf_present_gateway_message(freerdp* instance, UINT32 type, BOOL isDi
static DWORD WINAPI wf_client_thread(LPVOID lpParam)
{
MSG msg = { 0 };
MSG msg = WINPR_C_ARRAY_INIT;
int width = 0;
int height = 0;
BOOL msg_ret = FALSE;
@@ -1077,7 +1077,7 @@ static DWORD WINAPI wf_client_thread(LPVOID lpParam)
while (!freerdp_shall_disconnect_context(instance->context))
{
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = { 0 };
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = WINPR_C_ARRAY_INIT;
DWORD nCount = 0;
if (freerdp_focus_required(instance))

View File

@@ -821,8 +821,8 @@ void CliprdrDataObject_Delete(CliprdrDataObject* instance)
static BOOL wf_create_file_obj(wfClipboard* clipboard, IDataObject** ppDataObject)
{
FORMATETC fmtetc[2] = { 0 };
STGMEDIUM stgmeds[2] = { 0 };
FORMATETC fmtetc[2] = WINPR_C_ARRAY_INIT;
STGMEDIUM stgmeds[2] = WINPR_C_ARRAY_INIT;
if (!ppDataObject)
return FALSE;
@@ -1218,7 +1218,7 @@ static UINT cliprdr_send_format_list(wfClipboard* clipboard)
UINT32 formatId = 0;
char formatName[1024];
CLIPRDR_FORMAT* formats = NULL;
CLIPRDR_FORMAT_LIST formatList = { 0 };
CLIPRDR_FORMAT_LIST formatList = WINPR_C_ARRAY_INIT;
if (!clipboard)
return ERROR_INTERNAL_ERROR;
@@ -1503,7 +1503,7 @@ static LRESULT CALLBACK cliprdr_proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM
static int create_cliprdr_window(wfClipboard* clipboard)
{
WNDCLASSEX wnd_cls = { 0 };
WNDCLASSEX wnd_cls = WINPR_C_ARRAY_INIT;
wnd_cls.cbSize = sizeof(WNDCLASSEX);
wnd_cls.style = CS_OWNDC;
@@ -2049,8 +2049,8 @@ static SSIZE_T wf_cliprdr_get_filedescriptor(wfClipboard* clipboard, BYTE** pDat
SSIZE_T rc = -1;
LPDATAOBJECT dataObj = NULL;
FORMATETC format_etc = { 0 };
STGMEDIUM stg_medium = { 0 };
FORMATETC format_etc = WINPR_C_ARRAY_INIT;
STGMEDIUM stg_medium = WINPR_C_ARRAY_INIT;
*pData = NULL;
@@ -2262,9 +2262,9 @@ wf_cliprdr_server_file_contents_request(CliprdrClientContext* context,
DWORD uSize = 0;
BYTE* pData = NULL;
HRESULT hRet = S_OK;
FORMATETC vFormatEtc = { 0 };
FORMATETC vFormatEtc = WINPR_C_ARRAY_INIT;
LPDATAOBJECT pDataObj = NULL;
STGMEDIUM vStgMedium = { 0 };
STGMEDIUM vStgMedium = WINPR_C_ARRAY_INIT;
BOOL bIsStreamFile = TRUE;
static LPSTREAM pStreamStc = NULL;
static UINT32 uStreamIdStc = 0;
@@ -2349,7 +2349,7 @@ wf_cliprdr_server_file_contents_request(CliprdrClientContext* context,
{
if (fileContentsRequest->dwFlags == FILECONTENTS_SIZE)
{
STATSTG vStatStg = { 0 };
STATSTG vStatStg = WINPR_C_ARRAY_INIT;
hRet = IStream_Stat(pStreamStc, &vStatStg, STATFLAG_NONAME);
if (hRet == S_OK)

View File

@@ -47,7 +47,7 @@ static void AddDefaultSettings_I(rdpSettings* settings, size_t idHostname, size_
PWSTR ParsedUserNameW = NULL;
PWSTR ParsedDomainW = NULL;
PWSTR PasswordNullTerminatedW = NULL;
PCREDENTIALW Credential = { 0 };
PCREDENTIALW Credential = WINPR_C_ARRAY_INIT;
PCSTR ServerHostname = freerdp_settings_get_string(settings, idHostname);

View File

@@ -53,7 +53,7 @@ static BOOL wf_scale_mouse_event_ex(wfContext* wfc, UINT16 flags, UINT16 buttonM
static BOOL g_flipping_in = FALSE;
static BOOL g_flipping_out = FALSE;
static BOOL g_keystates[256] = { 0 };
static BOOL g_keystates[256] = WINPR_C_ARRAY_INIT;
static BOOL ctrl_down(void)
{
@@ -340,7 +340,7 @@ static void wf_send_resize(wfContext* wfc)
if (freerdp_settings_get_uint32(settings, FreeRDP_SmartSizingWidth) != targetWidth ||
freerdp_settings_get_uint32(settings, FreeRDP_SmartSizingHeight) != targetHeight)
{
DISPLAY_CONTROL_MONITOR_LAYOUT layout = { 0 };
DISPLAY_CONTROL_MONITOR_LAYOUT layout = WINPR_C_ARRAY_INIT;
layout.Flags = DISPLAY_CONTROL_MONITOR_PRIMARY;
layout.Top = layout.Left = 0;
@@ -371,12 +371,12 @@ static void wf_send_resize(wfContext* wfc)
LRESULT CALLBACK wf_event_proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
HDC hdc = { 0 };
PAINTSTRUCT ps = { 0 };
HDC hdc = WINPR_C_ARRAY_INIT;
PAINTSTRUCT ps = WINPR_C_ARRAY_INIT;
BOOL processed = FALSE;
RECT windowRect = { 0 };
RECT windowRect = WINPR_C_ARRAY_INIT;
MINMAXINFO* minmax = NULL;
SCROLLINFO si = { 0 };
SCROLLINFO si = WINPR_C_ARRAY_INIT;
processed = TRUE;
LONG_PTR ptr = GetWindowLongPtr(hWnd, GWLP_USERDATA);
wfContext* wfc = (wfContext*)ptr;
@@ -919,7 +919,7 @@ static BOOL wf_scale_mouse_pos(wfContext* wfc, INT32 x, INT32 y, UINT16* px, UIN
static BOOL wf_pub_mouse_event(wfContext* wfc, UINT16 flags, UINT16 x, UINT16 y)
{
MouseEventEventArgs eventArgs = { 0 };
MouseEventEventArgs eventArgs = WINPR_C_ARRAY_INIT;
eventArgs.flags = flags;
eventArgs.x = x;
@@ -972,7 +972,7 @@ static BOOL wf_scale_mouse_event_ex(wfContext* wfc, UINT16 flags, UINT16 buttonM
BOOL wf_keyboard_set_indicators(rdpContext* context, UINT16 led_flags)
{
wfContext* wfc = (wfContext*)context;
BYTE keyState[256] = { 0 };
BYTE keyState[256] = WINPR_C_ARRAY_INIT;
if (!wfc || !GetKeyboardState(keyState))
return FALSE;

View File

@@ -337,7 +337,7 @@ static BOOL wf_Pointer_SetPosition(rdpContext* context, UINT32 x, UINT32 y)
BOOL wf_register_pointer(rdpGraphics* graphics)
{
wfContext* wfc;
rdpPointer pointer = { 0 };
rdpPointer pointer = WINPR_C_ARRAY_INIT;
if (!graphics)
return FALSE;

View File

@@ -430,7 +430,7 @@ static BOOL wf_rail_window_common(rdpContext* context, const WINDOW_ORDER_INFO*
BOOL rc;
HANDLE hInstance;
WCHAR* titleW = NULL;
WNDCLASSEX wndClassEx = { 0 };
WNDCLASSEX wndClassEx = WINPR_C_ARRAY_INIT;
railWindow = (wfRailWindow*)calloc(1, sizeof(wfRailWindow));
if (!railWindow)
@@ -680,8 +680,8 @@ static BOOL wf_rail_window_icon(rdpContext* context, const WINDOW_ORDER_INFO* or
int height;
HICON hIcon;
BOOL bigIcon;
ICONINFO iconInfo = { 0 };
BITMAPINFO bitmapInfo = { 0 };
ICONINFO iconInfo = WINPR_C_ARRAY_INIT;
BITMAPINFO bitmapInfo = WINPR_C_ARRAY_INIT;
wfRailWindow* railWindow;
BITMAPINFOHEADER* bitmapInfoHeader;
wfContext* wfc = (wfContext*)context;

View File

@@ -61,7 +61,7 @@ int main(int argc, char* argv[])
DWORD dwExitCode = 0;
rdpContext* context = NULL;
rdpSettings* settings = NULL;
RDP_CLIENT_ENTRY_POINTS clientEntryPoints = { 0 };
RDP_CLIENT_ENTRY_POINTS clientEntryPoints = WINPR_C_ARRAY_INIT;
clientEntryPoints.Size = sizeof(RDP_CLIENT_ENTRY_POINTS);
clientEntryPoints.Version = RDP_CLIENT_INTERFACE_VERSION;

View File

@@ -172,7 +172,7 @@ static BOOL xf_get_pixmap_info(xfContext* xfc);
#ifdef WITH_XRENDER
static void xf_draw_screen_scaled(xfContext* xfc, int x, int y, int w, int h)
{
XTransform transform = { 0 };
XTransform transform = WINPR_C_ARRAY_INIT;
Picture windowPicture = 0;
Picture primaryPicture = 0;
XRenderPictureAttributes pa;
@@ -548,7 +548,7 @@ static BOOL xf_process_x_events(freerdp* instance)
if (pending_status)
{
XEvent xevent = { 0 };
XEvent xevent = WINPR_C_ARRAY_INIT;
XNextEvent(xfc->display, &xevent);
status = xf_event_process(instance, &xevent);
@@ -596,8 +596,8 @@ static char* xf_window_get_title(rdpSettings* settings)
BOOL xf_create_window(xfContext* xfc)
{
XGCValues gcv = { 0 };
XEvent xevent = { 0 };
XGCValues gcv = WINPR_C_ARRAY_INIT;
XEvent xevent = WINPR_C_ARRAY_INIT;
char* windowTitle = NULL;
WINPR_ASSERT(xfc);
@@ -609,7 +609,7 @@ BOOL xf_create_window(xfContext* xfc)
int height =
WINPR_ASSERTING_INT_CAST(int, freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight));
const XSetWindowAttributes empty = { 0 };
const XSetWindowAttributes empty = WINPR_C_ARRAY_INIT;
xfc->attribs = empty;
if (xfc->remote_app)
@@ -617,7 +617,7 @@ BOOL xf_create_window(xfContext* xfc)
else
xfc->depth = DefaultDepthOfScreen(xfc->screen);
XVisualInfo vinfo = { 0 };
XVisualInfo vinfo = WINPR_C_ARRAY_INIT;
if (XMatchVisualInfo(xfc->display, xfc->screen_number, xfc->depth, TrueColor, &vinfo))
{
Window root = XDefaultRootWindow(xfc->display);
@@ -813,7 +813,7 @@ void xf_destroy_window(xfContext* xfc)
void xf_toggle_fullscreen(xfContext* xfc)
{
WindowStateChangeEventArgs e = { 0 };
WindowStateChangeEventArgs e = WINPR_C_ARRAY_INIT;
rdpContext* context = (rdpContext*)xfc;
rdpSettings* settings = context->settings;
@@ -835,7 +835,7 @@ void xf_toggle_fullscreen(xfContext* xfc)
void xf_minimize(xfContext* xfc)
{
WindowStateChangeEventArgs e = { 0 };
WindowStateChangeEventArgs e = WINPR_C_ARRAY_INIT;
rdpContext* context = (rdpContext*)xfc;
WINPR_ASSERT(context);
@@ -910,7 +910,7 @@ static BOOL xf_get_pixmap_info(xfContext* xfc)
static int xf_error_handler(Display* d, XErrorEvent* ev)
{
char buf[256] = { 0 };
char buf[256] = WINPR_C_ARRAY_INIT;
XGetErrorText(d, ev->error_code, buf, sizeof(buf));
const char* what = request_code_2_str(ev->request_code);
WLog_ERR(TAG, "%s: %s", what, buf);
@@ -1100,7 +1100,7 @@ void xf_button_map_init(xfContext* xfc)
/* logical mouse button which is used for each physical mouse */
/* button (indexed from zero). This is the default map. */
unsigned char x11_map[112] = { 0 };
unsigned char x11_map[112] = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(xfc);
WINPR_ASSERT(xfc->common.context.settings);
@@ -1192,7 +1192,7 @@ static BOOL xf_pre_connect(freerdp* instance)
!freerdp_settings_get_bool(settings, FreeRDP_CredentialsFromStdin) &&
!freerdp_settings_get_bool(settings, FreeRDP_SmartcardLogon))
{
char login_name[MAX_PATH] = { 0 };
char login_name[MAX_PATH] = WINPR_C_ARRAY_INIT;
ULONG size = sizeof(login_name) - 1;
if (GetUserNameExA(NameSamCompatible, login_name, &size))
@@ -1274,7 +1274,7 @@ static BOOL xf_pre_connect(freerdp* instance)
static BOOL xf_inject_keypress(rdpContext* context, const char* buffer, size_t size)
{
WCHAR wbuffer[64] = { 0 };
WCHAR wbuffer[64] = WINPR_C_ARRAY_INIT;
const SSIZE_T len = ConvertUtf8NToWChar(buffer, size, wbuffer, ARRAYSIZE(wbuffer));
if (len < 0)
return FALSE;
@@ -1298,18 +1298,18 @@ static BOOL xf_process_pipe(rdpContext* context, const char* pipe)
int fd = open(pipe, O_NONBLOCK | O_RDONLY);
if (fd < 0)
{
char ebuffer[256] = { 0 };
char ebuffer[256] = WINPR_C_ARRAY_INIT;
WLog_ERR(TAG, "pipe '%s' open returned %s [%d]", pipe,
winpr_strerror(errno, ebuffer, sizeof(ebuffer)), errno);
return FALSE;
}
while (!freerdp_shall_disconnect_context(context))
{
char buffer[64] = { 0 };
char buffer[64] = WINPR_C_ARRAY_INIT;
ssize_t rd = read(fd, buffer, sizeof(buffer) - 1);
if (rd == 0)
{
char ebuffer[256] = { 0 };
char ebuffer[256] = WINPR_C_ARRAY_INIT;
if ((errno == EAGAIN) || (errno == 0))
{
Sleep(100);
@@ -1323,7 +1323,7 @@ static BOOL xf_process_pipe(rdpContext* context, const char* pipe)
}
else if (rd < 0)
{
char ebuffer[256] = { 0 };
char ebuffer[256] = WINPR_C_ARRAY_INIT;
WLog_ERR(TAG, "pipe '%s' read returned %s [%d]", pipe,
winpr_strerror(errno, ebuffer, sizeof(ebuffer)), errno);
break;
@@ -1364,7 +1364,7 @@ static DWORD WINAPI xf_handle_pipe(void* arg)
const int rc = mkfifo(pipe, S_IWUSR | S_IRUSR);
if (rc != 0)
{
char ebuffer[256] = { 0 };
char ebuffer[256] = WINPR_C_ARRAY_INIT;
WLog_ERR(TAG, "Failed to create named pipe '%s': %s [%d]", pipe,
winpr_strerror(errno, ebuffer, sizeof(ebuffer)), errno);
return 0;
@@ -1390,7 +1390,7 @@ static DWORD WINAPI xf_handle_pipe(void* arg)
*/
static BOOL xf_post_connect(freerdp* instance)
{
ResizeWindowEventArgs e = { 0 };
ResizeWindowEventArgs e = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(instance);
xfContext* xfc = (xfContext*)instance->context;
@@ -1625,7 +1625,7 @@ static DWORD WINAPI xf_client_thread(LPVOID param)
while (!freerdp_shall_disconnect_context(instance->context))
{
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = { 0 };
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = WINPR_C_ARRAY_INIT;
DWORD nCount = 0;
handles[nCount++] = inputEvent;

View File

@@ -432,7 +432,7 @@ static const CLIPRDR_FORMAT* xf_cliprdr_get_server_format_by_atom(xfClipboard* c
static UINT xf_cliprdr_send_data_request(xfClipboard* clipboard, UINT32 formatId,
WINPR_ATTR_UNUSED const xfCliprdrFormat* cformat)
{
CLIPRDR_FORMAT_DATA_REQUEST request = { 0 };
CLIPRDR_FORMAT_DATA_REQUEST request = WINPR_C_ARRAY_INIT;
request.requestedFormatId = formatId;
DEBUG_CLIPRDR("requesting format 0x%08" PRIx32 " [%s] {local 0x%08" PRIx32 "} [%s]", formatId,
@@ -452,7 +452,7 @@ static UINT xf_cliprdr_send_data_request(xfClipboard* clipboard, UINT32 formatId
static UINT xf_cliprdr_send_data_response(xfClipboard* clipboard, const xfCliprdrFormat* format,
const BYTE* data, size_t size)
{
CLIPRDR_FORMAT_DATA_RESPONSE response = { 0 };
CLIPRDR_FORMAT_DATA_RESPONSE response = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(clipboard);
@@ -1801,8 +1801,8 @@ void xf_cliprdr_handle_xevent(xfContext* xfc, const XEvent* event)
*/
static UINT xf_cliprdr_send_client_capabilities(xfClipboard* clipboard)
{
CLIPRDR_CAPABILITIES capabilities = { 0 };
CLIPRDR_GENERAL_CAPABILITY_SET generalCapabilitySet = { 0 };
CLIPRDR_CAPABILITIES capabilities = WINPR_C_ARRAY_INIT;
CLIPRDR_GENERAL_CAPABILITY_SET generalCapabilitySet = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(clipboard);
@@ -1858,7 +1858,7 @@ static UINT xf_cliprdr_send_client_format_list(xfClipboard* clipboard, BOOL forc
*/
static UINT xf_cliprdr_send_client_format_list_response(xfClipboard* clipboard, BOOL status)
{
CLIPRDR_FORMAT_LIST_RESPONSE formatListResponse = { 0 };
CLIPRDR_FORMAT_LIST_RESPONSE formatListResponse = WINPR_C_ARRAY_INIT;
formatListResponse.common.msgType = CB_FORMAT_LIST_RESPONSE;
formatListResponse.common.msgFlags = status ? CB_RESPONSE_OK : CB_RESPONSE_FAIL;

View File

@@ -164,7 +164,7 @@ static BOOL update_timer(xfDispContext* xfDisp, uint64_t intervalNS)
BOOL xf_disp_sendResize(xfDispContext* xfDisp, BOOL fromTimer)
{
DISPLAY_CONTROL_MONITOR_LAYOUT layout = { 0 };
DISPLAY_CONTROL_MONITOR_LAYOUT layout = WINPR_C_ARRAY_INIT;
if (!xfDisp || !xfDisp->xfc)
return FALSE;

View File

@@ -301,8 +301,8 @@ static BOOL xf_event_execute_action_script(xfContext* xfc, const XEvent* event)
if (!match)
return FALSE;
char command[2048] = { 0 };
char arg[2048] = { 0 };
char command[2048] = WINPR_C_ARRAY_INIT;
char arg[2048] = WINPR_C_ARRAY_INIT;
(void)_snprintf(command, sizeof(command), "xevent %s", xeventName);
(void)_snprintf(arg, sizeof(arg), "%lu", (unsigned long)xfc->window->handle);
return run_action_script(xfc, command, arg, action_script_run, NULL);
@@ -628,7 +628,7 @@ static BOOL xf_event_ButtonRelease(xfContext* xfc, const XButtonEvent* event, BO
static BOOL xf_event_KeyPress(xfContext* xfc, const XKeyEvent* event, BOOL app)
{
KeySym keysym = 0;
char str[256] = { 0 };
char str[256] = WINPR_C_ARRAY_INIT;
union
{
const XKeyEvent* cev;
@@ -644,7 +644,7 @@ static BOOL xf_event_KeyPress(xfContext* xfc, const XKeyEvent* event, BOOL app)
static BOOL xf_event_KeyRelease(xfContext* xfc, const XKeyEvent* event, BOOL app)
{
KeySym keysym = 0;
char str[256] = { 0 };
char str[256] = WINPR_C_ARRAY_INIT;
union
{
const XKeyEvent* cev;
@@ -667,7 +667,7 @@ static BOOL xf_event_KeyReleaseOrIgnore(xfContext* xfc, const XKeyEvent* event,
if ((event->type == KeyRelease) && XEventsQueued(xfc->display, QueuedAfterReading))
{
XEvent nev = { 0 };
XEvent nev = WINPR_C_ARRAY_INIT;
XPeekEvent(xfc->display, &nev);
if ((nev.type == KeyPress) && (nev.xkey.time == event->time) &&

View File

@@ -175,7 +175,7 @@ static BOOL create_floatbar(xfFloatbar* floatbar)
{
xfContext* xfc = NULL;
Status status = 0;
XWindowAttributes attr = { 0 };
XWindowAttributes attr = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(floatbar);
if (floatbar->created)
@@ -391,8 +391,8 @@ static void xf_floatbar_event_expose(xfFloatbar* floatbar)
GC gc = NULL;
GC shape_gc = NULL;
Pixmap pmap = 0;
XPoint shape[5] = { 0 };
XPoint border[5] = { 0 };
XPoint shape[5] = WINPR_C_ARRAY_INIT;
XPoint border[5] = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(floatbar);
WINPR_ASSERT(floatbar->xfc);

View File

@@ -41,7 +41,7 @@ static UINT xf_OutputUpdate(xfContext* xfc, xfGfxSurface* surface)
UINT rc = ERROR_INTERNAL_ERROR;
UINT32 surfaceX = 0;
UINT32 surfaceY = 0;
RECTANGLE_16 surfaceRect = { 0 };
RECTANGLE_16 surfaceRect = WINPR_C_ARRAY_INIT;
UINT32 nbRects = 0;
const RECTANGLE_16* rects = NULL;
@@ -200,8 +200,8 @@ UINT xf_OutputExpose(xfContext* xfc, UINT32 x, UINT32 y, UINT32 width, UINT32 he
{
UINT16 count = 0;
UINT status = ERROR_INTERNAL_ERROR;
RECTANGLE_16 invalidRect = { 0 };
RECTANGLE_16 intersection = { 0 };
RECTANGLE_16 invalidRect = WINPR_C_ARRAY_INIT;
RECTANGLE_16 intersection = WINPR_C_ARRAY_INIT;
UINT16* pSurfaceIds = NULL;
RdpgfxClientContext* context = NULL;
@@ -227,7 +227,7 @@ UINT xf_OutputExpose(xfContext* xfc, UINT32 x, UINT32 y, UINT32 width, UINT32 he
}
for (UINT32 index = 0; index < count; index++)
{
RECTANGLE_16 surfaceRect = { 0 };
RECTANGLE_16 surfaceRect = WINPR_C_ARRAY_INIT;
xfGfxSurface* surface = (xfGfxSurface*)context->GetSurfaceData(context, pSurfaceIds[index]);
if (!surface || (!surface->gdi.outputMapped && !surface->gdi.windowMapped))

View File

@@ -108,7 +108,7 @@ static BOOL xf_Pointer_GetCursorForCurrentScale(rdpContext* context, rdpPointer*
#if defined(WITH_XCURSOR) && defined(WITH_XRENDER)
xfContext* xfc = (xfContext*)context;
xfPointer* xpointer = (xfPointer*)pointer;
XcursorImage ci = { 0 };
XcursorImage ci = WINPR_C_ARRAY_INIT;
int cursorIndex = -1;
if (!context || !pointer || !context->gdi)
@@ -398,7 +398,7 @@ static BOOL xf_Pointer_SetNull(rdpContext* context)
if (nullcursor == None)
{
XcursorImage ci = { 0 };
XcursorImage ci = WINPR_C_ARRAY_INIT;
XcursorPixel xp = 0;
ci.version = XCURSOR_IMAGE_VERSION;
@@ -441,8 +441,8 @@ static BOOL xf_Pointer_SetDefault(rdpContext* context)
static BOOL xf_Pointer_SetPosition(rdpContext* context, UINT32 x, UINT32 y)
{
xfContext* xfc = (xfContext*)context;
XWindowAttributes current = { 0 };
XSetWindowAttributes tmp = { 0 };
XWindowAttributes current = WINPR_C_ARRAY_INIT;
XSetWindowAttributes tmp = WINPR_C_ARRAY_INIT;
BOOL ret = FALSE;
Status rc = 0;
Window handle = xf_Pointer_get_window(xfc);
@@ -489,7 +489,7 @@ out:
/* Graphics Module */
BOOL xf_register_pointer(rdpGraphics* graphics)
{
rdpPointer pointer = { 0 };
rdpPointer pointer = WINPR_C_ARRAY_INIT;
pointer.size = sizeof(xfPointer);
pointer.New = xf_Pointer_New;

View File

@@ -76,8 +76,8 @@ static BOOL register_input_events(xfContext* xfc, Window window)
#define MAX_NR_MASKS 64
int ndevices = 0;
int nmasks = 0;
XIEventMask evmasks[MAX_NR_MASKS] = { 0 };
BYTE masks[MAX_NR_MASKS][XIMaskLen(XI_LASTEVENT)] = { 0 };
XIEventMask evmasks[MAX_NR_MASKS] = WINPR_C_ARRAY_INIT;
BYTE masks[MAX_NR_MASKS][XIMaskLen(XI_LASTEVENT)] = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(xfc);
@@ -151,7 +151,7 @@ static BOOL register_input_events(xfContext* xfc, Window window)
{
double max_pressure = t->max;
char devName[200] = { 0 };
char devName[200] = WINPR_C_ARRAY_INIT;
strncpy(devName, dev->name, ARRAYSIZE(devName) - 1);
CharLowerBuffA(devName, ARRAYSIZE(devName));
@@ -198,7 +198,7 @@ static BOOL register_input_events(xfContext* xfc, Window window)
static BOOL register_raw_events(xfContext* xfc, Window window)
{
XIEventMask mask;
unsigned char mask_bytes[XIMaskLen(XI_LASTEVENT)] = { 0 };
unsigned char mask_bytes[XIMaskLen(XI_LASTEVENT)] = WINPR_C_ARRAY_INIT;
rdpSettings* settings = NULL;
WINPR_ASSERT(xfc);
@@ -224,8 +224,8 @@ static BOOL register_raw_events(xfContext* xfc, Window window)
static BOOL register_device_events(xfContext* xfc, Window window)
{
XIEventMask mask = { 0 };
unsigned char mask_bytes[XIMaskLen(XI_LASTEVENT)] = { 0 };
XIEventMask mask = WINPR_C_ARRAY_INIT;
unsigned char mask_bytes[XIMaskLen(XI_LASTEVENT)] = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(xfc);
@@ -410,7 +410,7 @@ static void xf_input_detect_pan(xfContext* xfc)
static void xf_input_detect_pinch(xfContext* xfc)
{
ZoomingChangeEventArgs e = { 0 };
ZoomingChangeEventArgs e = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(xfc);
rdpContext* ctx = &xfc->common.context;
@@ -575,7 +575,7 @@ static void xf_input_hide_cursor(xfContext* xfc)
if (!xfc->cursorHidden)
{
XcursorImage ci = { 0 };
XcursorImage ci = WINPR_C_ARRAY_INIT;
XcursorPixel xp = 0;
static Cursor nullcursor = None;
xf_lock_x11(xfc);

View File

@@ -662,7 +662,7 @@ static int load_map_from_xkbfile(xfContext* xfc)
const int rc = XkbGetNames(xfc->display, XkbKeyNamesMask, xkb);
if (rc != Success)
{
char buffer[64] = { 0 };
char buffer[64] = WINPR_C_ARRAY_INIT;
WLog_Print(xfc->log, WLOG_WARN, "XkbGetNames() != Success: [%s]",
x11_error_to_string(xfc, rc, buffer, sizeof(buffer)));
}
@@ -806,7 +806,7 @@ BOOL xf_keyboard_init(xfContext* xfc)
/* When assertions are enabled assert the lists are sorted. */
#if defined(WITH_VERBOSE_WINPR_ASSERT)
{
x11_keysym_scancode_t copy[ARRAYSIZE(KEYSYM_SCANCODE_TABLE)] = { 0 };
x11_keysym_scancode_t copy[ARRAYSIZE(KEYSYM_SCANCODE_TABLE)] = WINPR_C_ARRAY_INIT;
memcpy(copy, KEYSYM_SCANCODE_TABLE, sizeof(copy));
qsort(copy, ARRAYSIZE(copy), sizeof(x11_keysym_scancode_t), keysym_cmp);
@@ -815,7 +815,7 @@ BOOL xf_keyboard_init(xfContext* xfc)
return FALSE;
}
{
struct x11_key_scancode_t copy[ARRAYSIZE(XKB_KEY_NAME_SCANCODE_TABLE)] = { 0 };
struct x11_key_scancode_t copy[ARRAYSIZE(XKB_KEY_NAME_SCANCODE_TABLE)] = WINPR_C_ARRAY_INIT;
memcpy(copy, XKB_KEY_NAME_SCANCODE_TABLE, sizeof(copy));
qsort(copy, ARRAYSIZE(copy), sizeof(struct x11_key_scancode_t), xkb_cmp);
@@ -992,7 +992,7 @@ void xf_keyboard_send_key(xfContext* xfc, BOOL down, BOOL repeat, const XKeyEven
{
if (freerdp_settings_get_bool(xfc->common.context.settings, FreeRDP_UnicodeInput))
{
wchar_t buffer[32] = { 0 };
wchar_t buffer[32] = WINPR_C_ARRAY_INIT;
int xwc = -1;
switch (rdp_scancode)
@@ -1016,7 +1016,7 @@ void xf_keyboard_send_key(xfContext* xfc, BOOL down, BOOL repeat, const XKeyEven
}
else
{
KeySym ignore = { 0 };
KeySym ignore = WINPR_C_ARRAY_INIT;
Status return_status = 0;
XKeyEvent ev = *event;
ev.type = KeyPress;
@@ -1039,11 +1039,11 @@ void xf_keyboard_send_key(xfContext* xfc, BOOL down, BOOL repeat, const XKeyEven
}
else
{
char str[3 * ARRAYSIZE(buffer)] = { 0 };
char str[3 * ARRAYSIZE(buffer)] = WINPR_C_ARRAY_INIT;
// NOLINTNEXTLINE(concurrency-mt-unsafe)
const size_t rc = wcstombs(str, buffer, ARRAYSIZE(buffer));
WCHAR wbuffer[ARRAYSIZE(buffer)] = { 0 };
WCHAR wbuffer[ARRAYSIZE(buffer)] = WINPR_C_ARRAY_INIT;
(void)ConvertUtf8ToWChar(str, wbuffer, rc);
freerdp_input_send_unicode_keyboard_event(input, down ? 0 : KBD_FLAGS_RELEASE,
wbuffer[0]);
@@ -1247,8 +1247,8 @@ static int xf_keyboard_execute_action_script(xfContext* xfc, XF_MODIFIER_KEYS* m
{
int status = 1;
BOOL match = FALSE;
char command[2048] = { 0 };
char combination[1024] = { 0 };
char command[2048] = WINPR_C_ARRAY_INIT;
char combination[1024] = WINPR_C_ARRAY_INIT;
if (!xfc->actionScriptExists)
return 1;
@@ -1325,7 +1325,7 @@ static int xk_keyboard_get_modifier_keys(xfContext* xfc, XF_MODIFIER_KEYS* mod)
BOOL xf_keyboard_handle_special_keys(xfContext* xfc, KeySym keysym)
{
XF_MODIFIER_KEYS mod = { 0 };
XF_MODIFIER_KEYS mod = WINPR_C_ARRAY_INIT;
xk_keyboard_get_modifier_keys(xfc, &mod);
// remember state of RightCtrl to ungrab keyboard if next action is release of RightCtrl
@@ -1498,7 +1498,7 @@ void xf_keyboard_handle_special_keys_release(xfContext* xfc, KeySym keysym)
return;
// all requirements for ungrab are fulfilled, ungrabbing now
XF_MODIFIER_KEYS mod = { 0 };
XF_MODIFIER_KEYS mod = WINPR_C_ARRAY_INIT;
xk_keyboard_get_modifier_keys(xfc, &mod);
if (!mod.RightCtrl)

View File

@@ -148,7 +148,7 @@ BOOL xf_rail_disable_remoteapp_mode(xfContext* xfc)
BOOL xf_rail_send_activate(xfContext* xfc, Window xwindow, BOOL enabled)
{
RAIL_ACTIVATE_ORDER activate = { 0 };
RAIL_ACTIVATE_ORDER activate = WINPR_C_ARRAY_INIT;
xfAppWindow* appWindow = xf_AppWindowFromX11Window(xfc, xwindow);
if (!appWindow)
@@ -186,7 +186,7 @@ BOOL xf_rail_send_client_system_command(xfContext* xfc, UINT64 windowId, UINT16
*/
BOOL xf_rail_adjust_position(xfContext* xfc, xfAppWindow* appWindow)
{
RAIL_WINDOW_MOVE_ORDER windowMove = { 0 };
RAIL_WINDOW_MOVE_ORDER windowMove = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(xfc);
WINPR_ASSERT(appWindow);
@@ -235,7 +235,7 @@ BOOL xf_rail_end_local_move(xfContext* xfc, xfAppWindow* appWindow)
if ((appWindow->local_move.direction == NET_WM_MOVERESIZE_MOVE_KEYBOARD) ||
(appWindow->local_move.direction == NET_WM_MOVERESIZE_SIZE_KEYBOARD))
{
RAIL_WINDOW_MOVE_ORDER windowMove = { 0 };
RAIL_WINDOW_MOVE_ORDER windowMove = WINPR_C_ARRAY_INIT;
/*
* For keyboard moves send and explicit update to RDP server
@@ -306,7 +306,7 @@ BOOL xf_rail_paint_surface(xfContext* xfc, UINT64 windowId, const RECTANGLE_16*
.bottom = WINPR_ASSERTING_INT_CAST(UINT16, MAX(appWindow->y + appWindow->height, 0))
};
REGION16 windowInvalidRegion = { 0 };
REGION16 windowInvalidRegion = WINPR_C_ARRAY_INIT;
region16_init(&windowInvalidRegion);
if (!region16_union_rect(&windowInvalidRegion, &windowInvalidRegion, &windowRect))
return FALSE;
@@ -366,8 +366,8 @@ static void window_state_log_style_int(wLog* log, const WINDOW_STATE_ORDER* wind
WINPR_ASSERT(windowState);
if (WLog_IsLevelActive(log, log_level))
{
char buffer1[128] = { 0 };
char buffer2[128] = { 0 };
char buffer1[128] = WINPR_C_ARRAY_INIT;
char buffer2[128] = WINPR_C_ARRAY_INIT;
window_styles_to_string(windowState->style, buffer1, sizeof(buffer1));
window_styles_ex_to_string(windowState->extendedStyle, buffer2, sizeof(buffer2));

View File

@@ -47,7 +47,7 @@ WINPR_ATTR_FORMAT_ARG(6, 7)
static void write_log(wLog* log, DWORD level, const char* fname, const char* fkt, size_t line,
WINPR_FORMAT_ARG const char* fmt, ...)
{
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
va_start(ap, fmt);
WLog_PrintTextMessageVA(log, level, line, fname, fkt, fmt, ap);
va_end(ap);
@@ -73,7 +73,7 @@ static int write_result_log_va(wLog* log, DWORD level, const char* fname, const
const BOOL ignore = ignore_code(rc, count, ap);
if (!ignore)
{
char buffer[128] = { 0 };
char buffer[128] = WINPR_C_ARRAY_INIT;
if (WLog_IsLevelActive(log, level))
{
@@ -90,7 +90,7 @@ static int write_result_log_expect_success(wLog* log, DWORD level, const char* f
{
if (rc != Success)
{
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
(void)write_result_log_va(log, level, fname, fkt, line, display, name, rc, 0, ap);
}
return rc;
@@ -101,7 +101,7 @@ static int write_result_log_expect_one(wLog* log, DWORD level, const char* fname
{
if (rc != 1)
{
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
(void)write_result_log_va(log, level, fname, fkt, line, display, name, rc, 0, ap);
}
return rc;
@@ -243,7 +243,7 @@ BOOL run_action_script(xfContext* xfc, const char* what, const char* arg, fn_act
}
{
char command[2048] = { 0 };
char command[2048] = WINPR_C_ARRAY_INIT;
(void)sprintf_s(command, sizeof(command), "%s %s", ActionScript, what);
keyScript = popen(command, "r");
@@ -255,7 +255,7 @@ BOOL run_action_script(xfContext* xfc, const char* what, const char* arg, fn_act
{
BOOL read_data = FALSE;
char buffer[2048] = { 0 };
char buffer[2048] = WINPR_C_ARRAY_INIT;
while (fgets(buffer, sizeof(buffer), keyScript) != NULL)
{
char* context = NULL;
@@ -289,7 +289,7 @@ int LogDynAndXCopyArea_ex(wLog* log, const char* file, const char* fkt, size_t l
{
if (WLog_IsLevelActive(log, log_level))
{
XWindowAttributes attr = { 0 };
XWindowAttributes attr = WINPR_C_ARRAY_INIT;
const Status rc = XGetWindowAttributes(display, dest, &attr);
write_log(log, log_level, file, fkt, line,

View File

@@ -231,8 +231,8 @@ static void xf_SetWindowTitleText(xfContext* xfc, Window window, const char* nam
*/
void xf_SendClientEvent(xfContext* xfc, Window window, Atom atom, unsigned int numArgs, ...)
{
XEvent xevent = { 0 };
va_list argp = { 0 };
XEvent xevent = WINPR_C_ARRAY_INIT;
va_list argp = WINPR_C_ARRAY_INIT;
va_start(argp, numArgs);
xevent.xclient.type = ClientMessage;
@@ -385,7 +385,7 @@ void xf_SetWindowFullscreen(xfContext* xfc, xfWindow* window, BOOL fullscreen)
}
else
{
XSetWindowAttributes xswa = { 0 };
XSetWindowAttributes xswa = WINPR_C_ARRAY_INIT;
xswa.override_redirect = True;
LogDynAndXChangeWindowAttributes(xfc->log, xfc->display, window->handle,
CWOverrideRedirect, &xswa);
@@ -654,7 +654,7 @@ void xf_DestroyDummyWindow(xfContext* xfc, Window window)
xfWindow* xf_CreateDesktopWindow(xfContext* xfc, char* name, int width, int height)
{
XEvent xevent = { 0 };
XEvent xevent = WINPR_C_ARRAY_INIT;
int input_mask = 0;
XClassHint* classHints = NULL;
xfWindow* window = (xfWindow*)calloc(1, sizeof(xfWindow));
@@ -691,7 +691,7 @@ xfWindow* xf_CreateDesktopWindow(xfContext* xfc, char* name, int width, int heig
if (rc != 0)
{
#ifdef WITH_DEBUG_X11
char ebuffer[256] = { 0 };
char ebuffer[256] = WINPR_C_ARRAY_INIT;
DEBUG_X11("ftruncate failed with %s [%d]", winpr_strerror(rc, ebuffer, sizeof(ebuffer)),
rc);
#endif
@@ -917,7 +917,7 @@ void xf_SetWindowStyle(xfContext* xfc, xfAppWindow* appWindow, UINT32 style, UIN
* sees that as a focus out event from the window owning the
* dropdown.
*/
XSetWindowAttributes attrs = { 0 };
XSetWindowAttributes attrs = WINPR_C_ARRAY_INIT;
attrs.override_redirect = redirect ? True : False;
LogDynAndXChangeWindowAttributes(xfc->log, xfc->display, appWindow->handle,
CWOverrideRedirect, &attrs);
@@ -1031,7 +1031,7 @@ int xf_AppWindowInit(xfContext* xfc, xfAppWindow* appWindow)
BOOL xf_AppWindowCreate(xfContext* xfc, xfAppWindow* appWindow)
{
XGCValues gcv = { 0 };
XGCValues gcv = WINPR_C_ARRAY_INIT;
int input_mask = 0;
XWMHints* InputModeHint = NULL;
XClassHint* class_hints = NULL;

View File

@@ -467,7 +467,7 @@ static int client_cli_read_string(freerdp* instance, const char* what, const cha
const SSIZE_T rc = freerdp_interruptible_get_line(instance->context, &line, &size, stdin);
if (rc < 0)
{
char ebuffer[256] = { 0 };
char ebuffer[256] = WINPR_C_ARRAY_INIT;
WLog_ERR(TAG, "freerdp_interruptible_get_line returned %s [%d]",
winpr_strerror(errno, ebuffer, sizeof(ebuffer)), errno);
free(line);
@@ -650,7 +650,7 @@ BOOL client_cli_choose_smartcard(WINPR_ATTR_UNUSED freerdp* instance, SmartcardC
while (1)
{
char input[10] = { 0 };
char input[10] = WINPR_C_ARRAY_INIT;
printf("\nChoose a smartcard to use for %s (0 - %" PRIu32 "): ",
gateway ? "gateway authentication" : "logon", count - 1);
@@ -1198,7 +1198,7 @@ BOOL client_cli_get_access_token(freerdp* instance, AccessTokenType tokenType, c
"ACCESS_TOKEN_TYPE_AAD expected 2 additional arguments, but got %" PRIuz
", ignoring",
count);
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
va_start(ap, count);
const char* scope = va_arg(ap, const char*);
const char* req_cnf = va_arg(ap, const char*);
@@ -1249,7 +1249,7 @@ BOOL client_common_get_access_token(freerdp* instance, const char* request, char
if (resp_code != HTTP_STATUS_OK)
{
char buffer[64] = { 0 };
char buffer[64] = WINPR_C_ARRAY_INIT;
WLog_Print(log, WLOG_ERROR,
"Server unwilling to provide access token; returned status code %s",
@@ -1466,7 +1466,7 @@ BOOL freerdp_client_encomsp_toggle_control(EncomspClientContext* encomsp)
BOOL freerdp_client_encomsp_set_control(EncomspClientContext* encomsp, BOOL control)
{
ENCOMSP_CHANGE_PARTICIPANT_CONTROL_LEVEL_PDU pdu = { 0 };
ENCOMSP_CHANGE_PARTICIPANT_CONTROL_LEVEL_PDU pdu = WINPR_C_ARRAY_INIT;
if (!encomsp)
return FALSE;
@@ -2085,7 +2085,7 @@ static BOOL freerdp_client_touch_update(rdpClientContext* cctx, UINT32 flags, IN
const BOOL resetcontact = (flags & FREERDP_TOUCH_UP) != 0;
if (resetcontact)
{
FreeRDP_TouchContact empty = { 0 };
FreeRDP_TouchContact empty = WINPR_C_ARRAY_INIT;
*contact = empty;
}
return TRUE;
@@ -2102,7 +2102,7 @@ BOOL freerdp_client_handle_touch(rdpClientContext* cctx, UINT32 flags, INT32 fin
FREERDP_TOUCH_DOWN | FREERDP_TOUCH_UP | FREERDP_TOUCH_MOTION | FREERDP_TOUCH_CANCEL;
WINPR_ASSERT(cctx);
FreeRDP_TouchContact contact = { 0 };
FreeRDP_TouchContact contact = WINPR_C_ARRAY_INIT;
if (!freerdp_client_touch_update(cctx, flags, finger, pressure, x, y, &contact))
return FALSE;
@@ -2183,7 +2183,7 @@ static BOOL freerdp_client_register_pen(rdpClientContext* cctx, UINT32 flags, IN
FreeRDP_PenDevice* pen = freerdp_client_get_pen(cctx, null_deviceid, &pos);
if (pen)
{
const FreeRDP_PenDevice empty = { 0 };
const FreeRDP_PenDevice empty = WINPR_C_ARRAY_INIT;
*pen = empty;
pen->deviceid = deviceid;
@@ -2203,7 +2203,7 @@ BOOL freerdp_client_handle_pen(rdpClientContext* cctx, UINT32 flags, INT32 devic
#if defined(CHANNEL_RDPEI_CLIENT)
if ((flags & FREERDP_PEN_REGISTER) != 0)
{
va_list args = { 0 };
va_list args = WINPR_C_ARRAY_INIT;
va_start(args, deviceid);
double pressure = va_arg(args, double);
@@ -2231,7 +2231,7 @@ BOOL freerdp_client_handle_pen(rdpClientContext* cctx, UINT32 flags, INT32 devic
UINT16 rotation = 0;
INT16 tiltX = 0;
INT16 tiltY = 0;
va_list args = { 0 };
va_list args = WINPR_C_ARRAY_INIT;
va_start(args, deviceid);
x = va_arg(args, INT32);
@@ -2572,7 +2572,7 @@ char* freerdp_client_get_aad_url(rdpClientContext* cctx, freerdp_client_aad_type
WINPR_ASSERT(cctx);
char* str = NULL;
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
va_start(ap, type);
switch (type)
{

View File

@@ -228,7 +228,7 @@ static CliprdrFuseFile* fuse_file_new(WINPR_FORMAT_ARG const char* fmt, ...)
WINPR_ASSERT(fmt);
{
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
va_start(ap, fmt);
const int rc =
winpr_vasprintf(&file->filename_with_root, &file->filename_with_root_len, fmt, ap);
@@ -261,7 +261,7 @@ static void clip_data_entry_free(void* data)
if (clip_data_entry->has_clip_data_id)
{
CliprdrFileContext* file_context = clip_data_entry->file_context;
CLIPRDR_UNLOCK_CLIPBOARD_DATA unlock_clipboard_data = { 0 };
CLIPRDR_UNLOCK_CLIPBOARD_DATA unlock_clipboard_data = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(file_context);
@@ -315,7 +315,7 @@ static CliprdrFuseClipDataEntry* clip_data_entry_new(CliprdrFileContext* file_co
BOOL needs_clip_data_id)
{
CliprdrFuseClipDataEntry* clip_data_entry = NULL;
CLIPRDR_LOCK_CLIPBOARD_DATA lock_clipboard_data = { 0 };
CLIPRDR_LOCK_CLIPBOARD_DATA lock_clipboard_data = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(file_context);
@@ -449,7 +449,7 @@ static BOOL invalidate_inode(void* data, WINPR_ATTR_UNUSED size_t index, va_list
static void clear_selection(CliprdrFileContext* file_context, BOOL all_selections,
CliprdrFuseClipDataEntry* clip_data_entry)
{
FuseFileClearContext clear_context = { 0 };
FuseFileClearContext clear_context = WINPR_C_ARRAY_INIT;
CliprdrFuseFile* clip_data_dir = NULL;
WINPR_ASSERT(file_context);
@@ -654,7 +654,7 @@ static void writelog(wLog* log, DWORD level, const char* fname, const char* fkt,
if (!WLog_IsLevelActive(log, level))
return;
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
va_start(ap, fmt);
WLog_PrintTextMessageVA(log, level, line, fname, fkt, fmt, ap);
va_end(ap);
@@ -755,7 +755,7 @@ static BOOL request_file_size_async(CliprdrFileContext* file_context, CliprdrFus
fuse_req_t fuse_req, FuseLowlevelOperationType operation_type)
{
CliprdrFuseRequest* fuse_request = NULL;
CLIPRDR_FILE_CONTENTS_REQUEST file_contents_request = { 0 };
CLIPRDR_FILE_CONTENTS_REQUEST file_contents_request = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(file_context);
WINPR_ASSERT(fuse_file);
@@ -819,7 +819,7 @@ static void cliprdr_file_fuse_lookup(fuse_req_t fuse_req, fuse_ino_t parent_ino,
CliprdrFileContext* file_context = fuse_req_userdata(fuse_req);
CliprdrFuseFile* parent = NULL;
CliprdrFuseFile* fuse_file = NULL;
struct fuse_entry_param entry = { 0 };
struct fuse_entry_param entry = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(file_context);
@@ -869,7 +869,7 @@ static void cliprdr_file_fuse_getattr(fuse_req_t fuse_req, fuse_ino_t fuse_ino,
{
CliprdrFileContext* file_context = fuse_req_userdata(fuse_req);
CliprdrFuseFile* fuse_file = NULL;
struct stat attr = { 0 };
struct stat attr = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(file_context);
@@ -942,7 +942,7 @@ static void cliprdr_file_fuse_open(fuse_req_t fuse_req, fuse_ino_t fuse_ino,
static BOOL request_file_range_async(CliprdrFileContext* file_context, CliprdrFuseFile* fuse_file,
fuse_req_t fuse_req, off_t offset, size_t requested_size)
{
CLIPRDR_FILE_CONTENTS_REQUEST file_contents_request = { 0 };
CLIPRDR_FILE_CONTENTS_REQUEST file_contents_request = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(file_context);
WINPR_ASSERT(fuse_file);
@@ -1063,7 +1063,7 @@ static void cliprdr_file_fuse_readdir(fuse_req_t fuse_req, fuse_ino_t fuse_ino,
CliprdrFileContext* file_context = fuse_req_userdata(fuse_req);
CliprdrFuseFile* fuse_file = NULL;
CliprdrFuseFile* child = NULL;
struct stat attr = { 0 };
struct stat attr = WINPR_C_ARRAY_INIT;
size_t written_size = 0;
size_t entry_size = 0;
char* filename = NULL;
@@ -1213,7 +1213,7 @@ static UINT cliprdr_file_context_server_file_contents_response(
{
CliprdrFileContext* file_context = NULL;
CliprdrFuseRequest* fuse_request = NULL;
struct fuse_entry_param entry = { 0 };
struct fuse_entry_param entry = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(cliprdr_context);
WINPR_ASSERT(file_contents_response);
@@ -1307,7 +1307,7 @@ static UINT cliprdr_file_context_server_file_contents_response(
static UINT cliprdr_file_context_send_file_contents_failure(
CliprdrFileContext* file, const CLIPRDR_FILE_CONTENTS_REQUEST* fileContentsRequest)
{
CLIPRDR_FILE_CONTENTS_RESPONSE response = { 0 };
CLIPRDR_FILE_CONTENTS_RESPONSE response = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(file);
WINPR_ASSERT(fileContentsRequest);
@@ -1411,7 +1411,7 @@ static CliprdrLocalFile* file_for_request(CliprdrFileContext* file, UINT32 lockI
}
if (!f->fp)
{
char ebuffer[256] = { 0 };
char ebuffer[256] = WINPR_C_ARRAY_INIT;
writelog(file->log, WLOG_WARN, __FILE__, __func__, __LINE__,
"[lockID %" PRIu32 ", index %" PRIu32
"] failed to open file '%s' [size %" PRId64 "] %s [%d]",
@@ -1692,7 +1692,7 @@ static BOOL cliprdr_file_content_changed_and_update(void* ihash, size_t hsize, c
size_t size)
{
BYTE hash[WINPR_SHA256_DIGEST_LENGTH] = { 0 };
BYTE hash[WINPR_SHA256_DIGEST_LENGTH] = WINPR_C_ARRAY_INIT;
if (hsize < sizeof(hash))
return FALSE;
@@ -1816,7 +1816,7 @@ static BOOL is_fuse_file_not_parent(WINPR_ATTR_UNUSED const void* key, void* val
static CliprdrFuseFile* get_parent_directory(CliprdrFileContext* file_context, const char* path)
{
CliprdrFuseFindParentContext find_context = { 0 };
CliprdrFuseFindParentContext find_context = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(file_context);
WINPR_ASSERT(path);
@@ -1852,7 +1852,7 @@ static BOOL selection_handle_file(CliprdrFileContext* file_context,
CliprdrFuseFile* clip_data_dir = clip_data_entry->clip_data_dir;
WINPR_ASSERT(clip_data_dir);
char filename[ARRAYSIZE(file->cFileName) * 8] = { 0 };
char filename[ARRAYSIZE(file->cFileName) * 8] = WINPR_C_ARRAY_INIT;
const SSIZE_T filenamelen = ConvertWCharNToUtf8(file->cFileName, ARRAYSIZE(file->cFileName),
filename, ARRAYSIZE(filename) - 1);
if (filenamelen < 0)
@@ -2119,7 +2119,7 @@ static BOOL create_base_path(CliprdrFileContext* file)
{
WINPR_ASSERT(file);
char base[64] = { 0 };
char base[64] = WINPR_C_ARRAY_INIT;
(void)_snprintf(base, sizeof(base), "com.freerdp.client.cliprdr.%" PRIu32,
GetCurrentProcessId());
@@ -2137,7 +2137,7 @@ static BOOL create_base_path(CliprdrFileContext* file)
static void cliprdr_local_file_free(CliprdrLocalFile* file)
{
const CliprdrLocalFile empty = { 0 };
const CliprdrLocalFile empty = WINPR_C_ARRAY_INIT;
if (!file)
return;
if (file->fp)
@@ -2152,7 +2152,7 @@ static void cliprdr_local_file_free(CliprdrLocalFile* file)
static BOOL cliprdr_local_file_new(CliprdrFileContext* context, CliprdrLocalFile* f,
const char* path)
{
const CliprdrLocalFile empty = { 0 };
const CliprdrLocalFile empty = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(f);
WINPR_ASSERT(context);
WINPR_ASSERT(path);
@@ -2214,7 +2214,7 @@ static BOOL is_directory(const char* path)
if (hFile == INVALID_HANDLE_VALUE)
return FALSE;
BY_HANDLE_FILE_INFORMATION fileInformation = { 0 };
BY_HANDLE_FILE_INFORMATION fileInformation = WINPR_C_ARRAY_INIT;
const BOOL status = GetFileInformationByHandle(hFile, &fileInformation);
(void)CloseHandle(hFile);
if (!status)
@@ -2233,7 +2233,7 @@ static BOOL add_directory(CliprdrLocalStream* stream, const char* path)
if (!wpath)
return FALSE;
WIN32_FIND_DATAW FindFileData = { 0 };
WIN32_FIND_DATAW FindFileData = WINPR_C_ARRAY_INIT;
HANDLE hFind = FindFirstFileW(wpath, &FindFileData);
free(wpath);
@@ -2243,8 +2243,8 @@ static BOOL add_directory(CliprdrLocalStream* stream, const char* path)
BOOL rc = FALSE;
char* next = NULL;
WCHAR dotbuffer[6] = { 0 };
WCHAR dotdotbuffer[6] = { 0 };
WCHAR dotbuffer[6] = WINPR_C_ARRAY_INIT;
WCHAR dotdotbuffer[6] = WINPR_C_ARRAY_INIT;
const WCHAR* dot = InitializeConstWCharFromUtf8(".", dotbuffer, ARRAYSIZE(dotbuffer));
const WCHAR* dotdot = InitializeConstWCharFromUtf8("..", dotdotbuffer, ARRAYSIZE(dotdotbuffer));
do
@@ -2254,7 +2254,7 @@ static BOOL add_directory(CliprdrLocalStream* stream, const char* path)
if (_wcscmp(FindFileData.cFileName, dotdot) == 0)
continue;
char cFileName[MAX_PATH] = { 0 };
char cFileName[MAX_PATH] = WINPR_C_ARRAY_INIT;
(void)ConvertWCharNToUtf8(FindFileData.cFileName, ARRAYSIZE(FindFileData.cFileName),
cFileName, ARRAYSIZE(cFileName));

View File

@@ -110,7 +110,7 @@ static BOOL freerdp_client_print_codepages(const char* arg)
for (size_t x = 0; x < count; x++)
{
const RDP_CODEPAGE* page = &pages[x];
char buffer[2048] = { 0 };
char buffer[2048] = WINPR_C_ARRAY_INIT;
if (strnlen(page->subLanguageSymbol, ARRAYSIZE(page->subLanguageSymbol)) > 0)
(void)_snprintf(buffer, sizeof(buffer), "[%s|%s]", page->primaryLanguageSymbol,
@@ -1715,10 +1715,10 @@ static void freerdp_client_print_keyboard_list(void)
static void freerdp_client_print_timezone_list(void)
{
DWORD index = 0;
DYNAMIC_TIME_ZONE_INFORMATION info = { 0 };
DYNAMIC_TIME_ZONE_INFORMATION info = WINPR_C_ARRAY_INIT;
while (EnumDynamicTimeZoneInformation(index++, &info) != ERROR_NO_MORE_ITEMS)
{
char TimeZoneKeyName[ARRAYSIZE(info.TimeZoneKeyName) + 1] = { 0 };
char TimeZoneKeyName[ARRAYSIZE(info.TimeZoneKeyName) + 1] = WINPR_C_ARRAY_INIT;
(void)ConvertWCharNToUtf8(info.TimeZoneKeyName, ARRAYSIZE(info.TimeZoneKeyName),
TimeZoneKeyName, ARRAYSIZE(TimeZoneKeyName));
@@ -4638,8 +4638,8 @@ static int parse_command_line_option_timezone(rdpSettings* settings,
{
BOOL found = FALSE;
DWORD index = 0;
DYNAMIC_TIME_ZONE_INFORMATION info = { 0 };
char TimeZoneKeyName[ARRAYSIZE(info.TimeZoneKeyName) + 1] = { 0 };
DYNAMIC_TIME_ZONE_INFORMATION info = WINPR_C_ARRAY_INIT;
char TimeZoneKeyName[ARRAYSIZE(info.TimeZoneKeyName) + 1] = WINPR_C_ARRAY_INIT;
while (EnumDynamicTimeZoneInformation(index++, &info) != ERROR_NO_MORE_ITEMS)
{
(void)ConvertWCharNToUtf8(info.TimeZoneKeyName, ARRAYSIZE(info.TimeZoneKeyName),
@@ -5643,7 +5643,7 @@ static int freerdp_client_settings_parse_command_line_arguments_int(
freerdp* instance = freerdp_settings_get_pointer_writable(settings, FreeRDP_instance);
if (!freerdp_settings_get_string(settings, FreeRDP_Password))
{
char buffer[512 + 1] = { 0 };
char buffer[512 + 1] = WINPR_C_ARRAY_INIT;
if (!freerdp_passphrase_read(instance->context, "Password: ", buffer,
ARRAYSIZE(buffer) - 1, 1))
@@ -5657,7 +5657,7 @@ static int freerdp_client_settings_parse_command_line_arguments_int(
{
if (!freerdp_settings_get_string(settings, FreeRDP_GatewayPassword))
{
char buffer[512 + 1] = { 0 };
char buffer[512 + 1] = WINPR_C_ARRAY_INIT;
if (!freerdp_passphrase_read(instance->context, "Gateway Password: ", buffer,
ARRAYSIZE(buffer) - 1, 1))

View File

@@ -1455,7 +1455,7 @@ WINPR_ATTR_FORMAT_ARG(3, 4)
static SSIZE_T freerdp_client_write_setting_to_buffer(char** buffer, size_t* bufferSize,
WINPR_FORMAT_ARG const char* fmt, ...)
{
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
SSIZE_T len = 0;
char* buf = NULL;
size_t bufSize = 0;
@@ -2456,7 +2456,7 @@ BOOL freerdp_client_populate_settings_from_rdp_file_unchecked(const rdpFile* fil
BOOL status = TRUE;
if (~file->EncodeRedirectedVideoCapture)
{
char encode[64] = { 0 };
char encode[64] = WINPR_C_ARRAY_INIT;
(void)_snprintf(encode, sizeof(encode), "encode:%" PRIu32,
file->EncodeRedirectedVideoCapture);
if (!freerdp_addin_argv_add_argument(args, encode))
@@ -2464,7 +2464,7 @@ BOOL freerdp_client_populate_settings_from_rdp_file_unchecked(const rdpFile* fil
}
if (~file->RedirectedVideoCaptureEncodingQuality)
{
char quality[64] = { 0 };
char quality[64] = WINPR_C_ARRAY_INIT;
(void)_snprintf(quality, sizeof(quality), "quality:%" PRIu32,
file->RedirectedVideoCaptureEncodingQuality);
if (!freerdp_addin_argv_add_argument(args, quality))

View File

@@ -59,7 +59,7 @@ static LPSTR tr_esc_str(LPCSTR arg, bool format, int* failed)
for (size_t x = 0; x < s; x++)
{
char data[2] = { 0 };
char data[2] = WINPR_C_ARRAY_INIT;
switch (arg[x])
{
case '-':

View File

@@ -34,7 +34,7 @@ BOOL freerdp_smartcard_list(const rdpSettings* settings)
for (size_t i = 0; i < count; i++)
{
const SmartcardCertInfo* info = certs[i];
char asciiStr[256] = { 0 };
char asciiStr[256] = WINPR_C_ARRAY_INIT;
WINPR_ASSERT(info);

View File

@@ -153,7 +153,7 @@ static BOOL sso_mib_get_access_token(rdpContext* context, AccessTokenType tokenT
const char* scope = NULL;
const char* req_cnf = NULL;
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
va_start(ap, count);
if (tokenType == ACCESS_TOKEN_TYPE_AAD)

View File

@@ -241,7 +241,7 @@ static char* append(const char* fmt, ...)
{
int rc = 0;
char* dst = NULL;
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
va_start(ap, fmt);
rc = vsnprintf(NULL, 0, fmt, ap);
@@ -305,7 +305,7 @@ static void* read_rdp_data(const char* name, size_t* plen)
fail:
if (!success)
{
char buffer[128] = { 0 };
char buffer[128] = WINPR_C_ARRAY_INIT;
WLog_ERR(__func__, "failed to read data from '%s': %s", name,
winpr_strerror(errno, buffer, sizeof(buffer)));
free(json);
@@ -500,7 +500,7 @@ static bool test_rdp_files(bool allowCreate)
if (!path)
goto fail;
WIN32_FIND_DATAW FindData = { 0 };
WIN32_FIND_DATAW FindData = WINPR_C_ARRAY_INIT;
hdl = FindFirstFileUTF8(path, &FindData);
if (hdl == INVALID_HANDLE_VALUE)
@@ -517,8 +517,8 @@ static bool test_rdp_files(bool allowCreate)
{
if ((FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0)
{
char cFileName[6 * MAX_PATH] = { 0 };
char rdp[6 * MAX_PATH] = { 0 };
char cFileName[6 * MAX_PATH] = WINPR_C_ARRAY_INIT;
char rdp[6 * MAX_PATH] = WINPR_C_ARRAY_INIT;
ConvertWCharToUtf8(FindData.cFileName, cFileName, sizeof(cFileName));
const size_t len = strnlen(cFileName, sizeof(cFileName));
if (len < 4)

View File

@@ -39,7 +39,7 @@ UINT ios_cliprdr_send_client_format_list(CliprdrClientContext *cliprdr)
UINT32 *pFormatIds;
const char *formatName;
CLIPRDR_FORMAT *formats;
CLIPRDR_FORMAT_LIST formatList = { 0 };
CLIPRDR_FORMAT_LIST formatList = WINPR_C_ARRAY_INIT;
if (!cliprdr)
return ERROR_INVALID_PARAMETER;
@@ -91,7 +91,7 @@ static UINT ios_cliprdr_send_client_format_data_request(CliprdrClientContext *cl
UINT32 formatId)
{
UINT rc = ERROR_INVALID_PARAMETER;
CLIPRDR_FORMAT_DATA_REQUEST formatDataRequest = { 0 };
CLIPRDR_FORMAT_DATA_REQUEST formatDataRequest = WINPR_C_ARRAY_INIT;
mfContext *afc;
if (!cliprdr)
@@ -325,7 +325,7 @@ ios_cliprdr_server_format_data_request(CliprdrClientContext *cliprdr,
BYTE *data;
UINT32 size;
UINT32 formatId;
CLIPRDR_FORMAT_DATA_RESPONSE response = { 0 };
CLIPRDR_FORMAT_DATA_RESPONSE response = WINPR_C_ARRAY_INIT;
mfContext *afc;
if (!cliprdr || !formatDataRequest || !cliprdr->ClientFormatDataResponse)

View File

@@ -203,7 +203,7 @@ static BOOL ios_Pointer_SetDefault(rdpContext *context)
static BOOL ios_register_pointer(rdpGraphics *graphics)
{
rdpPointer pointer = { 0 };
rdpPointer pointer = WINPR_C_ARRAY_INIT;
if (!graphics)
return FALSE;
@@ -279,7 +279,7 @@ int ios_run_freerdp(freerdp *instance)
{
DWORD status;
DWORD nCount = 0;
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = { 0 };
HANDLE handles[MAXIMUM_WAIT_OBJECTS] = WINPR_C_ARRAY_INIT;
pool = [[NSAutoreleasePool alloc] init];
nCount = freerdp_get_event_handles(instance->context, handles, ARRAYSIZE(handles));

View File

@@ -46,7 +46,7 @@ NSString *TSXSessionDidFailToConnectNotification = @"TSXSessionDidFailToConnect"
static BOOL addArgument(int *argc, char ***argv, const char *fmt, ...)
{
va_list ap = { 0 };
va_list ap = WINPR_C_ARRAY_INIT;
char *arg = NULL;
char **tmp = realloc(*argv, (*argc + 1) * sizeof(char *));