ReST-ification of the NEWS file.  While the total number of changes are
fairly large, most are caused by reformatting section and subsection
headings.  The changes fall into the following categories:

    * reformatted section and subsection headers.

    * escaped isolated asterisks which would be interpreted as starting bold
      or italic text (e.g. "void (*)(PyObject \*)").

    * quoted stuff that looks like internal references but isn't
      (e.g. ``PyCmp_``).

    * changed visually balanced quotes to just use apostrophes
      (e.g. "'string'" instead of "`string'").

    * introduced and indenting multiline chunks of code.

    * created one table (search for "New codecs").
diff --git a/Misc/NEWS b/Misc/NEWS
index 521be0c..9a8f4e4 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1,8 +1,14 @@
++++++++++++
+Python News
++++++++++++
+
 What's New in Python 2.3 alpha 1?
-XXX Release date: DD-MMM-2002 XXX
 =================================
 
+*XXX Release date: DD-MMM-2002 XXX*
+
 Type/class unification and new-style classes
+--------------------------------------------
 
 - Assignment to __class__ is disallowed if either the old and the new
   class is a statically allocated type object (such as defined by an
@@ -56,6 +62,7 @@
   state of the slots would be lost.)
 
 Core and builtins
+-----------------
 
 - Codec error handling callbacks (PEP 293) are implemented.
   Error handling in unicode.encode or str.decode can now be customized.
@@ -161,7 +168,7 @@
   precedes B in the list at the start, A precedes B after the sort too),
   although the language definition does not guarantee stability.  A
   potential drawback is that list.sort() may require temp space of
-  len(list)*2 bytes (*4 on a 64-bit machine).  It's therefore possible
+  len(list)*2 bytes (\*4 on a 64-bit machine).  It's therefore possible
   for list.sort() to raise MemoryError now, even if a comparison function
   does not.  See <http://www.python.org/sf/587076> for full details.
 
@@ -273,6 +280,7 @@
   An exception will now be raised if more than one argument is used.
 
 Extension modules
+-----------------
 
 - cPickle.BadPickleGet is now a class.
 
@@ -324,6 +332,7 @@
   interpreter was compiled.
 
 Library
+-------
 
 - mimetypes has two new functions: guess_all_extensions() which
   returns a list of all known extensions for a mime type, and
@@ -469,6 +478,7 @@
   honored.
 
 Tools/Demos
+-----------
 
 - The SGI demos (Demo/sgi) have been removed.  Nobody thought they
   were interesting any more.  (The SGI library modules and extensions
@@ -485,6 +495,7 @@
   the generated binary.
 
 Build
+-----
 
 - The public Python C API will generally be declared using PyAPI_FUNC
    and PyAPI_DATA macros, while Python extension module init functions
@@ -550,6 +561,7 @@
   modules in the README file for details.
 
 C API
+-----
 
 - The string object's layout has changed: the pointer member
   ob_sinterned has been replaced by an int member ob_sstate.  On some
@@ -593,8 +605,8 @@
   coercion if both arguments have the same type but this type has the
   CHECKTYPES flag set.  This is to better support proxies.
 
-- The type of tp_free has been changed from "void (*)(PyObject *)" to
-  "void (*)(void *)".
+- The type of tp_free has been changed from "void (*)(PyObject \*)" to
+  "void (*)(void \*)".
 
 - PyObject_Del, PyObject_GC_Del are now functions instead of macros.
 
@@ -610,7 +622,7 @@
 - The "u#" parser marker will now pass through Unicode objects as-is
   without going through the buffer API.
 
-- The enumerators of cmp_op have been renamed to use the prefix PyCmp_.
+- The enumerators of cmp_op have been renamed to use the prefix ``PyCmp_``.
 
 - An old #define of ANY as void has been removed from pyport.h.  This
   hasn't been used since Python's pre-ANSI days, and the #define has
@@ -624,6 +636,7 @@
   scheme to a new one. See Python/import.c for details.
 
 New platforms
+-------------
 
 - AtheOS is now supported.
 
@@ -632,8 +645,12 @@
 - GNU/Hurd is now supported.
 
 Tests
+-----
+
+Yet to be written.
 
 Windows
+-------
 
 - Sometimes the uninstall executable (UNWISE.EXE) vanishes.  One cause
   of that has been fixed in the installer (disabled Wise's "delete in-
@@ -681,23 +698,30 @@
   specified with O_CREAT too).
 
 Mac
+----
+
+Yet to be written.
 
 
 What's New in Python 2.2 final?
-Release date: 21-Dec-2001
 ===============================
 
+*Release date: 21-Dec-2001*
+
 Type/class unification and new-style classes
+--------------------------------------------
 
 - pickle.py, cPickle: allow pickling instances of new-style classes
   with a custom metaclass.
 
 Core and builtins
+-----------------
 
 - weakref proxy object: when comparing, unwrap both arguments if both
   are proxies.
 
 Extension modules
+-----------------
 
 - binascii.b2a_base64(): fix a potential buffer overrun when encoding
   very short strings.
@@ -709,6 +733,7 @@
   when compiling cPickle.c (or in pyconfig.h).
 
 Library
+-------
 
 - dumbdbm.py: fixed a dumb old bug (the file didn't get synched at
   close or delete time).
@@ -722,16 +747,22 @@
   when run from the standard regression test.
 
 Tools/Demos
+-----------
 
 Build
+-----
 
 C API
+-----
 
 New platforms
+-------------
 
 Tests
+-----
 
 Windows
+-------
 
 - distutils package: fixed broken Windows installers (bdist_wininst).
 
@@ -745,6 +776,7 @@
   in backslash.
 
 Mac
+----
 
 - The Carbon toolbox modules have been upgraded to Universal Headers
   3.4, and experimental CoreGraphics and CarbonEvents modules have
@@ -752,10 +784,12 @@
 
 
 What's New in Python 2.2c1?
-Release date: 14-Dec-2001
 ===========================
 
+*Release date: 14-Dec-2001*
+
 Type/class unification and new-style classes
+--------------------------------------------
 
 - Guido's tutorial introduction to the new type/class features has
   been extensively updated.  See
@@ -798,6 +832,7 @@
   dictionary, but saves space if the object is not used further.
 
 Core and builtins
+-----------------
 
 - -Qnew now works as documented in PEP 238:  when -Qnew is passed on
   the command line, all occurrences of "/" use true division instead
@@ -815,10 +850,12 @@
   or if the second arg is specified when the first is a string.
 
 Extension modules
+-----------------
 
 - gc.get_referents was renamed to gc.get_referrers.
 
 Library
+-------
 
 - Functions in the os.spawn() family now release the global interpreter
   lock around calling the platform spawn.  They should always have done
@@ -840,11 +877,13 @@
 - The pulldom and minidom modules were synchronized to PyXML.
 
 Tools/Demos
+-----------
 
 - A new script called Tools/scripts/google.py was added, which fires
   off a search on Google.
 
 Build
+-----
 
 - Note that release builds of Python should arrange to define the
   preprocessor symbol NDEBUG on the command line (or equivalent).
@@ -859,6 +898,7 @@
   directory an extension is used, but not in the installed python.
 
 C API
+-----
 
 - New function PyDict_MergeFromSeq2() exposes the builtin dict
   constructor's logic for updating a dictionary from an iterable object
@@ -872,12 +912,16 @@
   previously went unchallenged.
 
 New platforms
+-------------
 
 Tests
+-----
 
 Windows
+-------
 
 Mac
+----
 
 - In unix-Python on Mac OS X (and darwin) sys.platform is now "darwin",
   without any trailing digits.
@@ -889,10 +933,12 @@
 
 
 What's New in Python 2.2b2?
-Release date: 16-Nov-2001
 ===========================
 
+*Release date: 16-Nov-2001*
+
 Type/class unification and new-style classes
+--------------------------------------------
 
 - Multiple inheritance mixing new-style and classic classes in the
   list of base classes is now allowed, so this works now:
@@ -926,6 +972,7 @@
 - The socket function has been converted to a type; see below.
 
 Core and builtins
+-----------------
 
 - Assignment to __debug__ raises SyntaxError at compile-time.  This
   was promised when 2.1c1 was released as "What's New in Python 2.1c1"
@@ -935,6 +982,7 @@
   (like 1 + '').
 
 Extension modules
+-----------------
 
 - mmap has a new keyword argument, "access", allowing a uniform way for
   both Windows and Unix users to create read-only, write-through and
@@ -961,6 +1009,7 @@
   bytes on its input.
 
 Library
+-------
 
 - tkFileDialog exposes a Directory class and askdirectory
   convenience function.
@@ -991,7 +1040,7 @@
 
 - mimetypes.py has optional support for non-standard, but commonly
   found types.  guess_type() and guess_extension() now accept an
-  optional `strict' flag, defaulting to true, which controls whether
+  optional 'strict' flag, defaulting to true, which controls whether
   recognize non-standard types or not.  A few non-standard types we
   know about have been added.  Also, when run as a script, there are
   new -l and -e options.
@@ -1000,7 +1049,7 @@
 
 - email.Utils.formatdate() now produces the preferred RFC 2822 style
   dates with numeric timezones (it used to produce obsolete dates
-  hard coded to "GMT" timezone).  An optional `localtime' flag is
+  hard coded to "GMT" timezone).  An optional 'localtime' flag is
   added to produce dates in the local timezone, with daylight savings
   time properly taken into account.
 
@@ -1010,8 +1059,10 @@
   in pickle, as it already was supported in cPickle.
 
 Tools/Demos
+-----------
 
 Build
+-----
 
 - The dbm module is built using libdb1 if available.  The bsddb module
   is built with libdb3 if available.
@@ -1019,6 +1070,7 @@
 - Misc/Makefile.pre.in has been removed by BDFL pronouncement.
 
 C API
+-----
 
 - New function PySequence_Fast_GET_SIZE() returns the size of a non-
   NULL result from PySequence_Fast(), more quickly than calling
@@ -1037,6 +1089,7 @@
   argument supports the single-segment readable buffer interface.
 
 New platforms
+-------------
 
 - We've finally confirmed that this release builds on HP-UX 11.00,
   *with* threads, and passes the test suite.
@@ -1047,13 +1100,16 @@
 - Updated RISCOS port by Dietmar Schwertberger.
 
 Tests
+-----
 
 - Added a test script for the curses module.  It isn't run automatically;
   regrtest.py must be run with '-u curses' to enable it.
 
 Windows
+-------
 
 Mac
+----
 
 - PythonScript has been moved to unsupported and is slated to be
   removed completely in the next release.
@@ -1068,10 +1124,12 @@
 
 
 What's New in Python 2.2b1?
-Release date: 19-Oct-2001
 ===========================
 
+*Release date: 19-Oct-2001*
+
 Type/class unification and new-style classes
+--------------------------------------------
 
 - New-style classes are now always dynamic (except for built-in and
   extension types).  There is no longer a performance penalty, and I
@@ -1090,6 +1148,7 @@
   class methods, static methods, and properties.
 
 Core and builtins
+-----------------
 
 - A very subtle syntactical pitfall in list comprehensions was fixed.
   For example: [a+b for a in 'abc', for b in 'def'].  The comma in
@@ -1127,6 +1186,7 @@
   returns true if x is an instance of A or B.
 
 Extension modules
+-----------------
 
 - thread.start_new_thread() now returns the thread ID (previously None).
 
@@ -1161,6 +1221,7 @@
   exports O_LARGEFILE, O_DIRECT, O_DIRECTORY, and O_NOFOLLOW.
 
 Library
+-------
 
 - doctest now excludes functions and classes not defined by the module
   being tested, thanks to Tim Hochberg.
@@ -1204,7 +1265,7 @@
 - The SocketServer.ThreadingMixIn class now closes the request after
   finish_request() returns.  (Not when it errors out though.)
 
-- The nntplib module's NNTP.body() method has grown a `file' argument
+- The nntplib module's NNTP.body() method has grown a 'file' argument
   to allow saving the message body to a file.
 
 - The email package has added a class email.Parser.HeaderParser which
@@ -1221,6 +1282,7 @@
   and item() method as required by the DOM specifications.
 
 Tools/Demos
+-----------
 
 - Demo/dns was removed.  It no longer serves any purpose; a package
   derived from it is now maintained by Anthony Baxter, see
@@ -1230,11 +1292,13 @@
   been added: -X and -E.
 
 Build
+-----
 
 - configure will use CXX in LINKCC if CXX is used to build main() and
   the system requires to link a C++ main using the C++ compiler.
 
 C API
+-----
 
 - The documentation for the tp_compare slot is updated to require that
   the return value must be -1, 0, 1; an arbitrary number <0 or >0 is
@@ -1257,10 +1321,13 @@
   input.
 
 New platforms
+-------------
 
 Tests
+-----
 
 Windows
+-------
 
 - Installer:  If you install IDLE, and don't disable file-extension
   registration, a new "Edit with IDLE" context (right-click) menu entry
@@ -1269,29 +1336,30 @@
 - The signal module now supports SIGBREAK on Windows, thanks to Steven
   Scott.  Note that SIGBREAK is unique to Windows.  The default SIGBREAK
   action remains to call Win32 ExitProcess().  This can be changed via
-  signal.signal().  For example:
+  signal.signal().  For example: ::
 
-  # Make Ctrl+Break raise KeyboardInterrupt, like Python's default Ctrl+C
-  # (SIGINT) behavior.
-  import signal
-  signal.signal(signal.SIGBREAK,
-                signal.default_int_handler)
+      # Make Ctrl+Break raise KeyboardInterrupt, like Python's default Ctrl+C
+      # (SIGINT) behavior.
+      import signal
+      signal.signal(signal.SIGBREAK, signal.default_int_handler)
 
-  try:
-      while 1:
-          pass
-  except KeyboardInterrupt:
-      # We get here on Ctrl+C or Ctrl+Break now; if we had not changed
-      # SIGBREAK, only on Ctrl+C (and Ctrl+Break would terminate the
-      # program without the possibility for any Python-level cleanup).
-      print "Clean exit"
+      try:
+	  while 1:
+	      pass
+      except KeyboardInterrupt:
+	  # We get here on Ctrl+C or Ctrl+Break now; if we had not changed
+	  # SIGBREAK, only on Ctrl+C (and Ctrl+Break would terminate the
+	  # program without the possibility for any Python-level cleanup).
+	  print "Clean exit"
 
 
 What's New in Python 2.2a4?
-Release date: 28-Sep-2001
 ===========================
 
+*Release date: 28-Sep-2001*
+
 Type/class unification and new-style classes
+--------------------------------------------
 
 - pydoc and inspect are now aware of new-style classes;
   e.g. help(list) at the interactive prompt now shows proper
@@ -1362,6 +1430,7 @@
 - Provisional support for pickling new-style objects has been added.
 
 Core
+----
 
 - file.writelines() now accepts any iterable object producing strings.
 
@@ -1381,6 +1450,7 @@
   to let other runnable threads be scheduled.
 
 Library
+-------
 
 - StringIO.StringIO instances and cStringIO.StringIO instances support
   read character buffer compatible objects for their .write() methods.
@@ -1428,8 +1498,10 @@
   a sample driver.)
 
 Tools
+-----
 
 Build
+-----
 
 - Large file support (LFS) is now automatic when the platform supports
   it; no more manual configuration tweaks are needed.  On Linux, at
@@ -1450,16 +1522,19 @@
   using "make -s", thanks to a -q option to setup.py.
 
 C API
+-----
 
 - The "structmember" API now supports some new flag bits to deny read
   and/or write access to attributes in restricted execution mode.
 
 New platforms
+-------------
 
 - Compaq's iPAQ handheld, running the "familiar" Linux distribution
   (http://familiar.handhelds.org).
 
 Tests
+-----
 
 - The "classic" standard tests, which work by comparing stdout to
   an expected-output file under Lib/test/output/, no longer stop at
@@ -1476,6 +1551,7 @@
   especially in regard to reporting errors.
 
 Windows
+-------
 
 - Large file support now also works for files > 4GB, on filesystems
   that support it (NTFS under Windows 2000).  See "What's New in
@@ -1483,10 +1559,12 @@
 
 
 What's New in Python 2.2a3?
-Release Date: 07-Sep-2001
 ===========================
 
+*Release Date: 07-Sep-2001*
+
 Core
+----
 
 - Conversion of long to float now raises OverflowError if the long is too
   big to represent as a C double.
@@ -1528,14 +1606,13 @@
   all uses of classic division for int and long arguments; -Qwarnall
   also warns about classic division for float and complex arguments
   (for use with fixdiv.py).
-  [Note:  the remainder of this paragraph (preserved below) became
-   obsolete in 2.2c1 -- -Qnew has global effect in 2.2]
-  <obsolete>
-  Using -Qnew is questionable; it turns on new division by default, but
-  only in the __main__ module.  You can usefully combine -Qwarn or
-  -Qwarnall and -Qnew: this gives the __main__ module new division, and
-  warns about classic division everywhere else.
-  </obsolete>
+  [Note:  the remainder of this item (preserved below) became
+  obsolete in 2.2c1 -- -Qnew has global effect in 2.2] ::
+
+    Using -Qnew is questionable; it turns on new division by default, but
+    only in the __main__ module.  You can usefully combine -Qwarn or
+    -Qwarnall and -Qnew: this gives the __main__ module new division, and
+    warns about classic division everywhere else.
 
 - Many built-in types can now be subclassed.  This applies to int,
   long, float, str, unicode, and tuple.  (The types complex, list and
@@ -1571,6 +1648,7 @@
   exponent, such as 1e and 3.1e-.  Such literals now raise SyntaxError.
 
 Library
+-------
 
 - telnetlib includes symbolic names for the options, and support for
   setting an option negotiation callback.
@@ -1604,11 +1682,13 @@
   to objects that should be garbage collected between tests.
 
 Tools
+-----
 
 - Tools/scripts/fixdiv.py has been added which can be used to fix
   division operators as per PEP 238.
 
 Build
+-----
 
 - If you are an adventurous person using Mac OS X you may want to look at
   Mac/OSX. There is a Makefile there that will build Python as a real Mac
@@ -1616,17 +1696,18 @@
   Discussion of this on pythonmac-sig, please.
 
 C API
+-----
 
 - New function PyObject_Dir(obj), like Python __builtin__.dir(obj).
 
 - Note that PyLong_AsDouble can fail!  This has always been true, but no
   callers checked for it.  It's more likely to fail now, because overflow
-  errors are properly detected now.  The proper way to check:
+  errors are properly detected now.  The proper way to check: ::
 
-  double x = PyLong_AsDouble(some_long_object);
-  if (x == -1.0 && PyErr_Occurred()) {
-          /* The conversion failed. */
-  }
+      double x = PyLong_AsDouble(some_long_object);
+      if (x == -1.0 && PyErr_Occurred()) {
+	      /* The conversion failed. */
+      }
 
 - The GC API has been changed.  Extensions that use the old API will still
   compile but will not participate in GC.  To upgrade an extension
@@ -1650,6 +1731,7 @@
   by PyErr_Format()).
 
 New platforms
+-------------
 
 - Stephen Hansen contributed patches sufficient to get a clean compile
   under Borland C (Windows), but he reports problems running it and ran
@@ -1658,8 +1740,10 @@
   causing later failures too.
 
 Tests
+-----
 
 Windows
+-------
 
 - Large file support is now enabled on Win32 platforms as well as on
   Win64.  This means that, for example, you can use f.tell() and f.seek()
@@ -1676,10 +1760,12 @@
 
 
 What's New in Python 2.2a2?
-Release Date: 22-Aug-2001
 ===========================
 
+*Release Date: 22-Aug-2001*
+
 Build
+-----
 
 - Tim Peters developed a brand new Windows installer using Wise 8.1,
   generously donated to us by Wise Solutions.
@@ -1695,15 +1781,17 @@
 
 - The NeXT platform is no longer supported.
 
-- The `new' module is now statically linked.
+- The 'new' module is now statically linked.
 
 Tools
+-----
 
 - The new Tools/scripts/cleanfuture.py can be used to automatically
   edit out obsolete future statements from Python source code.  See
   the module docstring for details.
 
 Tests
+-----
 
 - regrtest.py now knows which tests are expected to be skipped on some
   platforms, allowing to give clearer test result output.  regrtest
@@ -1714,6 +1802,7 @@
   Nick Mathewson.
 
 Core
+----
 
 - The floor division operator // has been added as outlined in PEP
   238.  The / operator still provides classic division (and will until
@@ -1753,6 +1842,7 @@
   older distribution.
 
 Library
+-------
 
 - New class Differ and new functions ndiff() and restore() in difflib.py.
   These package the algorithms used by the popular Tools/scripts/ndiff.py,
@@ -1770,13 +1860,15 @@
 
 - Added Ka-Ping Yee's cgitb.py module.
 
-- The `new' module now exposes the CO_xxx flags.
+- The 'new' module now exposes the CO_xxx flags.
 
 - The gc module offers the get_referents function.
 
 New platforms
+-------------
 
 C API
+-----
 
 - Two new APIs PyOS_snprintf() and PyOS_vsnprintf() were added
   which provide a cross-platform implementations for the
@@ -1799,16 +1891,19 @@
   deprecated.
 
 Windows
+-------
 
 - "import module" now compiles module.pyw if it exists and nothing else
   relevant is found.
 
 
 What's New in Python 2.2a1?
-Release date: 18-Jul-2001
 ===========================
 
+*Release date: 18-Jul-2001*
+
 Core
+----
 
 - TENTATIVELY, a large amount of code implementing much of what's
   described in PEP 252 (Making Types Look More Like Classes) and PEP
@@ -1854,14 +1949,21 @@
   New codecs were added to demonstrate these new features (the .encode()
   and .decode() columns indicate the type of the returned objects):
 
-  Name     | .encode() | .decode() | Description
-  ----------------------------------------------------------------------
-  uu       | string    | string    | UU codec (e.g. for email)
-  base64   | string    | string    | base64 codec
-  quopri   | string    | string    | quoted-printable codec
-  zlib     | string    | string    | zlib compression
-  hex      | string    | string    | 2-byte hex codec
-  rot-13   | string    | Unicode   | ROT-13 Unicode charmap codec
+  +---------+-----------+-----------+-----------------------------+
+  |Name     | .encode() | .decode() | Description                 |
+  +=========+===========+===========+=============================+
+  |uu       | string    | string    | UU codec (e.g. for email)   |
+  +---------+-----------+-----------+-----------------------------+
+  |base64   | string    | string    | base64 codec                |
+  +---------+-----------+-----------+-----------------------------+
+  |quopri   | string    | string    | quoted-printable codec      |
+  +---------+-----------+-----------+-----------------------------+
+  |zlib     | string    | string    | zlib compression            |
+  +---------+-----------+-----------+-----------------------------+
+  |hex      | string    | string    | 2-byte hex codec            |
+  +---------+-----------+-----------+-----------------------------+
+  |rot-13   | string    | Unicode   | ROT-13 Unicode charmap codec|
+  +---------+-----------+-----------+-----------------------------+
 
 - Some operating systems now support the concept of a default Unicode
   encoding for file system operations.  Notably, Windows supports 'mbcs'
@@ -1934,7 +2036,8 @@
   Iterating over a file generates its lines.
 
 - The following functions were generalized to work nicely with iterator
-  arguments:
+  arguments: ::
+
     map(), filter(), reduce(), zip()
     list(), tuple() (PySequence_Tuple() and PySequence_Fast() in C API)
     max(), min()
@@ -1942,7 +2045,7 @@
     extend() method of lists
     'x in y' and 'x not in y' (PySequence_Contains() in C API)
     operator.countOf() (PySequence_Count() in C API)
-    right-hand side of assignment statements with multiple targets, such as
+    right-hand side of assignment statements with multiple targets, such as ::
         x, y, z = some_iterable_object_returning_exactly_3_values
 
 - Accessing module attributes is significantly faster (for example,
@@ -1966,6 +2069,7 @@
 
 
 Library
+-------
 
 - The constants ascii_letters, ascii_lowercase. and ascii_uppercase
   were added to the string module.  These a locale-independent
@@ -2013,6 +2117,7 @@
   'help(object)'.
 
 Tests
+-----
 
 - New test_mutants.py runs dict comparisons where the key and value
   comparison operators mutate the dicts randomly during comparison.  This
@@ -2024,6 +2129,11 @@
   cases produce correct output.
 
 C API
+-----
 
 - Removed the unused last_is_sticky argument from the internal
   _PyTuple_Resize().  If this affects you, you were cheating.
+
+----
+
+**(For information about older versions, consult the HISTORY file.)**