File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -77,6 +77,41 @@ guestfs_int_copy_string_list (char *const *argv)
77
77
return ret ;
78
78
}
79
79
80
+ char *
81
+ guestfs_int_join_strings (const char * sep , char * const * argv )
82
+ {
83
+ size_t i , len , seplen , rlen ;
84
+ char * r ;
85
+
86
+ seplen = strlen (sep );
87
+
88
+ len = 0 ;
89
+ for (i = 0 ; argv [i ] != NULL ; ++ i ) {
90
+ if (i > 0 )
91
+ len += seplen ;
92
+ len += strlen (argv [i ]);
93
+ }
94
+ len ++ ; /* for final \0 */
95
+
96
+ r = malloc (len );
97
+ if (r == NULL )
98
+ return NULL ;
99
+
100
+ rlen = 0 ;
101
+ for (i = 0 ; argv [i ] != NULL ; ++ i ) {
102
+ if (i > 0 ) {
103
+ memcpy (& r [rlen ], sep , seplen );
104
+ rlen += seplen ;
105
+ }
106
+ len = strlen (argv [i ]);
107
+ memcpy (& r [rlen ], argv [i ], len );
108
+ rlen += len ;
109
+ }
110
+ r [rlen ] = '\0' ;
111
+
112
+ return r ;
113
+ }
114
+
80
115
/**
81
116
* Split string at separator character C<sep>, returning the list of
82
117
* strings. Returns C<NULL> on memory allocation failure.
Original file line number Diff line number Diff line change 48
48
extern void guestfs_int_free_string_list (char * * );
49
49
extern size_t guestfs_int_count_strings (char * const * );
50
50
extern char * * guestfs_int_copy_string_list (char * const * );
51
+ extern char * guestfs_int_join_strings (const char * sep , char * const * );
51
52
extern char * * guestfs_int_split_string (char sep , const char * );
52
53
extern int guestfs_int_random_string (char * ret , size_t len );
53
54
extern char * guestfs_int_drive_name (size_t index , char * ret );
You can’t perform that action at this time.
0 commit comments