-*various.txt* For Vim version 7.1. Last change: 2007 Jan 14
+*various.txt* For Vim version 7.1. Last change: 2008 Jan 11
VIM REFERENCE MANUAL by Bram Moolenaar
*:helpt* *:helptags*
*E154* *E150* *E151* *E152* *E153* *E670*
-:helpt[ags] {dir} Generate the help tags file(s) for directory {dir}.
+:helpt[ags] [++t] {dir}
+ Generate the help tags file(s) for directory {dir}.
All "*.txt" and "*.??x" files in the directory are
scanned for a help tag definition in between stars.
The "*.??x" files are for translated docs, they
The generated tags files are sorted.
When there are duplicates an error message is given.
An existing tags file is silently overwritten.
+ The optional "++t" argument forces adding the
+ "help-tags" tag. This is also done when the {dir} is
+ equal to $VIMRUNTIME/doc.
To rebuild the help tags in the runtime directory
(requires write permission there): >
:helptags $VIMRUNTIME/doc
}
#if defined(FEAT_EX_EXTRA) || defined(PROTO)
-static void helptags_one __ARGS((char_u *dir, char_u *ext, char_u *lang));
+static void helptags_one __ARGS((char_u *dir, char_u *ext, char_u *lang, int add_help_tags));
/*
* ":helptags"
char_u fname[8];
int filecount;
char_u **files;
+ int add_help_tags = FALSE;
+
+ /* Check for ":helptags ++t {dir}". */
+ if (STRNCMP(eap->arg, "++t", 3) == 0 && vim_iswhite(eap->arg[3]))
+ {
+ add_help_tags = TRUE;
+ eap->arg = skipwhite(eap->arg + 3);
+ }
if (!mch_isdir(eap->arg))
{
ext[1] = fname[5];
ext[2] = fname[6];
}
- helptags_one(eap->arg, ext, fname);
+ helptags_one(eap->arg, 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");
+ helptags_one(eap->arg, (char_u *)".txt", (char_u *)"tags", add_help_tags);
#endif
}
static void
-helptags_one(dir, ext, tagfname)
- char_u *dir; /* doc directory */
- char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */
- char_u *tagfname; /* "tags" for English, "tags-it" for Italian. */
+helptags_one(dir, ext, tagfname, add_help_tags)
+ char_u *dir; /* doc directory */
+ char_u *ext; /* suffix, ".txt", ".itx", ".frx", etc. */
+ char_u *tagfname; /* "tags" for English, "tags-fr" for French. */
+ int add_help_tags; /* add "help-tags" tag */
{
FILE *fd_tags;
FILE *fd;
}
/*
- * If generating tags for "$VIMRUNTIME/doc" add the "help-tags" tag.
+ * If using the "++t" argument or generating tags for "$VIMRUNTIME/doc"
+ * add the "help-tags" tag.
*/
ga_init2(&ga, (int)sizeof(char_u *), 100);
- if (fullpathcmp((char_u *)"$VIMRUNTIME/doc", dir, FALSE) == FPC_SAME)
+ if (add_help_tags || fullpathcmp((char_u *)"$VIMRUNTIME/doc",
+ dir, FALSE) == FPC_SAME)
{
if (ga_grow(&ga, 1) == FAIL)
got_int = TRUE;
EX(CMD_helpgrep, "helpgrep", ex_helpgrep,
EXTRA|NOTRLCOM|NEEDARG),
EX(CMD_helptags, "helptags", ex_helptags,
- NEEDARG|FILE1|TRLBAR|CMDWIN),
+ NEEDARG|FILES|TRLBAR|CMDWIN),
EX(CMD_hardcopy, "hardcopy", ex_hardcopy,
RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG),
EX(CMD_highlight, "highlight", ex_highlight,