From c879f5569190f19164f2631597b05820b1554ce2 Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Sat, 30 Jul 2005 21:53:05 +0000 Subject: [PATCH] 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 --- ChangeLog | 20 ++++++++++---------- src/rcfile.c | 9 +++++++++ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index e52576c6..d41657ee 100644 --- 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 index 95277913..14f70162 100644 --- 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; -- 2.39.5