summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Udaltsov <svu@gnome.org>2003-12-19 09:37:58 +0000
committerSergey Udaltsov <svu@gnome.org>2003-12-19 09:37:58 +0000
commit88f56c64b50bb4a9d6f02dcbfa8ec9f4e5e88914 (patch)
tree60e6798c9c2d03db215bc4526dcff70f0073ab59
parentf2a0c1b5e5c18ffd383d29ffd330f782616928bb (diff)
downloadlibxklavier-88f56c64b50bb4a9d6f02dcbfa8ec9f4e5e88914.tar.gz
fixes for Solaris and other OSes which does not have strndup, thanks to George Sageev
-rw-r--r--libxklavier/xklavier_config.c17
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 );
}
}