make_re() now doesn't free the argument.
This is good practice and also helped simplifying re_*() functions.
This commit is contained in:
parent
a72d40284d
commit
a25363f5c3
@ -425,14 +425,14 @@ regex_match (const GRegex *re, const char *word, int *start, int *end)
|
|||||||
#define PORT "(:[1-9][0-9]{0,4})"
|
#define PORT "(:[1-9][0-9]{0,4})"
|
||||||
#define OPT_PORT "(" PORT ")?"
|
#define OPT_PORT "(" PORT ")?"
|
||||||
|
|
||||||
GRegex *
|
static GRegex *
|
||||||
make_re (char *grist)
|
make_re (char *grist)
|
||||||
{
|
{
|
||||||
GRegex *ret;
|
GRegex *ret;
|
||||||
GError *err = NULL;
|
GError *err = NULL;
|
||||||
|
|
||||||
ret = g_regex_new (grist, G_REGEX_CASELESS | G_REGEX_OPTIMIZE, 0, &err);
|
ret = g_regex_new (grist, G_REGEX_CASELESS | G_REGEX_OPTIMIZE, 0, &err);
|
||||||
g_free (grist);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -442,16 +442,11 @@ static const GRegex *
|
|||||||
re_host (void)
|
re_host (void)
|
||||||
{
|
{
|
||||||
static GRegex *host_ret;
|
static GRegex *host_ret;
|
||||||
char *grist;
|
|
||||||
|
|
||||||
if (host_ret) return host_ret;
|
if (host_ret) return host_ret;
|
||||||
|
|
||||||
grist = g_strdup (
|
host_ret = make_re ("(" "(" HOST_URL PORT ")|(" HOST ")" ")");
|
||||||
"("
|
|
||||||
"(" HOST_URL PORT ")|(" HOST ")"
|
|
||||||
")"
|
|
||||||
);
|
|
||||||
host_ret = make_re (grist);
|
|
||||||
return host_ret;
|
return host_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,17 +454,10 @@ static const GRegex *
|
|||||||
re_host6 (void)
|
re_host6 (void)
|
||||||
{
|
{
|
||||||
static GRegex *host6_ret;
|
static GRegex *host6_ret;
|
||||||
char *grist;
|
|
||||||
|
|
||||||
if (host6_ret) return host6_ret;
|
if (host6_ret) return host6_ret;
|
||||||
|
|
||||||
grist = g_strdup (
|
host6_ret = make_re ("(" "(" IPV6ADDR ")|(" "\\[" IPV6ADDR "\\]" PORT ")" ")");
|
||||||
"("
|
|
||||||
"(" IPV6ADDR ")|(" "\\[" IPV6ADDR "\\]" PORT ")"
|
|
||||||
")"
|
|
||||||
);
|
|
||||||
|
|
||||||
host6_ret = make_re (grist);
|
|
||||||
|
|
||||||
return host6_ret;
|
return host6_ret;
|
||||||
}
|
}
|
||||||
@ -601,6 +589,7 @@ re_url (void)
|
|||||||
grist = g_string_free (grist_gstr, FALSE);
|
grist = g_string_free (grist_gstr, FALSE);
|
||||||
|
|
||||||
url_ret = make_re (grist);
|
url_ret = make_re (grist);
|
||||||
|
g_free (grist);
|
||||||
|
|
||||||
return url_ret;
|
return url_ret;
|
||||||
}
|
}
|
||||||
@ -612,16 +601,11 @@ static const GRegex *
|
|||||||
re_email (void)
|
re_email (void)
|
||||||
{
|
{
|
||||||
static GRegex *email_ret;
|
static GRegex *email_ret;
|
||||||
char *grist;
|
|
||||||
|
|
||||||
if (email_ret) return email_ret;
|
if (email_ret) return email_ret;
|
||||||
|
|
||||||
grist = g_strdup (
|
email_ret = make_re ("(" EMAIL ")");
|
||||||
"("
|
|
||||||
EMAIL
|
|
||||||
")"
|
|
||||||
);
|
|
||||||
email_ret = make_re (grist);
|
|
||||||
return email_ret;
|
return email_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -648,16 +632,11 @@ static const GRegex *
|
|||||||
re_nick (void)
|
re_nick (void)
|
||||||
{
|
{
|
||||||
static GRegex *nick_ret;
|
static GRegex *nick_ret;
|
||||||
char *grist;
|
|
||||||
|
|
||||||
if (nick_ret) return nick_ret;
|
if (nick_ret) return nick_ret;
|
||||||
|
|
||||||
grist = g_strdup (
|
nick_ret = make_re ("(" NICK ")");
|
||||||
"("
|
|
||||||
NICK
|
|
||||||
")"
|
|
||||||
);
|
|
||||||
nick_ret = make_re (grist);
|
|
||||||
return nick_ret;
|
return nick_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -668,16 +647,11 @@ static const GRegex *
|
|||||||
re_channel (void)
|
re_channel (void)
|
||||||
{
|
{
|
||||||
static GRegex *channel_ret;
|
static GRegex *channel_ret;
|
||||||
char *grist;
|
|
||||||
|
|
||||||
if (channel_ret) return channel_ret;
|
if (channel_ret) return channel_ret;
|
||||||
|
|
||||||
grist = g_strdup (
|
channel_ret = make_re ("(" CHANNEL ")");
|
||||||
"("
|
|
||||||
CHANNEL
|
|
||||||
")"
|
|
||||||
);
|
|
||||||
channel_ret = make_re (grist);
|
|
||||||
return channel_ret;
|
return channel_ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -694,15 +668,10 @@ static const GRegex *
|
|||||||
re_path (void)
|
re_path (void)
|
||||||
{
|
{
|
||||||
static GRegex *path_ret;
|
static GRegex *path_ret;
|
||||||
char *grist;
|
|
||||||
|
|
||||||
if (path_ret) return path_ret;
|
if (path_ret) return path_ret;
|
||||||
|
|
||||||
grist = g_strdup (
|
path_ret = make_re ("(" FS_PATH ")");
|
||||||
"("
|
|
||||||
FS_PATH
|
|
||||||
")"
|
|
||||||
);
|
|
||||||
path_ret = make_re (grist);
|
|
||||||
return path_ret;
|
return path_ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user