libfreerdp-utils: purge deprecated freerdp_UnicodeToAsciiAlloc util in favor of WinPR...
authorMarc-André Moreau <marcandre.moreau@gmail.com>
Mon, 17 Dec 2012 04:34:07 +0000 (23:34 -0500)
committerMarc-André Moreau <marcandre.moreau@gmail.com>
Mon, 17 Dec 2012 04:34:07 +0000 (23:34 -0500)
13 files changed:
channels/cliprdr/client/cliprdr_format.c
channels/drive/client/drive_file.c
channels/drive/client/drive_main.c
channels/parallel/client/parallel_main.c
channels/serial/client/serial_main.c
client/X11/xf_cliprdr.c
include/freerdp/utils/unicode.h
libfreerdp/core/gcc.c
libfreerdp/core/info.c
libfreerdp/core/timezone.c
libfreerdp/rail/window.c
libfreerdp/utils/string.c
libfreerdp/utils/unicode.c

index 161f18f..cc56db4 100644 (file)
@@ -145,7 +145,7 @@ void cliprdr_process_short_format_names(cliprdrPlugin* cliprdr, STREAM* s, UINT3
                }
                else
                {
-                       format_name->length = freerdp_UnicodeToAsciiAlloc((WCHAR*) s->p, &format_name->name, 32 / 2);
+                       format_name->length = ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) s->p, 32 / 2, &format_name->name, 0, NULL, NULL);
                }
 
                stream_seek(s, 32);
@@ -188,7 +188,8 @@ void cliprdr_process_long_format_names(cliprdrPlugin* cliprdr, STREAM* s, UINT32
                                break;
                }
                
-               format_name->length = freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &format_name->name, name_len / 2);
+               format_name->length = ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), name_len / 2, &format_name->name, 0, NULL, NULL);
+
                stream_seek(s, name_len + 2);
        }
 }
index 1d0bc59..753a1ec 100644 (file)
@@ -432,9 +432,9 @@ BOOL drive_file_query_information(DRIVE_FILE* file, UINT32 FsInformationClass, S
 BOOL drive_file_set_information(DRIVE_FILE* file, UINT32 FsInformationClass, UINT32 Length, STREAM* input)
 {
        char* s;
-
         mode_t m;
        UINT64 size;
+       int status;
        char* fullpath;
        struct STAT st;
        struct timeval tv[2];
@@ -502,7 +502,11 @@ BOOL drive_file_set_information(DRIVE_FILE* file, UINT32 FsInformationClass, UIN
                        stream_seek_BYTE(input); /* RootDirectory */
                        stream_read_UINT32(input, FileNameLength);
 
-                       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(input), &s, FileNameLength / 2);
+                       status = ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(input),
+                                       FileNameLength / 2, &s, 0, NULL, NULL);
+
+                       if (status < 1)
+                               s = (char*) calloc(1, 1);
 
                        fullpath = drive_file_combine_fullpath(file->basepath, s);
                        free(s);
index 12156b6..be69fe4 100644 (file)
@@ -119,6 +119,7 @@ static DRIVE_FILE* drive_get_file_by_id(DRIVE_DEVICE* disk, UINT32 id)
 static void drive_process_irp_create(DRIVE_DEVICE* disk, IRP* irp)
 {
        char* path;
+       int status;
        UINT32 FileId;
        DRIVE_FILE* file;
        BYTE Information;
@@ -133,7 +134,11 @@ static void drive_process_irp_create(DRIVE_DEVICE* disk, IRP* irp)
        stream_read_UINT32(irp->input, CreateOptions);
        stream_read_UINT32(irp->input, PathLength);
 
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(irp->input), &path, PathLength / 2);
+       status = ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(irp->input),
+                       PathLength / 2, &path, 0, NULL, NULL);
+
+       if (status < 1)
+               path = (char*) calloc(1, 1);
 
        FileId = irp->devman->id_sequence++;
 
@@ -468,6 +473,7 @@ static void drive_process_irp_query_volume_information(DRIVE_DEVICE* disk, IRP*
 static void drive_process_irp_query_directory(DRIVE_DEVICE* disk, IRP* irp)
 {
        char* path;
+       int status;
        DRIVE_FILE* file;
        BYTE InitialQuery;
        UINT32 PathLength;
@@ -478,7 +484,11 @@ static void drive_process_irp_query_directory(DRIVE_DEVICE* disk, IRP* irp)
        stream_read_UINT32(irp->input, PathLength);
        stream_seek(irp->input, 23); /* Padding */
 
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(irp->input), &path, PathLength / 2);
+       status = ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(irp->input),
+                       PathLength / 2, &path, 0, NULL, NULL);
+
+       if (status < 1)
+               path = (char*) calloc(1, 1);
 
        file = drive_get_file_by_id(disk, irp->FileId);
 
index 2af03e7..d40674f 100644 (file)
@@ -74,6 +74,7 @@ typedef struct _PARALLEL_DEVICE PARALLEL_DEVICE;
 static void parallel_process_irp_create(PARALLEL_DEVICE* parallel, IRP* irp)
 {
        char* path;
+       int status;
        UINT32 PathLength;
 
        stream_seek(irp->input, 28);
@@ -81,7 +82,11 @@ static void parallel_process_irp_create(PARALLEL_DEVICE* parallel, IRP* irp)
        /* SharedAccess(4) CreateDisposition(4), CreateOptions(4) */
        stream_read_UINT32(irp->input, PathLength);
 
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(irp->input), &path, PathLength / 2);
+       status = ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(irp->input),
+                       PathLength / 2, &path, 0, NULL, NULL);
+
+       if (status < 1)
+               path = (char*) calloc(1, 1);
 
        parallel->id = irp->devman->id_sequence++;
        parallel->file = open(parallel->path, O_RDWR);
index 98164f2..5ad87e0 100644 (file)
@@ -43,6 +43,8 @@
 #include "serial_tty.h"
 #include "serial_constants.h"
 
+#include <winpr/crt.h>
+
 #include <freerdp/freerdp.h>
 #include <freerdp/utils/stream.h>
 #include <freerdp/utils/thread.h>
@@ -79,6 +81,7 @@ static BOOL serial_check_fds(SERIAL_DEVICE* serial);
 static void serial_process_irp_create(SERIAL_DEVICE* serial, IRP* irp)
 {
        char* path;
+       int status;
        SERIAL_TTY* tty;
        UINT32 PathLength;
        UINT32 FileId;
@@ -87,7 +90,11 @@ static void serial_process_irp_create(SERIAL_DEVICE* serial, IRP* irp)
                                        /* SharedAccess(4) CreateDisposition(4), CreateOptions(4) */
        stream_read_UINT32(irp->input, PathLength);
 
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(irp->input), &path, PathLength / 2);
+       status = ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(irp->input),
+                       PathLength / 2, &path, 0, NULL, NULL);
+
+       if (status < 1)
+               path = (char*) calloc(1, 1);
 
        FileId = irp->devman->id_sequence++;
 
index 9d23042..e0f0e04 100644 (file)
@@ -593,7 +593,8 @@ static BYTE* xf_cliprdr_process_requested_html(BYTE* data, int* size)
 
                if ((BYTE) data[0] == 0xFF && (BYTE) data[1] == 0xFE)
                {
-                       freerdp_UnicodeToAsciiAlloc((WCHAR*) (data + 2), &inbuf, (*size - 2) / 2);
+                       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) (data + 2),
+                                       (*size - 2) / 2, &inbuf, 0, NULL, NULL);
                }
        }
 
@@ -891,7 +892,7 @@ static void xf_cliprdr_process_text(clipboardContext* cb, BYTE* data, int size)
 
 static void xf_cliprdr_process_unicodetext(clipboardContext* cb, BYTE* data, int size)
 {
-       cb->data_length = freerdp_UnicodeToAsciiAlloc((WCHAR*) data, (CHAR**) &(cb->data), size / 2);
+       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) data, size / 2, (CHAR**) &(cb->data), 0, NULL, NULL);
        crlf2lf(cb->data, &cb->data_length);
 }
 
index 93c6d4a..6310eaf 100644 (file)
@@ -27,6 +27,5 @@
 #include <freerdp/types.h>
 
 FREERDP_API int freerdp_AsciiToUnicodeAlloc(const CHAR* str, WCHAR** wstr, int length);
-FREERDP_API int freerdp_UnicodeToAsciiAlloc(const WCHAR* wstr, CHAR** str, int length);
 
 #endif /* FREERDP_UTILS_UNICODE_H */
index 49243d9..93a13be 100644 (file)
@@ -513,7 +513,7 @@ BOOL gcc_read_client_core_data(STREAM* s, rdpSettings* settings, UINT16 blockLen
        stream_read_UINT32(s, settings->ClientBuild); /* ClientBuild */
 
        /* clientName (32 bytes, null-terminated unicode, truncated to 15 characters) */
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &str, 32 / 2);
+       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), 32 / 2, &str, 0, NULL, NULL);
        stream_seek(s, 32);
        sprintf_s(settings->ClientHostname, 31, "%s", str);
        settings->ClientHostname[31] = 0;
@@ -569,7 +569,7 @@ BOOL gcc_read_client_core_data(STREAM* s, rdpSettings* settings, UINT16 blockLen
                if (blockLength < 64)
                        break;
 
-               freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &str, 64 / 2);
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), 64 / 2, &str, 0, NULL, NULL);
                stream_seek(s, 64);
                sprintf_s(settings->ClientProductId, 32, "%s", str);
                free(str);
index 5ed052b..f73bc67 100644 (file)
@@ -21,6 +21,8 @@
 #include "config.h"
 #endif
 
+#include <winpr/crt.h>
+
 #include <freerdp/utils/unicode.h>
 
 #include "timezone.h"
@@ -123,7 +125,7 @@ BOOL rdp_read_extended_info_packet(STREAM* s, rdpSettings* settings)
        if (stream_get_left(s) < cbClientAddress)
                return FALSE;
 
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &settings->ClientAddress, cbClientAddress / 2);
+       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), cbClientAddress / 2, &settings->ClientAddress, 0, NULL, NULL);
        stream_seek(s, cbClientAddress);
 
        stream_read_UINT16(s, cbClientDir); /* cbClientDir */
@@ -134,7 +136,7 @@ BOOL rdp_read_extended_info_packet(STREAM* s, rdpSettings* settings)
        if (settings->ClientDir)
                free(settings->ClientDir);
 
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &settings->ClientDir, cbClientDir / 2);
+       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), cbClientDir / 2, &settings->ClientDir, 0, NULL, NULL);
        stream_seek(s, cbClientDir);
 
        if (!rdp_read_client_time_zone(s, settings))
@@ -244,7 +246,7 @@ BOOL rdp_read_info_packet(STREAM* s, rdpSettings* settings)
 
        if (cbDomain > 0)
        {
-               freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &settings->Domain, cbDomain / 2);
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), cbDomain / 2, &settings->Domain, 0, NULL, NULL);
                stream_seek(s, cbDomain);
        }
        stream_seek(s, 2);
@@ -254,7 +256,7 @@ BOOL rdp_read_info_packet(STREAM* s, rdpSettings* settings)
 
        if (cbUserName > 0)
        {
-               freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &settings->Username, cbUserName / 2);
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), cbUserName / 2, &settings->Username, 0, NULL, NULL);
                stream_seek(s, cbUserName);
        }
        stream_seek(s, 2);
@@ -264,7 +266,7 @@ BOOL rdp_read_info_packet(STREAM* s, rdpSettings* settings)
 
        if (cbPassword > 0)
        {
-               freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &settings->Password, cbPassword / 2);
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), cbPassword / 2, &settings->Password, 0, NULL, NULL);
                stream_seek(s, cbPassword);
        }
        stream_seek(s, 2);
@@ -274,7 +276,7 @@ BOOL rdp_read_info_packet(STREAM* s, rdpSettings* settings)
 
        if (cbAlternateShell > 0)
        {
-               freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &settings->AlternateShell, cbAlternateShell / 2);
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), cbAlternateShell / 2, &settings->AlternateShell, 0, NULL, NULL);
                stream_seek(s, cbAlternateShell);
        }
        stream_seek(s, 2);
@@ -284,7 +286,7 @@ BOOL rdp_read_info_packet(STREAM* s, rdpSettings* settings)
 
        if (cbWorkingDir > 0)
        {
-               freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &settings->ShellWorkingDirectory, cbWorkingDir / 2);
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), cbWorkingDir / 2, &settings->ShellWorkingDirectory, 0, NULL, NULL);
                stream_seek(s, cbWorkingDir);
        }
        stream_seek(s, 2);
index ada7805..03d9df6 100644 (file)
@@ -21,6 +21,8 @@
 #include "config.h"
 #endif
 
+#include <winpr/crt.h>
+
 #include <freerdp/utils/unicode.h>
 
 #include "timezone.h"
@@ -87,7 +89,7 @@ BOOL rdp_read_client_time_zone(STREAM* s, rdpSettings* settings)
        stream_read_UINT32(s, clientTimeZone->bias); /* Bias */
 
        /* standardName (64 bytes) */
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &str, 64 / 2);
+       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), 64 / 2, &str, 0, NULL, NULL);
        stream_seek(s, 64);
        strncpy(clientTimeZone->standardName, str, sizeof(clientTimeZone->standardName));
        free(str);
@@ -96,7 +98,7 @@ BOOL rdp_read_client_time_zone(STREAM* s, rdpSettings* settings)
        stream_read_UINT32(s, clientTimeZone->standardBias); /* StandardBias */
 
        /* daylightName (64 bytes) */
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) stream_get_tail(s), &str, 64 / 2);
+       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), 64 / 2, &str, 0, NULL, NULL);
        stream_seek(s, 64);
        strncpy(clientTimeZone->daylightName, str, sizeof(clientTimeZone->daylightName));
        free(str);
index 7d65343..bb552c7 100644 (file)
@@ -285,7 +285,8 @@ void rail_CreateWindow(rdpRail* rail, rdpWindow* window)
 {
        if (window->titleInfo.length > 0)
        {
-               freerdp_UnicodeToAsciiAlloc((WCHAR*) window->titleInfo.string, &window->title, window->titleInfo.length / 2);
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) window->titleInfo.string, window->titleInfo.length / 2,
+                               &window->title, 0, NULL, NULL);
        }
        else
        {
@@ -327,7 +328,8 @@ void rail_UpdateWindow(rdpRail* rail, rdpWindow* window)
                if (window->title != NULL)
                        free(window->title);
 
-               freerdp_UnicodeToAsciiAlloc((WCHAR*) window->titleInfo.string, &window->title, window->titleInfo.length / 2);
+               ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) window->titleInfo.string, window->titleInfo.length / 2,
+                               &window->title, 0, NULL, NULL);
 
                IFCALL(rail->rail_SetWindowText, rail, window);
        }
index 92f900f..022fa0f 100644 (file)
@@ -25,7 +25,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <freerdp/utils/unicode.h>
+#include <winpr/crt.h>
 
 #include <freerdp/utils/string.h>
 
@@ -34,7 +34,8 @@ void freerdp_string_read_length32(STREAM* s, rdpString* string)
        stream_read_UINT32(s, string->length);
        string->unicode = (char*) malloc(string->length);
        stream_read(s, string->unicode, string->length);
-       freerdp_UnicodeToAsciiAlloc((WCHAR*) string->unicode, &string->ascii, string->length / 2);
+
+       ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) string->unicode, string->length / 2, &string->ascii, 0, NULL, NULL);
 }
 
 void freerdp_string_free(rdpString* string)
index 77bc7e5..ecae1a9 100644 (file)
@@ -46,19 +46,3 @@ int freerdp_AsciiToUnicodeAlloc(const CHAR* str, WCHAR** wstr, int length)
 
        return status;
 }
-
-int freerdp_UnicodeToAsciiAlloc(const WCHAR* wstr, CHAR** str, int length)
-{
-       int status;
-
-       if (length < 1)
-       {
-               *str = malloc(1);
-               (*str)[0] = '\0';
-               return 0;
-       }
-
-       status = ConvertFromUnicode(CP_UTF8, 0, wstr, -1, str, 0, NULL, NULL);
-
-       return status;
-}