mirror of
https://github.com/weechat/weechat.git
synced 2026-06-29 06:16:40 +02:00
api: fix bug in string_match when mask begins and ends with "*"
The bug was string_match returning 0 (instead of 1) if mask begins and ends with
"*" and if string and mask have same length (except both "*") with same content:
string_match("abc", "*abc*", 0) == 0 // BUG: it should return 1
string_match("abcd", "*abc*", 0) == 1 // OK
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
WeeChat ChangeLog
|
||||
=================
|
||||
Sébastien Helleu <flashcode@flashtux.org>
|
||||
v0.4.1-dev, 2013-03-09
|
||||
v0.4.1-dev, 2013-03-11
|
||||
|
||||
|
||||
This document lists all changes for each version.
|
||||
@@ -29,6 +29,7 @@ Version 0.4.1 (under dev!)
|
||||
weechat.history.max_buffer_lines_minutes is set (bug #38197)
|
||||
* core: use default hash/comparison callback for keys of type
|
||||
integer/pointer/time in hashtable
|
||||
* api: fix bug in string_match when mask begins and ends with "*"
|
||||
* api: allow hashtable with keys that are not strings in function
|
||||
hashtable_add_to_infolist
|
||||
* api: fix function string_mask_to_regex: escape all special chars used in regex
|
||||
|
||||
@@ -412,7 +412,7 @@ string_match (const char *string, const char *mask, int case_sensitive)
|
||||
if ((mask[0] == '*') && (last == '*'))
|
||||
{
|
||||
/* not enough chars in string to match */
|
||||
if (len_string < len_mask - 1)
|
||||
if (len_string < len_mask - 2)
|
||||
return 0;
|
||||
/* keep only relevant chars in mask for searching string */
|
||||
mask2 = string_strndup (mask + 1, len_mask - 2);
|
||||
|
||||
Reference in New Issue
Block a user