From: uz Date: Tue, 7 Jun 2011 21:15:16 +0000 (+0000) Subject: Limit the number of additional line infos printed in case of an error or X-Git-Tag: V2.13.3~423 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=f8089b98c1e0fe43220a043c5c554b343f65913f;p=cc65 Limit the number of additional line infos printed in case of an error or warning. git-svn-id: svn://svn.cc65.org/cc65/trunk@5037 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/ca65/error.c b/src/ca65/error.c index f647fee43..3de780d86 100644 --- a/src/ca65/error.c +++ b/src/ca65/error.c @@ -120,13 +120,20 @@ static void PrintMsg (const FilePos* Pos, const char* Desc, static void AddNotifications (const Collection* LineInfos) /* Output additional notifications for an error or warning */ { + unsigned I; + unsigned Skipped; + /* The basic line info is always in slot zero. It has been used to * output the actual error or warning. The following slots may contain - * more information. Check them and additional notifications if they're - * present. + * more information. Check them and print additional notifications if + * they're present, but limit the number to a reasonable value. */ - unsigned I; - for (I = 1; I < CollCount (LineInfos); ++I) { + unsigned MaxCount = CollCount (LineInfos); + if (MaxCount > 6) { + MaxCount = 6; + } + Skipped = CollCount (LineInfos) - MaxCount; + for (I = 1; I < MaxCount; ++I) { /* Get next line info */ const LineInfo* LI = CollConstAt (LineInfos, I); /* Check the type and output an appropriate note */ @@ -139,6 +146,12 @@ static void AddNotifications (const Collection* LineInfos) "Macro was defined here"); } } + + /* Add a note if we have more stuff that we won't output */ + if (Skipped > 0) { + PrintMsg (GetSourcePos (CollConstAt (LineInfos, 0)), "Note", + "Dropping %u additional line infos", Skipped); + } }