int freerdp_client_rdp_file_set_integer_option(rdpFile* file, const char* name, int value) { int index; int length; char* text; rdpFileLine* line; line = freerdp_client_rdp_file_find_line_by_name(file, name); length = _scprintf("%s:i:%d", name, value); text = (char*) malloc(length + 1); sprintf_s(text, length + 1, "%s:i:%d", name, value); text[length] = '\0'; if (line) { line->iValue = 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_integer(file, (char*) name, value, index); free(text); } return 0; }
static BOOL freerdp_client_parse_rdp_file_integer_ascii(rdpFile* file, const char* name, const char* value, int index) { int ivalue = atoi(value); if (freerdp_client_rdp_file_set_integer(file, name, ivalue, index) < 0) return FALSE; return TRUE; }
void freerdp_client_parse_rdp_file_integer_unicode(rdpFile* file, WCHAR* name, WCHAR* value) { int length; int ivalue; 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'; ivalue = atoi(valueA); freerdp_client_rdp_file_set_integer(file, nameA, ivalue); free(nameA); free(valueA); }
static BOOL freerdp_client_parse_rdp_file_integer_unicode(rdpFile* file, const WCHAR* name, const WCHAR* value, int index) { int length; int ivalue; 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'; ivalue = atoi(valueA); if (freerdp_client_rdp_file_set_integer(file, nameA, ivalue, index) < 0) ret = FALSE; free(nameA); free(valueA); return ret; }
void freerdp_client_parse_rdp_file_integer_ascii(rdpFile* file, char* name, char* value) { int ivalue = atoi(value); freerdp_client_rdp_file_set_integer(file, name, ivalue); }