mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-13 00:57:33 -05:00
Remove the old in_commasep_string system.
It's just silly to have _two_ systems for traversing a string of comma-separated protocol ids. I think the new get_commasep_word technique for looping over the elements of a string is simpler and more general than the old membership-testing approach, and also it's necessary for the modern KEX untangling system (which has to be able to loop over one string, even if it used a membership test to check things in the other). So this commit rewrites the two remaining uses of in_commasep_string to use get_commasep_word instead, and deletes the former.
This commit is contained in:
39
sshcommon.c
39
sshcommon.c
@ -687,45 +687,6 @@ unsigned alloc_channel_id_general(tree234 *channels, size_t localid_offset)
|
||||
* lists of protocol identifiers in SSH-2.
|
||||
*/
|
||||
|
||||
bool first_in_commasep_string(char const *needle, char const *haystack,
|
||||
int haylen)
|
||||
{
|
||||
int needlen;
|
||||
if (!needle || !haystack) /* protect against null pointers */
|
||||
return false;
|
||||
needlen = strlen(needle);
|
||||
|
||||
if (haylen >= needlen && /* haystack is long enough */
|
||||
!memcmp(needle, haystack, needlen) && /* initial match */
|
||||
(haylen == needlen || haystack[needlen] == ',')
|
||||
/* either , or EOS follows */
|
||||
)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool in_commasep_string(char const *needle, char const *haystack, int haylen)
|
||||
{
|
||||
char *p;
|
||||
|
||||
if (!needle || !haystack) /* protect against null pointers */
|
||||
return false;
|
||||
/*
|
||||
* Is it at the start of the string?
|
||||
*/
|
||||
if (first_in_commasep_string(needle, haystack, haylen))
|
||||
return true;
|
||||
/*
|
||||
* If not, search for the next comma and resume after that.
|
||||
* If no comma found, terminate.
|
||||
*/
|
||||
p = memchr(haystack, ',', haylen);
|
||||
if (!p)
|
||||
return false;
|
||||
/* + 1 to skip over comma */
|
||||
return in_commasep_string(needle, p + 1, haylen - (p + 1 - haystack));
|
||||
}
|
||||
|
||||
void add_to_commasep(strbuf *buf, const char *data)
|
||||
{
|
||||
if (buf->len > 0)
|
||||
|
Reference in New Issue
Block a user