From 46e26fe337a12800faa9ef010eebb49266a014f7 Mon Sep 17 00:00:00 2001 From: Pascal Obry Date: Fri, 17 Apr 2009 12:33:07 +0000 Subject: initialize.c: Do not get Unicode command line if Unicode support not activated. 2009-04-17 Pascal Obry * initialize.c: Do not get Unicode command line if Unicode support not activated. Add support for wildcard expansion for Unicode parameters on Win32. * mingw32.h: Add missing macros when Unicode support not activated. From-SVN: r146258 --- gcc/ada/initialize.c | 104 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 93 insertions(+), 11 deletions(-) (limited to 'gcc/ada/initialize.c') diff --git a/gcc/ada/initialize.c b/gcc/ada/initialize.c index b7b905b..67e2acd 100644 --- a/gcc/ada/initialize.c +++ b/gcc/ada/initialize.c @@ -72,6 +72,52 @@ extern char **gnat_argv; extern void __gnat_plist_init (void); #endif +#ifdef GNAT_UNICODE_SUPPORT + +#define EXPAND_ARGV_RATE 128 + +static void +append_arg (int *index, LPWSTR value, char ***argv, int *last) +{ + int size; + + if (*last < *index) + { + char **old_argv = *argv; + int old_last = *last; + int k; + + *last += EXPAND_ARGV_RATE; + *argv = (char **) xmalloc ((*last) * sizeof (char *)); + + for (k=0; k<=old_last; k++) + (*argv)[k] = old_argv[k]; + + free (old_argv); + } + + size = WS2SC (NULL, value, 0); + (*argv)[*index] = (char *) xmalloc (size + 1); + WS2SC ((*argv)[*index], value, size); + + (*index)++; +} + +static void +adjust_arg (int last, char ***argv) +{ + char **old_argv = *argv; + int k; + + *argv = (char **) xmalloc (last * sizeof (char *)); + + for (k=0; k