aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2006-05-13 01:44:47 +1000
committerGravatar axel <axel@liljencrantz.se>2006-05-13 01:44:47 +1000
commit3d192a8e93d999faa13b121960bdd3dbec3a5553 (patch)
treed7c46cc56719e37cd69d32a2a136b2b3af4b231f
parentf5c6306bde9c9e90cd79a02c0dcb0561515314ef (diff)
Remoce C99:ism (Non-constant expression as array size)
darcs-hash:20060512154447-ac50b-5731603e1bf75f91703bf79cc06f6bbdb94e6a61.gz
-rw-r--r--wutil.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/wutil.c b/wutil.c
index 1cad75c9..b18d3ccd 100644
--- a/wutil.c
+++ b/wutil.c
@@ -137,16 +137,28 @@ struct wdirent *wreaddir(DIR *dir )
wchar_t *wgetcwd( wchar_t *buff, size_t sz )
{
- char buffc[sz*MAX_UTF8_BYTES];
- char *res = getcwd( buffc, sz*MAX_UTF8_BYTES );
- if( !res )
+ char *buffc = malloc( sz*MAX_UTF8_BYTES);
+ char *res;
+ wchar_t *ret = 0;
+
+ if( !buffc )
+ {
+ errno = ENOMEM;
return 0;
+ }
- if( (size_t)-1 == mbstowcs( buff, buffc, sizeof( wchar_t ) * sz ) )
+ res = getcwd( buffc, sz*MAX_UTF8_BYTES );
+ if( res )
{
- return 0;
- }
- return buff;
+ if( (size_t)-1 != mbstowcs( buff, buffc, sizeof( wchar_t ) * sz ) )
+ {
+ ret = buff;
+ }
+ }
+
+ free( buffc );
+
+ return ret;
}
int wchdir( const wchar_t * dir )