$Id$
This file lists people who have made significant contribution to the nano
editor.  Please see the ChangeLog for specific changes by author.
-------------------------------------------------------------------------

Chris Allegretta <chrisa@asty.org>
	* Original program author, stable series maintainer.

David Lawrence Ramsey <pooka_regent@sluggy.net>
	* Development series maintainer.  Multiple buffer support, 
	  operating dir (-o) option, bug fixes for display routines, 
	  wrapping code, spelling fixes, const mode and various other 
	  fixes.

Jordi Mallach <jordi@sindominio.net>
	* Debian package maintainer, fellow bug squasher.
	* Internationalization support head, ca.po maintainer.

Adam Rogoyski <rogoyski@cs.utexas.edu>
	* New write_file() function, read_file() optimization, mouse
	  support, resize support, nohelp (-x) option, justify function,
	  follow symlink option and bugfixes, and much more.

Robert Siemborski <rjs3@andrew.cmu.edu>
	* Miscellaneous cut, display, replace, and other bug fixes,
	  original and new "magic line" code, read_line() function, new
	  edit display routines.

Rocco Corsi <rocco.corsi@sympatico.ca>
	* Internal spelling code, many optimizations and bug fixes for 
	  findnextstr and search-related functions, various display and
	  file handling fixes.

David Benbennick <dbenbenn@math.cornell.edu>
	* Wrap and justify bugfixes/enhancements, new color syntax
	  code, memleak fixes and other miscellaneous fixes.
