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; }
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; }
int freerdp_client_rdp_file_get_integer_option(rdpFile* file, const char* name) { rdpFileLine* line; line = freerdp_client_rdp_file_find_line_by_name(file, name); if (!line) return -1; if (!(line->flags & RDP_FILE_LINE_FLAG_TYPE_INTEGER)) return -1; return line->iValue; }
const char* freerdp_client_rdp_file_get_string_option(rdpFile* file, const char* name) { rdpFileLine* line; line = freerdp_client_rdp_file_find_line_by_name(file, name); if (!line) return NULL; if (!(line->flags & RDP_FILE_LINE_FLAG_TYPE_STRING)) return NULL; return line->sValue; }