diff options
author | Sergey Udaltsov <svu@gnome.org> | 2003-12-19 09:37:58 +0000 |
---|---|---|
committer | Sergey Udaltsov <svu@gnome.org> | 2003-12-19 09:37:58 +0000 |
commit | 88f56c64b50bb4a9d6f02dcbfa8ec9f4e5e88914 (patch) | |
tree | 60e6798c9c2d03db215bc4526dcff70f0073ab59 | |
parent | f2a0c1b5e5c18ffd383d29ffd330f782616928bb (diff) | |
download | libxklavier-88f56c64b50bb4a9d6f02dcbfa8ec9f4e5e88914.tar.gz |
fixes for Solaris and other OSes which does not have strndup, thanks to George Sageev
-rw-r--r-- | libxklavier/xklavier_config.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/libxklavier/xklavier_config.c b/libxklavier/xklavier_config.c index c36a76e..1c33131 100644 --- a/libxklavier/xklavier_config.c +++ b/libxklavier/xklavier_config.c @@ -335,13 +335,24 @@ void _XklConfigRecSplitByComma( char ***array, while( ( npc = strchr( pc, ',' ) ) != NULL ) { int len = npc - pc; - *ppc = ( char * ) strndup( pc, len ); + //*ppc = ( char * ) strndup( pc, len ); + *ppc = ( char * ) malloc( len + 1 ); + if ( *ppc != NULL ) + { + strncpy( *ppc, pc, len ); + (*ppc)[len] = '\0'; + } + ppc++; pc = npc + 1; } - len = npc - pc; - *ppc = ( char * ) strndup( pc, len ); + //len = npc - pc; + len = strlen( pc ); + //*ppc = ( char * ) strndup( pc, len ); + *ppc = ( char * ) malloc( len + 1 ); + if ( *ppc != NULL ) + strcpy( *ppc, pc ); } } |