commit c879f5569190f19164f2631597b05820b1554ce2
parent 6135bf3f6b598582af4f69af716da39b7aaed940
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Sat, 30 Jul 2005 21:53:05 +0000
in parse_syntax(), flag duplicate syntax names as errors
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2952 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -57,16 +57,16 @@ CVS code -
thanks_for_all_the_fish(), nregcomp(), parse_syntax(), and
parse_colors(). (Brand Huntsman and DLR)
- Various other color fixes. Handle unspecified foreground
- colors properly, don't automatically reinitialize the
- displayed colors every time we update the current buffer's
- colors (since the buffer may not be displayed immediately),
- don't bother doing complete refreshes of the screen when
- color support is enabled if there's no regex associated with
- the current file, and rename variable exttype->val to
- exttype->ext, for consistency. Changes to do_colorinit()
- (renamed color_init()), update_color() (renamed
- color_update()), write_file(), do_input(), do_output(), and
- parse_syntax(). (DLR)
+ colors properly, flag duplicate syntax names as errors, don't
+ automatically reinitialize the displayed colors every time we
+ update the current buffer's colors (since the buffer may not
+ be displayed immediately), don't bother doing complete
+ refreshes of the screen when color support is enabled if
+ there's no regex associated with the current file, and rename
+ variable exttype->val to exttype->ext, for consistency.
+ Changes to do_colorinit() (renamed color_init()),
+ update_color() (renamed color_update()), write_file(),
+ do_input(), do_output(), and parse_syntax(). (DLR)
- Simplify get_totals() to only get the total number of
characters, and eliminate dependence on its old ability to get
the total number of lines by renumber()ing when necessary and
diff --git a/src/rcfile.c b/src/rcfile.c
@@ -268,6 +268,7 @@ bool nregcomp(const char *regex, int eflags)
void parse_syntax(char *ptr)
{
const char *fileregptr = NULL, *nameptr = NULL;
+ const syntaxtype *tmpsyntax;
exttype *endext = NULL;
/* The end of the extensions list for this syntax. */
@@ -292,6 +293,14 @@ void parse_syntax(char *ptr)
if (ptr == NULL)
return;
+ for (tmpsyntax = syntaxes; tmpsyntax != NULL;
+ tmpsyntax = tmpsyntax->next) {
+ if (mbstrcasecmp(nameptr, tmpsyntax->desc) == 0) {
+ rcfile_error(N_("Duplicate syntax name %s"), nameptr);
+ return;
+ }
+ }
+
if (syntaxes == NULL) {
syntaxes = (syntaxtype *)nmalloc(sizeof(syntaxtype));
endsyntax = syntaxes;