$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>
	* Main program author and maintainer.

Jordi Mallach <jordi@sindominio.net>
	* Debian package maintainer, fellow bug squasher.
	* Internationalization support head, es.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.
