X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/77d3741943947b83a5d6a10a5e31650a1005dbde..fbb86200a436458358afe1209d0b8f224c31ae84:/src/flagMarker.c diff --git a/src/flagMarker.c b/src/flagMarker.c index d88f381..c1327bd 100644 --- a/src/flagMarker.c +++ b/src/flagMarker.c @@ -17,15 +17,15 @@ ** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ** MA 02111-1307, USA. ** -** For information on lclint: lclint-request@cs.virginia.edu -** To report a bug: lclint-bug@cs.virginia.edu +** For information on splint: info@splint.org +** To report a bug: splint-bug@splint.org ** For more information: http://www.splint.org */ /* ** flagMarker.c */ -# include "lclintMacros.nf" +# include "splintMacros.nf" # include "basic.h" flagMarker flagMarker_createLocalSet (flagcode code, ynm set, fileloc loc) @@ -107,6 +107,35 @@ int flagMarker_getCount (flagMarker f) return f->info.nerrors; } +bool flagMarker_equal (flagMarker f1, flagMarker f2) +{ + if (f1->kind != f2->kind) + { + return FALSE; + } + + if (!fileloc_equal (f1->loc, f2->loc)) + { + return FALSE; + } + + switch (f1->kind) + { + case FMK_LOCALSET: + return (f1->info.set == f2->info.set + && flagcode_equal (f1->code, f2->code)); + case FMK_IGNORECOUNT: + return (f1->info.nerrors == f2->info.nerrors); + case FMK_IGNOREON: + case FMK_IGNOREOFF: + return TRUE; + case FMK_SUPPRESS: + return (flagcode_equal (f1->code, f2->code)); + } + + BADBRANCHRET (FALSE); +} + cstring flagMarker_unparse (flagMarker c) { switch (c->kind)