#ifdef FEAT_MULTI_LANG
char_u lang[2];
#endif
+ expand_T xpc;
+ char_u *dirname;
char_u ext[5];
char_u fname[8];
int filecount;
eap->arg = skipwhite(eap->arg + 3);
}
- if (!mch_isdir(eap->arg))
+ ExpandInit(&xpc);
+ xpc.xp_context = EXPAND_DIRECTORIES;
+ dirname = ExpandOne(&xpc, eap->arg, NULL,
+ WILD_LIST_NOTFOUND|WILD_SILENT, WILD_EXPAND_FREE);
+ if (dirname == NULL || !mch_isdir(dirname))
{
EMSG2(_("E150: Not a directory: %s"), eap->arg);
return;
#ifdef FEAT_MULTI_LANG
/* Get a list of all files in the directory. */
- STRCPY(NameBuff, eap->arg);
+ STRCPY(NameBuff, dirname);
add_pathsep(NameBuff);
STRCAT(NameBuff, "*");
if (gen_expand_wildcards(1, &NameBuff, &filecount, &files,
|| filecount == 0)
{
EMSG2("E151: No match: %s", NameBuff);
+ vim_free(dirname);
return;
}
ext[1] = fname[5];
ext[2] = fname[6];
}
- helptags_one(eap->arg, ext, fname, add_help_tags);
+ helptags_one(dirname, ext, fname, add_help_tags);
}
ga_clear(&ga);
#else
/* No language support, just use "*.txt" and "tags". */
- helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags", add_help_tags);
+ helptags_one(dirname, (char_u *)".txt", (char_u *)"tags", add_help_tags);
#endif
+ vim_free(dirname);
}
static void