int freerdp_client_rdp_file_set_string_option(rdpFile* file, const char* name, const char* value) { int index; int length; char* text; rdpFileLine* line; line = freerdp_client_rdp_file_find_line_by_name(file, name); length = _scprintf("%s:s:%s", name, value); text = (char*) malloc(length + 1); sprintf_s(text, length + 1, "%s:s:%s", name, value ? value : ""); text[length] = '\0'; if (line) { free(line->sValue); line->sValue = _strdup(value); free(line->text); line->text = text; } else { index = freerdp_client_parse_rdp_file_add_line(file, text, -1); line = freerdp_client_rdp_file_find_line_index(file, index); freerdp_client_rdp_file_set_string(file, name, value, index); free(text); } return 0; }
static BOOL freerdp_client_parse_rdp_file_string_unicode(rdpFile* file, const WCHAR* name, const WCHAR* value, int index) { int length; char* nameA; char* valueA; BOOL ret = TRUE; length = (int) _wcslen(name); nameA = (char*) malloc(length + 1); if (!nameA) return FALSE; WideCharToMultiByte(CP_UTF8, 0, name, length, nameA, length, NULL, NULL); nameA[length] = '\0'; length = (int) _wcslen(value); valueA = (char*) malloc(length + 1); if (!valueA) { free(nameA); return FALSE; } WideCharToMultiByte(CP_UTF8, 0, value, length, valueA, length, NULL, NULL); valueA[length] = '\0'; if (freerdp_client_rdp_file_set_string(file, nameA, valueA, index) == -1) ret = FALSE; free(nameA); free(valueA); return ret; }
static BOOL freerdp_client_parse_rdp_file_string_ascii(rdpFile* file, char* name, char* value, int index) { BOOL ret = TRUE; char* valueA = _strdup(value); if (!valueA) return FALSE; if (freerdp_client_rdp_file_set_string(file, name, valueA, index) == -1) ret = FALSE; free(valueA); return ret; }
void freerdp_client_parse_rdp_file_string_unicode(rdpFile* file, WCHAR* name, WCHAR* value) { int length; char* nameA; char* valueA; length = _wcslen(name); nameA = (char*) malloc(length + 1); WideCharToMultiByte(CP_UTF8, 0, name, length, nameA, length, NULL, NULL); nameA[length] = '\0'; length = _wcslen(value); valueA = (char*) malloc(length + 1); WideCharToMultiByte(CP_UTF8, 0, value, length, valueA, length, NULL, NULL); valueA[length] = '\0'; if (!freerdp_client_rdp_file_set_string(file, nameA, valueA)) free(valueA); free(nameA); }
void freerdp_client_parse_rdp_file_string_ascii(rdpFile* file, char* name, char* value) { freerdp_client_rdp_file_set_string(file, name, value); }
void freerdp_client_parse_rdp_file_string_ascii(rdpFile* file, char* name, char* value, int index) { char* valueA = _strdup(value); freerdp_client_rdp_file_set_string(file, name, valueA, index); free(valueA); }