# ChangeLog for dev-util/cppcheck
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/cppcheck/ChangeLog,v 1.12 2010/03/07 17:11:24 patrick Exp $

  07 Mar 2010; Patrick Lauer <patrick@gentoo.org> metadata.xml:
  Add self to metadata so this package doesn't get forgotten

*cppcheck-1.41 (07 Mar 2010)

  07 Mar 2010; Patrick Lauer <patrick@gentoo.org> +cppcheck-1.41.ebuild:
  Bump

*cppcheck-1.40 (19 Feb 2010)

  19 Feb 2010; Patrick Lauer <patrick@gentoo.org> +cppcheck-1.40.ebuild:
  Bump for #303267

  12 Jan 2010; Patrick Lauer <patrick@gentoo.org> -cppcheck-1.32.ebuild,
  -cppcheck-1.33.ebuild, -cppcheck-1.34.ebuild:
  Old

*cppcheck-1.39 (12 Jan 2010)

  12 Jan 2010; Patrick Lauer <patrick@gentoo.org> +cppcheck-1.39.ebuild:
  Bump to 1.39 for #300683

*cppcheck-1.38 (01 Dec 2009)

  01 Dec 2009; Michael Sterrett <mr_bones_@gentoo.org>
  +cppcheck-1.38.ebuild:
  version bump

*cppcheck-1.34 (15 Jul 2009)

  15 Jul 2009; Mike Frysinger <vapier@gentoo.org> +cppcheck-1.34.ebuild:
  Version bump.

*cppcheck-1.33 (07 Jun 2009)

  07 Jun 2009; Mike Frysinger <vapier@gentoo.org> +cppcheck-1.33.ebuild:
  Version bump.

*cppcheck-1.32 (10 May 2009)

  10 May 2009; Mike Frysinger <vapier@gentoo.org> +cppcheck-1.32.ebuild:
  Version bump.

*cppcheck-1.31 (12 Apr 2009)

  12 Apr 2009; Mike Frysinger <vapier@gentoo.org> +cppcheck-1.31.ebuild:
  Version bump.

*cppcheck-1.30 (08 Mar 2009)

  08 Mar 2009; Mike Frysinger <vapier@gentoo.org>
  +files/cppcheck-1.30-build.patch, +cppcheck-1.30.ebuild:
  Version bump.

*cppcheck-1.29 (06 Mar 2009)

  06 Mar 2009; Mike Frysinger <vapier@gentoo.org>
  +files/cppcheck-1.29-build.patch, +metadata.xml, +cppcheck-1.29.ebuild:
  Initial import.
