예제 #1
0
파일: file.c 프로젝트: CTCAdmin/FreeRDP
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;
}
예제 #2
0
파일: file.c 프로젝트: floppym/FreeRDP
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;
}
예제 #3
0
파일: file.c 프로젝트: floppym/FreeRDP
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;
}
예제 #4
0
파일: file.c 프로젝트: C-o-r-E/FreeRDP
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);
}
예제 #5
0
파일: file.c 프로젝트: C-o-r-E/FreeRDP
void freerdp_client_parse_rdp_file_string_ascii(rdpFile* file, char* name, char* value)
{
    freerdp_client_rdp_file_set_string(file, name, value);
}
예제 #6
0
파일: file.c 프로젝트: CTCAdmin/FreeRDP
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);
}