Python Misc subdirectory
========================

This directory contains files that wouldn't fit in elsewhere, in
particular the UNIX manual page, an Emacs mode for Python source code,
and a list of Frequently Asked Questions (and their answers).  Some
documents are only of historic importance.

Files found here
----------------

ACKS		Acknowledgements
AIX-NOTES	Notes for building Python on AIX (all new!)
BLURB		A quick description of Python for newcomers
BLURB.LUTZ	A testimonial from a converted Tcl/Perl hacker :-)
COPYRIGHT	The Python copyright notice
FAQ		(deleted -- see http://www.python.org for the online FAQ)
Fixcprt.py	Fix the copyright message (a yearly chore :-)
HISTORY		News from previous releases -- oldest last
HPUX-NOTES	Notes about dynamic loading under HP-UX
HYPE		More hype about Python
Makefile	Used for administrative chores like cleaning up
Makefile.pre.in	Generic Makefile template for building extensions
NEWS		News for this release
Porting		Mini-FAQ on porting to new platforms
README		The file you're reading now
RFD		Request For Discussion about a Python newsgroup
cheatsheet	Quick summary of Python by Ken Manheimer
editline-fix	A news article on how to fix R$'s editline for Python
fixfuncptrs.sh	Shell script to fix function pointer initializers
indent.pro	GNU indent profile approximating my C style
python-mode.el	Emacs mode for editing Python programs
python.man	UNIX man page for the python interpreter
renumber.py	Script to renumber the sections in the FAQ
setuid-prog.c	C helper program for set-uid Python scripts
vgrindefs	Python configuration for vgrind (a generic pretty printer)
