@@ -775,94 +775,6 @@ BOOL freerdp_client_add_dynamic_channel(rdpSettings* settings, size_t count, cha
775775return FALSE;
776776}
777777
778- static char * * freerdp_command_line_parse_comma_separated_values_ex (const char * name ,
779- const char * list , size_t * count )
780- {
781- char * * p ;
782- char * str ;
783- size_t nArgs ;
784- size_t index ;
785- size_t nCommas ;
786- size_t prefix , len ;
787- nCommas = 0 ;
788- assert (NULL != count );
789- * count = 0 ;
790-
791- if (!list )
792- {
793- if (name )
794- {
795- size_t len = strlen (name );
796- p = (char * * )calloc (2UL + len , sizeof (char * ));
797-
798- if (p )
799- {
800- char * dst = (char * )& p [1 ];
801- p [0 ] = dst ;
802- sprintf_s (dst , len + 1 , "%s" , name );
803- * count = 1 ;
804- return p ;
805- }
806- }
807-
808- return NULL ;
809- }
810-
811- {
812- const char * it = list ;
813-
814- while ((it = strchr (it , ',' )) != NULL )
815- {
816- it ++ ;
817- nCommas ++ ;
818- }
819- }
820-
821- nArgs = nCommas + 1 ;
822-
823- if (name )
824- nArgs ++ ;
825-
826- prefix = (nArgs + 1UL ) * sizeof (char * );
827- len = strlen (list );
828- p = (char * * )calloc (len + prefix + 1 , sizeof (char * ));
829-
830- if (!p )
831- return NULL ;
832-
833- str = & ((char * )p )[prefix ];
834- memcpy (str , list , len );
835-
836- if (name )
837- p [0 ] = (char * )name ;
838-
839- for (index = name ? 1 : 0 ; index < nArgs ; index ++ )
840- {
841- char * comma = strchr (str , ',' );
842- p [index ] = str ;
843-
844- if (comma )
845- {
846- str = comma + 1 ;
847- * comma = '\0' ;
848- }
849- }
850-
851- * count = nArgs ;
852- return p ;
853- }
854-
855- static char * * freerdp_command_line_parse_comma_separated_values (char * list , size_t * count )
856- {
857- return freerdp_command_line_parse_comma_separated_values_ex (NULL , list , count );
858- }
859-
860- static char * * freerdp_command_line_parse_comma_separated_values_offset (const char * name , char * list ,
861- size_t * count )
862- {
863- return freerdp_command_line_parse_comma_separated_values_ex (name , list , count );
864- }
865-
866778static int freerdp_client_command_line_post_filter (void * context , COMMAND_LINE_ARGUMENT_A * arg )
867779{
868780rdpSettings * settings = (rdpSettings * )context ;
@@ -872,7 +784,7 @@ static int freerdp_client_command_line_post_filter(void* context, COMMAND_LINE_A
872784{
873785char * * p ;
874786size_t count ;
875- p = freerdp_command_line_parse_comma_separated_values (arg -> Value , & count );
787+ p = CommandLineParseCommaSeparatedValues (arg -> Value , & count );
876788
877789if ((status = freerdp_client_add_device_channel (settings , count , p )))
878790{
@@ -885,64 +797,63 @@ static int freerdp_client_command_line_post_filter(void* context, COMMAND_LINE_A
885797{
886798char * * p ;
887799size_t count ;
888- p = freerdp_command_line_parse_comma_separated_values (arg -> Value , & count );
800+ p = CommandLineParseCommaSeparatedValues (arg -> Value , & count );
889801status = freerdp_client_add_static_channel (settings , count , p );
890802free (p );
891803}
892804CommandLineSwitchCase (arg , "dvc" )
893805{
894806char * * p ;
895807size_t count ;
896- p = freerdp_command_line_parse_comma_separated_values (arg -> Value , & count );
808+ p = CommandLineParseCommaSeparatedValues (arg -> Value , & count );
897809status = freerdp_client_add_dynamic_channel (settings , count , p );
898810free (p );
899811}
900812CommandLineSwitchCase (arg , "drive" )
901813{
902814char * * p ;
903815size_t count ;
904- p = freerdp_command_line_parse_comma_separated_values_offset (arg -> Name , arg -> Value , & count );
816+ p = CommandLineParseCommaSeparatedValuesEx (arg -> Name , arg -> Value , & count );
905817status = freerdp_client_add_device_channel (settings , count , p );
906818free (p );
907819}
908820CommandLineSwitchCase (arg , "serial" )
909821{
910822char * * p ;
911823size_t count ;
912- p = freerdp_command_line_parse_comma_separated_values_offset (arg -> Name , arg -> Value , & count );
824+ p = CommandLineParseCommaSeparatedValuesEx (arg -> Name , arg -> Value , & count );
913825status = freerdp_client_add_device_channel (settings , count , p );
914826free (p );
915827}
916828CommandLineSwitchCase (arg , "parallel" )
917829{
918830char * * p ;
919831size_t count ;
920- p = freerdp_command_line_parse_comma_separated_values_offset (arg -> Name , arg -> Value , & count );
832+ p = CommandLineParseCommaSeparatedValuesEx (arg -> Name , arg -> Value , & count );
921833status = freerdp_client_add_device_channel (settings , count , p );
922834free (p );
923835}
924836CommandLineSwitchCase (arg , "smartcard" )
925837{
926838char * * p ;
927839size_t count ;
928- p = freerdp_command_line_parse_comma_separated_values_offset (arg -> Name , arg -> Value , & count );
840+ p = CommandLineParseCommaSeparatedValuesEx (arg -> Name , arg -> Value , & count );
929841status = freerdp_client_add_device_channel (settings , count , p );
930842free (p );
931843}
932844CommandLineSwitchCase (arg , "printer" )
933845{
934846char * * p ;
935847size_t count ;
936- p = freerdp_command_line_parse_comma_separated_values_offset (arg -> Name , arg -> Value , & count );
848+ p = CommandLineParseCommaSeparatedValuesEx (arg -> Name , arg -> Value , & count );
937849status = freerdp_client_add_device_channel (settings , count , p );
938850free (p );
939851}
940852CommandLineSwitchCase (arg , "usb" )
941853{
942854char * * p ;
943855size_t count ;
944- p = freerdp_command_line_parse_comma_separated_values_offset (URBDRC_CHANNEL_NAME ,
945- arg -> Value , & count );
856+ p = CommandLineParseCommaSeparatedValuesEx (URBDRC_CHANNEL_NAME , arg -> Value , & count );
946857status = freerdp_client_add_dynamic_channel (settings , count , p );
947858free (p );
948859}
@@ -979,23 +890,23 @@ static int freerdp_client_command_line_post_filter(void* context, COMMAND_LINE_A
979890{
980891char * * p ;
981892size_t count ;
982- p = freerdp_command_line_parse_comma_separated_values_offset ("rdpsnd" , arg -> Value , & count );
893+ p = CommandLineParseCommaSeparatedValuesEx ("rdpsnd" , arg -> Value , & count );
983894status = freerdp_client_add_static_channel (settings , count , p );
984895free (p );
985896}
986897CommandLineSwitchCase (arg , "microphone" )
987898{
988899char * * p ;
989900size_t count ;
990- p = freerdp_command_line_parse_comma_separated_values_offset ("audin" , arg -> Value , & count );
901+ p = CommandLineParseCommaSeparatedValuesEx ("audin" , arg -> Value , & count );
991902status = freerdp_client_add_dynamic_channel (settings , count , p );
992903free (p );
993904}
994905CommandLineSwitchCase (arg , "multimedia" )
995906{
996907char * * p ;
997908size_t count ;
998- p = freerdp_command_line_parse_comma_separated_values_offset ("tsmf" , arg -> Value , & count );
909+ p = CommandLineParseCommaSeparatedValuesEx ("tsmf" , arg -> Value , & count );
999910status = freerdp_client_add_dynamic_channel (settings , count , p );
1000911free (p );
1001912}
@@ -1867,7 +1778,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
18671778UINT32 i ;
18681779char * * p ;
18691780size_t count = 0 ;
1870- p = freerdp_command_line_parse_comma_separated_values (arg -> Value , & count );
1781+ p = CommandLineParseCommaSeparatedValues (arg -> Value , & count );
18711782
18721783if (!p )
18731784return COMMAND_LINE_ERROR_MEMORY ;
@@ -2455,7 +2366,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
24552366char * * p ;
24562367size_t count , x ;
24572368
2458- p = freerdp_command_line_parse_comma_separated_values (arg -> Value , & count );
2369+ p = CommandLineParseCommaSeparatedValues (arg -> Value , & count );
24592370if (!p || (count == 0 ))
24602371rc = COMMAND_LINE_ERROR ;
24612372for (x = 0 ; x < count ; x ++ )
@@ -2533,7 +2444,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
25332444char * * p ;
25342445size_t count , x ;
25352446
2536- p = freerdp_command_line_parse_comma_separated_values (arg -> Value , & count );
2447+ p = CommandLineParseCommaSeparatedValues (arg -> Value , & count );
25372448if (!p || (count == 0 ))
25382449rc = COMMAND_LINE_ERROR ;
25392450for (x = 0 ; x < count ; x ++ )
@@ -2670,7 +2581,7 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
26702581UINT32 i ;
26712582char * * p ;
26722583size_t count = 0 ;
2673- p = freerdp_command_line_parse_comma_separated_values (arg -> Value , & count );
2584+ p = CommandLineParseCommaSeparatedValues (arg -> Value , & count );
26742585
26752586for (i = 0 ; i < count ; i ++ )
26762587{
0 commit comments