提交 4cabef0a 编写于 作者: S Stefano Sabatini

Make strmatch() return 1 only if the string compared against the

prefix does not contain other characters which may belong to an
identifier.

This allows to distinguish for example to have different constants
with the same prefix (e.g. "foo" and "foobar").

Originally committed as revision 25626 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 2b59fbe9
......@@ -41,7 +41,7 @@
#define LIBAVUTIL_VERSION_MAJOR 50
#define LIBAVUTIL_VERSION_MINOR 32
#define LIBAVUTIL_VERSION_MICRO 4
#define LIBAVUTIL_VERSION_MICRO 5
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \
......
......@@ -103,13 +103,16 @@ double av_strtod(const char *numstr, char **tail)
return d;
}
#define IS_IDENTIFIER_CHAR(c) ((c) - '0' <= 9U || (c) - 'a' <= 25U || (c) - 'A' <= 25U || (c) == '_')
static int strmatch(const char *s, const char *prefix)
{
int i;
for (i=0; prefix[i]; i++) {
if (prefix[i] != s[i]) return 0;
}
return 1;
/* return 1 only if the s identifier is terminated */
return !IS_IDENTIFIER_CHAR(s[i]);
}
struct AVExpr {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册