# ChangeLog for app-vim/foldutil
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/app-vim/foldutil/ChangeLog,v 1.25 2011/01/07 23:20:07 radhermit Exp $

  07 Jan 2011; Tim Harder <radhermit@gentoo.org> -foldutil-2.0.ebuild:
  Remove old

  07 Jan 2011; Brent Baude <ranger@gentoo.org> foldutil-3.0.ebuild:
  stable ppc, bug 345053

  14 Nov 2010; Raúl Porcel <armin76@gentoo.org> foldutil-3.0.ebuild:
  alpha/ia64/sparc stable

  14 Nov 2010; Markus Meier <maekke@gentoo.org> foldutil-3.0.ebuild:
  x86 stable, bug #345053

  11 Nov 2010; Markos Chandras <hwoarang@gentoo.org> foldutil-3.0.ebuild:
  Stable on amd64 wrt bug #345053

  11 Oct 2010; Tim Harder <radhermit@gentoo.org> foldutil-3.0.ebuild:
  Bump genutils dependency requirement (fixes bug #270300, thanks to James
  Rowe for reporting).

  07 Oct 2010; Mart Raudsepp <leio@gentoo.org> foldutil-2.0.ebuild:
  Drop to ~mips

*foldutil-3.0 (20 Sep 2008)

  20 Sep 2008; Ali Polatel <hawking@gentoo.org> -foldutil-1.6.ebuild,
  -foldutil-1.7.ebuild, +foldutil-3.0.ebuild:
  Version bump. Drop old.

  22 Feb 2007; Piotr Jaroszyński <peper@gentoo.org> ChangeLog:
  Transition to Manifest2.

  20 Aug 2006; <malc@gentoo.org> foldutil-2.0.ebuild:
  Stable on amd64

  07 Apr 2006; Bryan Østergaard <kloeri@gentoo.org metadata.xml:
  Remove ciaranm from metadata.xml.

  05 Apr 2006; Patrick McLean <chutzpah@gentoo.org> foldutil-2.0.ebuild:
  Add ~amd64

  10 Sep 2005; Aron Griffis <agriffis@gentoo.org> foldutil-2.0.ebuild:
  Mark 2.0 stable on alpha

  02 Sep 2005; Michael Hanselmann <hansmi@gentoo.org> foldutil-2.0.ebuild:
  Stable on ppc.

  25 Aug 2005; Aron Griffis <agriffis@gentoo.org> foldutil-2.0.ebuild:
  stable on ia64

  23 Aug 2005; Ciaran McCreesh <ciaranm@gentoo.org> foldutil-2.0.ebuild:
  x86 sparc mips stable

  05 Jun 2005; Michael Hanselmann <hansmi@gentoo.org> foldutil-1.7.ebuild:
  Stable on ppc.

*foldutil-2.0 (22 May 2005)

  22 May 2005; Ciaran McCreesh <ciaranm@gentoo.org> +foldutil-2.0.ebuild:
  Version bump

  18 Feb 2005; Ciaran McCreesh <ciaranm@gentoo.org> foldutil-1.7.ebuild:
  x86 sparc mips stable

*foldutil-1.7 (21 Jan 2005)

  21 Jan 2005; Ciaran McCreesh <ciaranm@gentoo.org> +foldutil-1.7.ebuild:
  New version, bug #78706

  03 Sep 2004; Ciaran McCreesh <ciaranm@gentoo.org> foldutil-1.6.ebuild:
  Help text, bug #62559

  20 Aug 2004; Ciaran McCreesh <ciaranm@gentoo.org> foldutil-1.6.ebuild:
  Stable on x86, sparc, mips

  17 Jul 2004; David Holm <dholm@gentoo.org> foldutil-1.6.ebuild:
  Added to ~ppc.

*foldutil-1.6 (15 Jul 2004)

  15 Jul 2004; Ciaran McCreesh <ciaranm@gentoo.org> +metadata.xml,
  +foldutil-1.6.ebuild:
  New package

