From 487ee39b747f3977e283178a9695958fb799fe76 Mon Sep 17 00:00:00 2001 From: Angel Ortega Date: Fri, 27 Mar 2009 08:39:11 +0100 Subject: [PATCH] Delete repeated directory delimiters in mpdm_glob(). --- mpdm_f.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mpdm_f.c b/mpdm_f.c index 8b69cec..be625a6 100644 --- a/mpdm_f.c +++ b/mpdm_f.c @@ -1355,18 +1355,14 @@ mpdm_t mpdm_glob(const mpdm_t spec, const mpdm_t base) mpdm_t sp = NULL; if (mpdm_size(base)) - sp = mpdm_strcat(base, MPDM_LS(L"\\")); + sp = mpdm_strcat(base, MPDM_LS(L"/")); sp = mpdm_strcat(sp, mpdm_size(spec) == 0 ? MPDM_LS(L"*.*") : spec); - sp = MPDM_2MBS(sp->data); - ptr = (char *) sp->data; + /* delete repeated directory delimiters */ + sp = mpdm_sregex(MPDM_LS(L"@[\\/]+@g"), sp, MPDM_LS(L"/"), 0); - /* convert MSDOS dir separators into Unix ones */ - for (; *ptr != '\0'; ptr++) { - if (*ptr == '\\') - *ptr = '/'; - } + sp = MPDM_2MBS(sp->data); v = MPDM_A(0); d = MPDM_A(0); @@ -1413,6 +1409,10 @@ mpdm_t mpdm_glob(const mpdm_t spec, const mpdm_t base) v = mpdm_strcat(base, MPDM_LS(L"/")); v = mpdm_strcat(v, mpdm_size(spec) == 0 ? MPDM_LS(L"*") : spec); + + /* delete repeated directory delimiters */ + v = mpdm_sregex(MPDM_LS(L"@/{2,}@g"), v, MPDM_LS(L"/"), 0); + v = MPDM_2MBS(v->data); ptr = v->data; -- 2.11.4.GIT