From f2a53cbfdd2a9cadf320960d28e1b10c63dffa62 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Mon, 20 Apr 2020 17:56:25 +0200 Subject: [PATCH] Compile the regex just one time --- src/mkv/write.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mkv/write.c b/src/mkv/write.c index b712d838..08d2764f 100644 --- a/src/mkv/write.c +++ b/src/mkv/write.c @@ -141,7 +141,8 @@ error: static bool metadata_from_path(char *const mkvfile, struct kara_metadata *meta) { - regex_t regex; + static regex_t regex; + static int regex_init = 0; const size_t nmatch = 10; regmatch_t pmatch[nmatch]; int reti, sta = false; @@ -152,7 +153,9 @@ metadata_from_path(char *const mkvfile, struct kara_metadata *meta) "(jp|fr|en|ru|sp|it|ch|latin|multi|undefined)/(.+)/" "(.+) - (OP|ED|IS|AMV|VOCA|PV|MV|LIVE)([[:digit:]]*) - (.+)\\.mkv$"; - GOTO_IF(regcomp(®ex, rgx, REG_EXTENDED), "Failed to compile regex", error); + if (!regex_init) + GOTO_IF(regcomp(®ex, rgx, REG_EXTENDED), "Failed to compile regex", error); + memset(meta, 0, sizeof(struct kara_metadata)); memset(msgbuf, 0, LEKTOR_TAG_MAX * sizeof(char)); -- GitLab