[Python-checkins] python/dist/src/Modules _hotshot.c,1.17,1.18 _localemodule.c,2.31,2.32 _ssl.c,1.3,1.4 _weakref.c,1.15,1.16 almodule.c,1.35,1.36 arraymodule.c,2.73,2.74 binascii.c,2.33,2.34 cPickle.c,2.84,2.85 cStringIO.c,2.35,2.36 cmathmodule.c,2.29,2.30 cryptmodule.c,2.12,2.13 errnomodule.c,2.16,2.17 fcntlmodule.c,2.34,2.35 gcmodule.c,2.43,2.44 gdbmmodule.c,2.32,2.33 grpmodule.c,2.17,2.18 mathmodule.c,2.67,2.68 md5module.c,2.29,2.30 newmodule.c,2.38,2.39 operator.c,2.20,2.21 parsermodule.c,2.69,2.70 posixmodule.c,2.234,2.235 pwdmodule.c,1.33,1.34 pyexpat.c,2.59,2.60 readline.c,2.50,2.51 resource.c,2.25,2.26 selectmodule.c,2.63,2.64 shamodule.c,2.18,2.19 signalmodule.c,2.67,2.68 socketmodule.c,1.227,1.228 stropmodule.c,2.88,2.89 structmodule.c,2.54,2.55 termios.c,2.34,2.35 threadmodule.c,2.49,2.50 timemodule.c,2.126,2.127 unicodedata.c,2.17,2.18 xreadlinesmodule.c,1.9,1.10 xxsubtype.c,2.14,2.15 zlibmodule.c,2.61,2.62

loewis@users.sourceforge.net loewis@users.sourceforge.net
Thu, 13 Jun 2002 13:33:43 -0700


Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv14210/Modules

Modified Files:
	_hotshot.c _localemodule.c _ssl.c _weakref.c almodule.c 
	arraymodule.c binascii.c cPickle.c cStringIO.c cmathmodule.c 
	cryptmodule.c errnomodule.c fcntlmodule.c gcmodule.c 
	gdbmmodule.c grpmodule.c mathmodule.c md5module.c newmodule.c 
	operator.c parsermodule.c posixmodule.c pwdmodule.c pyexpat.c 
	readline.c resource.c selectmodule.c shamodule.c 
	signalmodule.c socketmodule.c stropmodule.c structmodule.c 
	termios.c threadmodule.c timemodule.c unicodedata.c 
	xreadlinesmodule.c xxsubtype.c zlibmodule.c 
Log Message:
Patch #568124: Add doc string macros.


Index: _hotshot.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_hotshot.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** _hotshot.c	29 May 2002 18:19:14 -0000	1.17
--- _hotshot.c	13 Jun 2002 20:32:45 -0000	1.18
***************
*** 102,108 ****
  /* The log reader... */
  
! static char logreader_close__doc__[] =
  "close()\n"
! "Close the log file, preventing additional records from being read.";
  
  static PyObject *
--- 102,108 ----
  /* The log reader... */
  
! PyDoc_STRVAR(logreader_close__doc__,
  "close()\n"
! "Close the log file, preventing additional records from being read.");
  
  static PyObject *
***************
*** 523,529 ****
  }
  
! static char next__doc__[] =
  "next() -> event-info\n"
! "Return the next event record from the log file.";
  
  static PyObject *
--- 523,529 ----
  }
  
! PyDoc_STRVAR(next__doc__,
  "next() -> event-info\n"
! "Return the next event record from the log file.");
  
  static PyObject *
***************
*** 1022,1028 ****
  /* Profiler object interface methods. */
  
! static char addinfo__doc__[] =
  "addinfo(key, value)\n"
! "Insert an ADD_INFO record into the log.";
  
  static PyObject *
--- 1022,1028 ----
  /* Profiler object interface methods. */
  
! PyDoc_STRVAR(addinfo__doc__,
  "addinfo(key, value)\n"
! "Insert an ADD_INFO record into the log.");
  
  static PyObject *
***************
*** 1045,1051 ****
  }
  
! static char close__doc__[] =
  "close()\n"
! "Shut down this profiler and close the log files, even if its active.";
  
  static PyObject *
--- 1045,1051 ----
  }
  
! PyDoc_STRVAR(close__doc__,
  "close()\n"
! "Shut down this profiler and close the log files, even if its active.");
  
  static PyObject *
***************
*** 1066,1072 ****
  }
  
! static char runcall__doc__[] =
  "runcall(callable[, args[, kw]]) -> callable()\n"
! "Profile a specific function call, returning the result of that call.";
  
  static PyObject *
--- 1066,1072 ----
  }
  
! PyDoc_STRVAR(runcall__doc__,
  "runcall(callable[, args[, kw]]) -> callable()\n"
! "Profile a specific function call, returning the result of that call.");
  
  static PyObject *
***************
*** 1089,1096 ****
  }
  
! static char runcode__doc__[] =
  "runcode(code, globals[, locals])\n"
  "Execute a code object while collecting profile data.  If locals is\n"
! "omitted, globals is used for the locals as well.";
  
  static PyObject *
--- 1089,1096 ----
  }
  
! PyDoc_STRVAR(runcode__doc__,
  "runcode(code, globals[, locals])\n"
  "Execute a code object while collecting profile data.  If locals is\n"
! "omitted, globals is used for the locals as well.");
  
  static PyObject *
***************
*** 1128,1134 ****
  }
  
! static char start__doc__[] =
  "start()\n"
! "Install this profiler for the current thread.";
  
  static PyObject *
--- 1128,1134 ----
  }
  
! PyDoc_STRVAR(start__doc__,
  "start()\n"
! "Install this profiler for the current thread.");
  
  static PyObject *
***************
*** 1147,1153 ****
  }
  
! static char stop__doc__[] =
  "stop()\n"
! "Remove this profiler from the current thread.";
  
  static PyObject *
--- 1147,1153 ----
  }
  
! PyDoc_STRVAR(stop__doc__,
  "stop()\n"
! "Remove this profiler from the current thread.");
  
  static PyObject *
***************
*** 1226,1230 ****
  
  
! static char profiler_object__doc__[] =
  "High-performance profiler object.\n"
  "\n"
--- 1226,1230 ----
  
  
! PyDoc_STRVAR(profiler_object__doc__,
  "High-performance profiler object.\n"
  "\n"
***************
*** 1242,1246 ****
  "frametimings: True if ENTER/EXIT events collect timing information.\n"
  "lineevents:   True if SET_LINENO events are reported to the profiler.\n"
! "linetimings:  True if SET_LINENO events collect timing information.";
  
  static PyTypeObject ProfilerType = {
--- 1242,1246 ----
  "frametimings: True if ENTER/EXIT events collect timing information.\n"
  "lineevents:   True if SET_LINENO events are reported to the profiler.\n"
! "linetimings:  True if SET_LINENO events collect timing information.");
  
  static PyTypeObject ProfilerType = {
***************
*** 1289,1295 ****
  
  
! static char logreader__doc__[] = "\
! logreader(filename) --> log-iterator\n\
! Create a log-reader for the timing information file.";
  
  static PySequenceMethods logreader_as_sequence = {
--- 1289,1295 ----
  
  
! PyDoc_STRVAR(logreader__doc__,
! "logreader(filename) --> log-iterator\n\
! Create a log-reader for the timing information file.");
  
  static PySequenceMethods logreader_as_sequence = {
***************
*** 1477,1483 ****
  }
  
! static char profiler__doc__[] = "\
! profiler(logfilename[, lineevents[, linetimes]]) -> profiler\n\
! Create a new profiler object.";
  
  static PyObject *
--- 1477,1483 ----
  }
  
! PyDoc_STRVAR(profiler__doc__,
! "profiler(logfilename[, lineevents[, linetimes]]) -> profiler\n\
! Create a new profiler object.");
  
  static PyObject *
***************
*** 1530,1537 ****
  }
  
! static char coverage__doc__[] = "\
! coverage(logfilename) -> profiler\n\
  Returns a profiler that doesn't collect any timing information, which is\n\
! useful in building a coverage analysis tool.";
  
  static PyObject *
--- 1530,1537 ----
  }
  
! PyDoc_STRVAR(coverage__doc__,
! "coverage(logfilename) -> profiler\n\
  Returns a profiler that doesn't collect any timing information, which is\n\
! useful in building a coverage analysis tool.");
  
  static PyObject *
***************
*** 1553,1567 ****
  }
  
! static char resolution__doc__[] =
  #ifdef MS_WIN32
  "resolution() -> (performance-counter-ticks, update-frequency)\n"
  "Return the resolution of the timer provided by the QueryPerformanceCounter()\n"
  "function.  The first value is the smallest observed change, and the second\n"
! "is the result of QueryPerformanceFrequency().";
  #else
  "resolution() -> (gettimeofday-usecs, getrusage-usecs)\n"
  "Return the resolution of the timers provided by the gettimeofday() and\n"
! "getrusage() system calls, or -1 if the call is not supported.";
  #endif
  
  static PyObject *
--- 1553,1572 ----
  }
  
! PyDoc_VAR(resolution__doc__) = 
  #ifdef MS_WIN32
+ PyDoc_STR(
  "resolution() -> (performance-counter-ticks, update-frequency)\n"
  "Return the resolution of the timer provided by the QueryPerformanceCounter()\n"
  "function.  The first value is the smallest observed change, and the second\n"
! "is the result of QueryPerformanceFrequency()."
! )
  #else
+ PyDoc_STR(
  "resolution() -> (gettimeofday-usecs, getrusage-usecs)\n"
  "Return the resolution of the timers provided by the gettimeofday() and\n"
! "getrusage() system calls, or -1 if the call is not supported."
! )
  #endif
+ ;
  
  static PyObject *

Index: _localemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_localemodule.c,v
retrieving revision 2.31
retrieving revision 2.32
diff -C2 -d -r2.31 -r2.32
*** _localemodule.c	2 May 2002 12:16:29 -0000	2.31
--- _localemodule.c	13 Jun 2002 20:32:45 -0000	2.32
***************
*** 39,43 ****
  #endif
  
! static char locale__doc__[] = "Support for POSIX locales.";
  
  static PyObject *Error;
--- 39,43 ----
  #endif
  
! PyDoc_STRVAR(locale__doc__, "Support for POSIX locales.");
  
  static PyObject *Error;
***************
*** 45,51 ****
  /* support functions for formatting floating point numbers */
  
! static char setlocale__doc__[] =
! "(integer,string=None) -> string. Activates/queries locale processing."
! ;
  
  /* to record the LC_NUMERIC settings */
--- 45,50 ----
  /* support functions for formatting floating point numbers */
  
! PyDoc_STRVAR(setlocale__doc__,
! "(integer,string=None) -> string. Activates/queries locale processing.");
  
  /* to record the LC_NUMERIC settings */
***************
*** 245,251 ****
  }
  
! static char localeconv__doc__[] =
! "() -> dict. Returns numeric and monetary locale-specific parameters."
! ;
  
  static PyObject*
--- 244,249 ----
  }
  
! PyDoc_STRVAR(localeconv__doc__,
! "() -> dict. Returns numeric and monetary locale-specific parameters.");
  
  static PyObject*
***************
*** 322,328 ****
  }
  
! static char strcoll__doc__[] =
! "string,string -> int. Compares two strings according to the locale."
! ;
  
  static PyObject*
--- 320,325 ----
  }
  
! PyDoc_STRVAR(strcoll__doc__,
! "string,string -> int. Compares two strings according to the locale.");
  
  static PyObject*
***************
*** 336,342 ****
  }
  
! static char strxfrm__doc__[] =
! "string -> string. Returns a string that behaves for cmp locale-aware."
! ;
  
  static PyObject*
--- 333,338 ----
  }
  
! PyDoc_STRVAR(strxfrm__doc__,
! "string -> string. Returns a string that behaves for cmp locale-aware.");
  
  static PyObject*
***************
*** 522,529 ****
  };
  
! static char nl_langinfo__doc__[] =
  "nl_langinfo(key) -> string\n"
! "Return the value for the locale information associated with key."
! ;
  
  static PyObject*
--- 518,524 ----
  };
  
! PyDoc_STRVAR(nl_langinfo__doc__,
  "nl_langinfo(key) -> string\n"
! "Return the value for the locale information associated with key.");
  
  static PyObject*
***************
*** 546,552 ****
  #ifdef HAVE_LIBINTL_H
  
! static char gettext__doc__[]=
  "gettext(msg) -> string\n"
! "Return translation of msg.";
  
  static PyObject*
--- 541,547 ----
  #ifdef HAVE_LIBINTL_H
  
! PyDoc_STRVAR(gettext__doc__,
  "gettext(msg) -> string\n"
! "Return translation of msg.");
  
  static PyObject*
***************
*** 559,565 ****
  }
  
! static char dgettext__doc__[]=
  "dgettext(domain, msg) -> string\n"
! "Return translation of msg in domain.";
  
  static PyObject*
--- 554,560 ----
  }
  
! PyDoc_STRVAR(dgettext__doc__,
  "dgettext(domain, msg) -> string\n"
! "Return translation of msg in domain.");
  
  static PyObject*
***************
*** 572,578 ****
  }
  
! static char dcgettext__doc__[]=
  "dcgettext(domain, msg, category) -> string\n"
! "Return translation of msg in domain and category.";
  
  static PyObject*
--- 567,573 ----
  }
  
! PyDoc_STRVAR(dcgettext__doc__,
  "dcgettext(domain, msg, category) -> string\n"
! "Return translation of msg in domain and category.");
  
  static PyObject*
***************
*** 586,592 ****
  }
  
! static char textdomain__doc__[]=
  "textdomain(domain) -> string\n"
! "Set the C library's textdmain to domain, returning the new domain.";
  
  static PyObject*
--- 581,587 ----
  }
  
! PyDoc_STRVAR(textdomain__doc__,
  "textdomain(domain) -> string\n"
! "Set the C library's textdmain to domain, returning the new domain.");
  
  static PyObject*
***************
*** 604,610 ****
  }
  
! static char bindtextdomain__doc__[]=
  "bindtextdomain(domain, dir) -> string\n"
! "Bind the C library's domain to dir.";
  
  static PyObject*
--- 599,605 ----
  }
  
! PyDoc_STRVAR(bindtextdomain__doc__,
  "bindtextdomain(domain, dir) -> string\n"
! "Bind the C library's domain to dir.");
  
  static PyObject*

Index: _ssl.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_ssl.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** _ssl.c	27 Apr 2002 18:44:29 -0000	1.3
--- _ssl.c	13 Jun 2002 20:32:47 -0000	1.4
***************
*** 260,265 ****
  }
  
! static char ssl_doc[] =
! "ssl(socket, [keyfile, certfile]) -> sslobject";
  
  /* SSL object methods */
--- 260,265 ----
  }
  
! PyDoc_STRVAR(ssl_doc,
! "ssl(socket, [keyfile, certfile]) -> sslobject");
  
  /* SSL object methods */
***************
*** 307,315 ****
  }
  
! static char PySSL_SSLwrite_doc[] =
  "write(s) -> len\n\
  \n\
  Writes the string s into the SSL object.  Returns the number\n\
! of bytes written.";
  
  static PyObject *PySSL_SSLread(PySSLObject *self, PyObject *args)
--- 307,315 ----
  }
  
! PyDoc_STRVAR(PySSL_SSLwrite_doc,
  "write(s) -> len\n\
  \n\
  Writes the string s into the SSL object.  Returns the number\n\
! of bytes written.");
  
  static PyObject *PySSL_SSLread(PySSLObject *self, PyObject *args)
***************
*** 337,344 ****
  }
  
! static char PySSL_SSLread_doc[] =
  "read([len]) -> string\n\
  \n\
! Read up to len bytes from the SSL socket.";
  
  static PyMethodDef PySSLMethods[] = {
--- 337,344 ----
  }
  
! PyDoc_STRVAR(PySSL_SSLread_doc,
  "read([len]) -> string\n\
  \n\
! Read up to len bytes from the SSL socket.");
  
  static PyMethodDef PySSLMethods[] = {
***************
*** 393,401 ****
  }
  
! static char PySSL_RAND_add_doc[] =
  "RAND_add(string, entropy)\n\
  \n\
  Mix string into the OpenSSL PRNG state.  entropy (a float) is a lower\n\
! bound on the entropy contained in string.";
  
  static PyObject *
--- 393,401 ----
  }
  
! PyDoc_STRVAR(PySSL_RAND_add_doc,
  "RAND_add(string, entropy)\n\
  \n\
  Mix string into the OpenSSL PRNG state.  entropy (a float) is a lower\n\
! bound on the entropy contained in string.");
  
  static PyObject *
***************
*** 405,414 ****
  }
  
! static char PySSL_RAND_status_doc[] = 
  "RAND_status() -> 0 or 1\n\
  \n\
  Returns 1 if the OpenSSL PRNG has been seeded with enough data and 0 if not.\n\
  It is necessary to seed the PRNG with RAND_add() on some platforms before\n\
! using the ssl() function.";
  
  static PyObject *
--- 405,414 ----
  }
  
! PyDoc_STRVAR(PySSL_RAND_status_doc,
  "RAND_status() -> 0 or 1\n\
  \n\
  Returns 1 if the OpenSSL PRNG has been seeded with enough data and 0 if not.\n\
  It is necessary to seed the PRNG with RAND_add() on some platforms before\n\
! using the ssl() function.");
  
  static PyObject *
***************
*** 431,440 ****
  }
  
! static char PySSL_RAND_egd_doc[] = 
  "RAND_egd(path) -> bytes\n\
  \n\
  Queries the entropy gather daemon (EGD) on socket path.  Returns number\n\
  of bytes read.  Raises socket.sslerror if connection to EGD fails or\n\
! if it does provide enough data to seed PRNG.";
  
  #endif
--- 431,440 ----
  }
  
! PyDoc_STRVAR(PySSL_RAND_egd_doc,
  "RAND_egd(path) -> bytes\n\
  \n\
  Queries the entropy gather daemon (EGD) on socket path.  Returns number\n\
  of bytes read.  Raises socket.sslerror if connection to EGD fails or\n\
! if it does provide enough data to seed PRNG.");
  
  #endif
***************
*** 457,463 ****
  
  
! static char module_doc[] =
  "Implementation module for SSL socket operations.  See the socket module\n\
! for documentation.";
  
  DL_EXPORT(void)
--- 457,463 ----
  
  
! PyDoc_STRVAR(module_doc,
  "Implementation module for SSL socket operations.  See the socket module\n\
! for documentation.");
  
  DL_EXPORT(void)

Index: _weakref.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/_weakref.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** _weakref.c	23 Oct 2001 21:12:47 -0000	1.15
--- _weakref.c	13 Jun 2002 20:32:47 -0000	1.16
***************
*** 6,12 ****
  
  
! static char weakref_getweakrefcount__doc__[] =
  "getweakrefcount(object) -- return the number of weak references\n"
! "to 'object'.";
  
  static PyObject *
--- 6,12 ----
  
  
! PyDoc_STRVAR(weakref_getweakrefcount__doc__,
  "getweakrefcount(object) -- return the number of weak references\n"
! "to 'object'.");
  
  static PyObject *
***************
*** 27,33 ****
  
  
! static char weakref_getweakrefs__doc__[] =
  "getweakrefs(object) -- return a list of all weak reference objects\n"
! "that point to 'object'.";
  
  static PyObject *
--- 27,33 ----
  
  
! PyDoc_STRVAR(weakref_getweakrefs__doc__,
  "getweakrefs(object) -- return a list of all weak reference objects\n"
! "that point to 'object'.");
  
  static PyObject *
***************
*** 58,65 ****
  
  
! static char weakref_ref__doc__[] =
  "new(object[, callback]) -- create a weak reference to 'object';\n"
  "when 'object' is finalized, 'callback' will be called and passed\n"
! "a reference to 'object'.";
  
  static PyObject *
--- 58,65 ----
  
  
! PyDoc_STRVAR(weakref_ref__doc__,
  "new(object[, callback]) -- create a weak reference to 'object';\n"
  "when 'object' is finalized, 'callback' will be called and passed\n"
! "a reference to 'object'.");
  
  static PyObject *
***************
*** 77,84 ****
  
  
! static char weakref_proxy__doc__[] =
  "proxy(object[, callback]) -- create a proxy object that weakly\n"
  "references 'object'.  'callback', if given, is called with a\n"
! "reference to the proxy when it is about to be finalized.";
  
  static PyObject *
--- 77,84 ----
  
  
! PyDoc_STRVAR(weakref_proxy__doc__,
  "proxy(object[, callback]) -- create a proxy object that weakly\n"
  "references 'object'.  'callback', if given, is called with a\n"
! "reference to the proxy when it is about to be finalized.");
  
  static PyObject *

Index: almodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/almodule.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -d -r1.35 -r1.36
*** almodule.c	8 Dec 2001 18:02:55 -0000	1.35
--- almodule.c	13 Jun 2002 20:32:48 -0000	1.36
***************
*** 273,279 ****
  }
  
! static char alc_SetWidth__doc__[] = 
! "alSetWidth: set the wordsize for integer audio data."
! ;
  
  static PyObject *
--- 273,278 ----
  }
  
! PyDoc_STRVAR(alc_SetWidth__doc__,
! "alSetWidth: set the wordsize for integer audio data.");
  
  static PyObject *
***************
*** 284,290 ****
  
  
! static char alc_GetWidth__doc__[] = 
! "alGetWidth: get the wordsize for integer audio data."
! ;
  
  static PyObject *
--- 283,288 ----
  
  
! PyDoc_STRVAR(alc_GetWidth__doc__,
! "alGetWidth: get the wordsize for integer audio data.");
  
  static PyObject *
***************
*** 295,301 ****
  
  
! static char alc_SetSampFmt__doc__[] = 
! "alSetSampFmt: set the sample format setting in an audio ALconfig structure."
! ;
  
  static PyObject *
--- 293,299 ----
  
  
! PyDoc_STRVAR(alc_SetSampFmt__doc__,
! "alSetSampFmt: set the sample format setting in an audio ALconfig "
! "structure.");
  
  static PyObject *
***************
*** 306,312 ****
  
  
! static char alc_GetSampFmt__doc__[] = 
! "alGetSampFmt: get the sample format setting in an audio ALconfig structure."
! ;
  
  static PyObject *
--- 304,310 ----
  
  
! PyDoc_STRVAR(alc_GetSampFmt__doc__,
! "alGetSampFmt: get the sample format setting in an audio ALconfig "
! "structure.");
  
  static PyObject *
***************
*** 317,323 ****
  
  
! static char alc_SetChannels__doc__[] = 
! "alSetChannels: set the channel settings in an audio ALconfig."
! ;
  
  static PyObject *
--- 315,320 ----
  
  
! PyDoc_STRVAR(alc_SetChannels__doc__,
! "alSetChannels: set the channel settings in an audio ALconfig.");
  
  static PyObject *
***************
*** 328,334 ****
  
  
! static char alc_GetChannels__doc__[] = 
! "alGetChannels: get the channel settings in an audio ALconfig."
! ;
  
  static PyObject *
--- 325,330 ----
  
  
! PyDoc_STRVAR(alc_GetChannels__doc__,
! "alGetChannels: get the channel settings in an audio ALconfig.");
  
  static PyObject *
***************
*** 339,345 ****
  
  
! static char alc_SetFloatMax__doc__[] = 
! "alSetFloatMax: set the maximum value of floating point sample data."
! ;
  
  static PyObject *
--- 335,340 ----
  
  
! PyDoc_STRVAR(alc_SetFloatMax__doc__,
! "alSetFloatMax: set the maximum value of floating point sample data.");
  
  static PyObject *
***************
*** 357,363 ****
  
  
! static char alc_GetFloatMax__doc__[] = 
! "alGetFloatMax: get the maximum value of floating point sample data."
! ;
  
  static PyObject *
--- 352,357 ----
  
  
! PyDoc_STRVAR(alc_GetFloatMax__doc__,
! "alGetFloatMax: get the maximum value of floating point sample data.");
  
  static PyObject *
***************
*** 374,380 ****
  
  
! static char alc_SetDevice__doc__[] = 
! "alSetDevice: set the device setting in an audio ALconfig structure."
! ;
  
  static PyObject *
--- 368,373 ----
  
  
! PyDoc_STRVAR(alc_SetDevice__doc__,
! "alSetDevice: set the device setting in an audio ALconfig structure.");
  
  static PyObject *
***************
*** 385,391 ****
  
  
! static char alc_GetDevice__doc__[] = 
! "alGetDevice: get the device setting in an audio ALconfig structure."
! ;
  
  static PyObject *
--- 378,383 ----
  
  
! PyDoc_STRVAR(alc_GetDevice__doc__,
! "alGetDevice: get the device setting in an audio ALconfig structure.");
  
  static PyObject *
***************
*** 396,402 ****
  
  
! static char alc_SetQueueSize__doc__[] = 
! "alSetQueueSize: set audio port buffer size."
! ;
  
  static PyObject *
--- 388,393 ----
  
  
! PyDoc_STRVAR(alc_SetQueueSize__doc__,
! "alSetQueueSize: set audio port buffer size.");
  
  static PyObject *
***************
*** 407,413 ****
  
  
! static char alc_GetQueueSize__doc__[] = 
! "alGetQueueSize: get audio port buffer size."
! ;
  
  static PyObject *
--- 398,403 ----
  
  
! PyDoc_STRVAR(alc_GetQueueSize__doc__,
! "alGetQueueSize: get audio port buffer size.");
  
  static PyObject *
***************
*** 591,597 ****
  }
  
! static char Alctype__doc__[] = 
! ""
! ;
  
  static PyTypeObject Alctype = {
--- 581,585 ----
  }
  
! PyDoc_STRVAR(Alctype__doc__, "");
  
  static PyTypeObject Alctype = {
***************
*** 625,631 ****
  #ifdef AL_NO_ELEM		/* IRIX 6 */
  
! static char alp_SetConfig__doc__[] = 
! "alSetConfig: set the ALconfig of an audio ALport."
! ;
  
  static PyObject *
--- 613,618 ----
  #ifdef AL_NO_ELEM		/* IRIX 6 */
  
! PyDoc_STRVAR(alp_SetConfig__doc__,
! "alSetConfig: set the ALconfig of an audio ALport.");
  
  static PyObject *
***************
*** 642,648 ****
  
  
! static char alp_GetConfig__doc__[] = 
! "alGetConfig: get the ALconfig of an audio ALport."
! ;
  
  static PyObject *
--- 629,634 ----
  
  
! PyDoc_STRVAR(alp_GetConfig__doc__,
! "alGetConfig: get the ALconfig of an audio ALport.");
  
  static PyObject *
***************
*** 658,664 ****
  
  
! static char alp_GetResource__doc__[] = 
! "alGetResource: get the resource associated with an audio port."
! ;
  
  static PyObject *
--- 644,649 ----
  
  
! PyDoc_STRVAR(alp_GetResource__doc__,
! "alGetResource: get the resource associated with an audio port.");
  
  static PyObject *
***************
*** 675,681 ****
  
  
! static char alp_GetFD__doc__[] = 
! "alGetFD: get the file descriptor for an audio port."
! ;
  
  static PyObject *
--- 660,665 ----
  
  
! PyDoc_STRVAR(alp_GetFD__doc__,
! "alGetFD: get the file descriptor for an audio port.");
  
  static PyObject *
***************
*** 694,700 ****
  
  
! static char alp_GetFilled__doc__[] = 
! "alGetFilled: return the number of filled sample frames in an audio port."
! ;
  
  static PyObject *
--- 678,684 ----
  
  
! PyDoc_STRVAR(alp_GetFilled__doc__,
! "alGetFilled: return the number of filled sample frames in "
! "an audio port.");
  
  static PyObject *
***************
*** 711,717 ****
  
  
! static char alp_GetFillable__doc__[] = 
! "alGetFillable: report the number of unfilled sample frames in an audio port."
! ;
  
  static PyObject *
--- 695,701 ----
  
  
! PyDoc_STRVAR(alp_GetFillable__doc__,
! "alGetFillable: report the number of unfilled sample frames "
! "in an audio port.");
  
  static PyObject *
***************
*** 728,734 ****
  
  
! static char alp_ReadFrames__doc__[] = 
! "alReadFrames: read sample frames from an audio port."
! ;
  
  static PyObject *
--- 712,717 ----
  
  
! PyDoc_STRVAR(alp_ReadFrames__doc__,
! "alReadFrames: read sample frames from an audio port.");
  
  static PyObject *
***************
*** 797,803 ****
  
  
! static char alp_DiscardFrames__doc__[] = 
! "alDiscardFrames: discard audio from an audio port."
! ;
  
  static PyObject *
--- 780,785 ----
  
  
! PyDoc_STRVAR(alp_DiscardFrames__doc__,
! "alDiscardFrames: discard audio from an audio port.");
  
  static PyObject *
***************
*** 820,826 ****
  
  
! static char alp_ZeroFrames__doc__[] = 
! "alZeroFrames: write zero-valued sample frames to an audio port."
! ;
  
  static PyObject *
--- 802,807 ----
  
  
! PyDoc_STRVAR(alp_ZeroFrames__doc__,
! "alZeroFrames: write zero-valued sample frames to an audio port.");
  
  static PyObject *
***************
*** 846,852 ****
  
  
! static char alp_SetFillPoint__doc__[] = 
! "alSetFillPoint: set low- or high-water mark for an audio port."
! ;
  
  static PyObject *
--- 827,832 ----
  
  
! PyDoc_STRVAR(alp_SetFillPoint__doc__,
! "alSetFillPoint: set low- or high-water mark for an audio port.");
  
  static PyObject *
***************
*** 866,872 ****
  
  
! static char alp_GetFillPoint__doc__[] = 
! "alGetFillPoint: get low- or high-water mark for an audio port."
! ;
  
  static PyObject *
--- 846,851 ----
  
  
! PyDoc_STRVAR(alp_GetFillPoint__doc__,
! "alGetFillPoint: get low- or high-water mark for an audio port.");
  
  static PyObject *
***************
*** 885,891 ****
  
  
! static char alp_GetFrameNumber__doc__[] = 
! "alGetFrameNumber: get the absolute sample frame number associated with a port."
! ;
  
  static PyObject *
--- 864,870 ----
  
  
! PyDoc_STRVAR(alp_GetFrameNumber__doc__,
! "alGetFrameNumber: get the absolute sample frame number "
! "associated with a port.");
  
  static PyObject *
***************
*** 904,910 ****
  
  
! static char alp_GetFrameTime__doc__[] = 
! "alGetFrameTime: get the time at which a sample frame came in or will go out."
! ;
  
  static PyObject *
--- 883,889 ----
  
  
! PyDoc_STRVAR(alp_GetFrameTime__doc__,
! "alGetFrameTime: get the time at which a sample frame came "
! "in or will go out.");
  
  static PyObject *
***************
*** 932,938 ****
  
  
! static char alp_WriteFrames__doc__[] = 
! "alWriteFrames: write sample frames to an audio port."
! ;
  
  static PyObject *
--- 911,916 ----
  
  
! PyDoc_STRVAR(alp_WriteFrames__doc__,
! "alWriteFrames: write sample frames to an audio port.");
  
  static PyObject *
***************
*** 998,1004 ****
  
  
! static char alp_ClosePort__doc__[] = 
! "alClosePort: close an audio port."
! ;
  
  static PyObject *
--- 976,980 ----
  
  
! PyDoc_STRVAR(alp_ClosePort__doc__, "alClosePort: close an audio port.");
  
  static PyObject *
***************
*** 1315,1321 ****
  }
  
! static char Alptype__doc__[] = 
! ""
! ;
  
  static PyTypeObject Alptype = {
--- 1291,1295 ----
  }
  
! PyDoc_STRVAR(Alptype__doc__, "");
  
  static PyTypeObject Alptype = {
***************
*** 1350,1356 ****
  #ifdef AL_NO_ELEM		/* IRIX 6 */
  
! static char al_NewConfig__doc__[] =
! "alNewConfig: create and initialize an audio ALconfig structure."
! ;
  
  static PyObject *
--- 1324,1329 ----
  #ifdef AL_NO_ELEM		/* IRIX 6 */
  
! PyDoc_STRVAR(al_NewConfig__doc__,
! "alNewConfig: create and initialize an audio ALconfig structure.");
  
  static PyObject *
***************
*** 1366,1372 ****
  }
  
! static char al_OpenPort__doc__[] =
! "alOpenPort: open an audio port."
! ;
  
  static PyObject *
--- 1339,1344 ----
  }
  
! PyDoc_STRVAR(al_OpenPort__doc__,
! "alOpenPort: open an audio port.");
  
  static PyObject *
***************
*** 1384,1390 ****
  }
  
! static char al_Connect__doc__[] =
! "alConnect: connect two audio I/O resources."
! ;
  
  static PyObject *
--- 1356,1361 ----
  }
  
! PyDoc_STRVAR(al_Connect__doc__,
! "alConnect: connect two audio I/O resources.");
  
  static PyObject *
***************
*** 1424,1430 ****
  }
  
! static char al_Disconnect__doc__[] =
! "alDisconnect: delete a connection between two audio I/O resources."
! ;
  
  static PyObject *
--- 1395,1400 ----
  }
  
! PyDoc_STRVAR(al_Disconnect__doc__,
! "alDisconnect: delete a connection between two audio I/O resources.");
  
  static PyObject *
***************
*** 1441,1447 ****
  }
  
! static char al_GetParams__doc__[] =
! "alGetParams: get the values of audio resource parameters."
! ;
  
  static PyObject *
--- 1411,1416 ----
  }
  
! PyDoc_STRVAR(al_GetParams__doc__,
! "alGetParams: get the values of audio resource parameters.");
  
  static PyObject *
***************
*** 1586,1592 ****
  }
  
! static char al_SetParams__doc__[] =
! "alSetParams: set the values of audio resource parameters."
! ;
  
  static PyObject *
--- 1555,1560 ----
  }
  
! PyDoc_STRVAR(al_SetParams__doc__,
! "alSetParams: set the values of audio resource parameters.");
  
  static PyObject *
***************
*** 1632,1638 ****
  }
  
! static char al_QueryValues__doc__[] =
! "alQueryValues: get the set of possible values for a parameter."
! ;
  
  static PyObject *
--- 1600,1605 ----
  }
  
! PyDoc_STRVAR(al_QueryValues__doc__,
! "alQueryValues: get the set of possible values for a parameter.");
  
  static PyObject *
***************
*** 1712,1718 ****
  }
  
! static char al_GetParamInfo__doc__[] =
! "alGetParamInfo: get information about a parameter on a particular audio resource."
! ;
  
  static PyObject *
--- 1679,1685 ----
  }
  
! PyDoc_STRVAR(al_GetParamInfo__doc__,
! "alGetParamInfo: get information about a parameter on "
! "a particular audio resource.");
  
  static PyObject *
***************
*** 1795,1801 ****
  }
  
! static char al_GetResourceByName__doc__[] =
! "alGetResourceByName: find an audio resource by name."
! ;
  
  static PyObject *
--- 1762,1767 ----
  }
  
! PyDoc_STRVAR(al_GetResourceByName__doc__,
! "alGetResourceByName: find an audio resource by name.");
  
  static PyObject *
***************
*** 1812,1818 ****
  }
  
! static char al_IsSubtype__doc__[] =
! "alIsSubtype: indicate if one resource type is a subtype of another."
! ;
  
  static PyObject *
--- 1778,1783 ----
  }
  
! PyDoc_STRVAR(al_IsSubtype__doc__,
! "alIsSubtype: indicate if one resource type is a subtype of another.");
  
  static PyObject *
***************
*** 1826,1832 ****
  }
  
! static char al_SetErrorHandler__doc__[] =
! ""
! ;
  
  static PyObject *
--- 1791,1795 ----
  }
  
! PyDoc_STRVAR(al_SetErrorHandler__doc__, "");
  
  static PyObject *
***************
*** 2025,2031 ****
  /* Initialization function for the module (*must* be called inital) */
  
! static char al_module_documentation[] = 
! ""
! ;
  
  void
--- 1988,1992 ----
  /* Initialization function for the module (*must* be called inital) */
  
! PyDoc_STRVAR(al_module_documentation, "");
  
  void

Index: arraymodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/arraymodule.c,v
retrieving revision 2.73
retrieving revision 2.74
diff -C2 -d -r2.73 -r2.74
*** arraymodule.c	13 May 2002 10:14:59 -0000	2.73
--- arraymodule.c	13 Jun 2002 20:32:48 -0000	2.74
***************
*** 821,828 ****
  }
  
! static char count_doc [] =
  "count(x)\n\
  \n\
! Return number of occurences of x in the array.";
  
  static PyObject *
--- 821,828 ----
  }
  
! PyDoc_STRVAR(count_doc,
  "count(x)\n\
  \n\
! Return number of occurences of x in the array.");
  
  static PyObject *
***************
*** 848,855 ****
  }
  
! static char index_doc [] =
  "index(x)\n\
  \n\
! Return index of first occurence of x in the array.";
  
  static PyObject *
--- 848,855 ----
  }
  
! PyDoc_STRVAR(index_doc,
  "index(x)\n\
  \n\
! Return index of first occurence of x in the array.");
  
  static PyObject *
***************
*** 879,886 ****
  }
  
! static char remove_doc [] =
  "remove(x)\n\
  \n\
! Remove the first occurence of x in the array.";
  
  static PyObject *
--- 879,886 ----
  }
  
! PyDoc_STRVAR(remove_doc,
  "remove(x)\n\
  \n\
! Remove the first occurence of x in the array.");
  
  static PyObject *
***************
*** 910,917 ****
  }
  
! static char pop_doc [] =
  "pop([i])\n\
  \n\
! Return the i-th element and delete it from the array. i defaults to -1.";
  
  static PyObject *
--- 910,917 ----
  }
  
! PyDoc_STRVAR(pop_doc,
  "pop([i])\n\
  \n\
! Return the i-th element and delete it from the array. i defaults to -1.");
  
  static PyObject *
***************
*** 928,935 ****
  }
  
! static char extend_doc [] =
  "extend(array)\n\
  \n\
!  Append array items to the end of the array.";
  
  static PyObject *
--- 928,935 ----
  }
  
! PyDoc_STRVAR(extend_doc,
  "extend(array)\n\
  \n\
!  Append array items to the end of the array.");
  
  static PyObject *
***************
*** 943,950 ****
  }
  
! static char insert_doc [] =
  "insert(i,x)\n\
  \n\
! Insert a new item x into the array before position i.";
  
  
--- 943,950 ----
  }
  
! PyDoc_STRVAR(insert_doc,
  "insert(i,x)\n\
  \n\
! Insert a new item x into the array before position i.");
  
  
***************
*** 965,969 ****
  }
  
! static char buffer_info_doc [] =
  "buffer_info() -> (address, length)\n\
  \n\
--- 965,969 ----
  }
  
! PyDoc_STRVAR(buffer_info_doc,
  "buffer_info() -> (address, length)\n\
  \n\
***************
*** 971,975 ****
  the length in items of the buffer used to hold array's contents\n\
  The length should be multiplied by the itemsize attribute to calculate\n\
! the buffer length in bytes.";
  
  
--- 971,975 ----
  the length in items of the buffer used to hold array's contents\n\
  The length should be multiplied by the itemsize attribute to calculate\n\
! the buffer length in bytes.");
  
  
***************
*** 983,990 ****
  }
  
! static char append_doc [] =
  "append(x)\n\
  \n\
! Append new value x to the end of the array.";
  
  
--- 983,990 ----
  }
  
! PyDoc_STRVAR(append_doc,
  "append(x)\n\
  \n\
! Append new value x to the end of the array.");
  
  
***************
*** 1043,1051 ****
  }
  
! static char byteswap_doc [] =
  "byteswap()\n\
  \n\
  Byteswap all items of the array.  If the items in the array are not 1, 2,\n\
! 4, or 8 bytes in size, RuntimeError is raised.";
  
  static PyObject *
--- 1043,1051 ----
  }
  
! PyDoc_STRVAR(byteswap_doc,
  "byteswap()\n\
  \n\
  Byteswap all items of the array.  If the items in the array are not 1, 2,\n\
! 4, or 8 bytes in size, RuntimeError is raised.");
  
  static PyObject *
***************
*** 1079,1086 ****
  }
  
! static char reverse_doc [] =
  "reverse()\n\
  \n\
! Reverse the order of the items in the array.";
  
  static PyObject *
--- 1079,1086 ----
  }
  
! PyDoc_STRVAR(reverse_doc,
  "reverse()\n\
  \n\
! Reverse the order of the items in the array.");
  
  static PyObject *
***************
*** 1131,1139 ****
  }
  
! static char fromfile_doc [] =
  "fromfile(f, n)\n\
  \n\
  Read n objects from the file object f and append them to the end of the\n\
! array.  Also called as read.";
  
  
--- 1131,1139 ----
  }
  
! PyDoc_STRVAR(fromfile_doc,
  "fromfile(f, n)\n\
  \n\
  Read n objects from the file object f and append them to the end of the\n\
! array.  Also called as read.");
  
  
***************
*** 1162,1170 ****
  }
  
! static char tofile_doc [] =
  "tofile(f)\n\
  \n\
  Write all items (as machine values) to the file object f.  Also called as\n\
! write.";
  
  
--- 1162,1170 ----
  }
  
! PyDoc_STRVAR(tofile_doc,
  "tofile(f)\n\
  \n\
  Write all items (as machine values) to the file object f.  Also called as\n\
! write.");
  
  
***************
*** 1208,1215 ****
  }
  
! static char fromlist_doc [] =
  "fromlist(list)\n\
  \n\
! Append items to array from list.";
  
  
--- 1208,1215 ----
  }
  
! PyDoc_STRVAR(fromlist_doc,
  "fromlist(list)\n\
  \n\
! Append items to array from list.");
  
  
***************
*** 1234,1241 ****
  }
  
! static char tolist_doc [] =
  "tolist() -> list\n\
  \n\
! Convert array to an ordinary list with the same items.";
  
  
--- 1234,1241 ----
  }
  
! PyDoc_STRVAR(tolist_doc,
  "tolist() -> list\n\
  \n\
! Convert array to an ordinary list with the same items.");
  
  
***************
*** 1270,1278 ****
  }
  
! static char fromstring_doc [] =
  "fromstring(string)\n\
  \n\
  Appends items from the string, interpreting it as an array of machine\n\
! values,as if it had been read from a file using the fromfile() method).";
  
  
--- 1270,1278 ----
  }
  
! PyDoc_STRVAR(fromstring_doc,
  "fromstring(string)\n\
  \n\
  Appends items from the string, interpreting it as an array of machine\n\
! values,as if it had been read from a file using the fromfile() method).");
  
  
***************
*** 1286,1294 ****
  }
  
! static char tostring_doc [] =
  "tostring() -> string\n\
  \n\
  Convert the array to an array of machine values and return the string\n\
! representation.";
  
  
--- 1286,1294 ----
  }
  
! PyDoc_STRVAR(tostring_doc,
  "tostring() -> string\n\
  \n\
  Convert the array to an array of machine values and return the string\n\
! representation.");
  
  
***************
*** 1326,1330 ****
  }
  
! static char fromunicode_doc[] =
  "fromunicode(ustr)\n\
  \n\
--- 1326,1330 ----
  }
  
! PyDoc_STRVAR(fromunicode_doc,
  "fromunicode(ustr)\n\
  \n\
***************
*** 1332,1336 ****
  The array must be a type 'u' array; otherwise a ValueError\n\
  is raised.  Use array.fromstring(ustr.decode(...)) to\n\
! append Unicode data to an array of some other type.";
  
  
--- 1332,1336 ----
  The array must be a type 'u' array; otherwise a ValueError\n\
  is raised.  Use array.fromstring(ustr.decode(...)) to\n\
! append Unicode data to an array of some other type.");
  
  
***************
*** 1348,1352 ****
  }
  
! static char tounicode_doc [] =
  "tounicode() -> unicode\n\
  \n\
--- 1348,1352 ----
  }
  
! PyDoc_STRVAR(tounicode_doc,
  "tounicode() -> unicode\n\
  \n\
***************
*** 1354,1358 ****
  a type 'u' array; otherwise a ValueError is raised.  Use\n\
  array.tostring().decode() to obtain a unicode string from\n\
! an array of some other type.";
  
  #endif /* Py_USING_UNICODE */
--- 1354,1358 ----
  a type 'u' array; otherwise a ValueError is raised.  Use\n\
  array.tostring().decode() to obtain a unicode string from\n\
! an array of some other type.");
  
  #endif /* Py_USING_UNICODE */
***************
*** 1622,1626 ****
  
  
! static char module_doc [] =
  "This module defines an object type which can efficiently represent\n\
  an array of basic values: characters, integers, floating point\n\
--- 1622,1626 ----
  
  
! PyDoc_STRVAR(module_doc,
  "This module defines an object type which can efficiently represent\n\
  an array of basic values: characters, integers, floating point\n\
***************
*** 1647,1653 ****
  \n\
  array(typecode [, initializer]) -- create a new array\n\
! ";
  
! static char arraytype_doc [] =
  "array(typecode [, initializer]) -> array\n\
  \n\
--- 1647,1653 ----
  \n\
  array(typecode [, initializer]) -- create a new array\n\
! ");
  
! PyDoc_STRVAR(arraytype_doc,
  "array(typecode [, initializer]) -> array\n\
  \n\
***************
*** 1684,1688 ****
  typecode -- the typecode character used to create the array\n\
  itemsize -- the length in bytes of one array item\n\
! ";
  
  statichere PyTypeObject Arraytype = {
--- 1684,1688 ----
  typecode -- the typecode character used to create the array\n\
  itemsize -- the length in bytes of one array item\n\
! ");
  
  statichere PyTypeObject Arraytype = {

Index: binascii.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/binascii.c,v
retrieving revision 2.33
retrieving revision 2.34
diff -C2 -d -r2.33 -r2.34
*** binascii.c	19 Dec 2001 04:41:35 -0000	2.33
--- binascii.c	13 Jun 2002 20:32:48 -0000	2.34
***************
*** 180,184 ****
  };
  
! static char doc_a2b_uu[] = "(ascii) -> bin. Decode a line of uuencoded data";
  
  static PyObject *
--- 180,184 ----
  };
  
! PyDoc_STRVAR(doc_a2b_uu, "(ascii) -> bin. Decode a line of uuencoded data");
  
  static PyObject *
***************
*** 255,259 ****
  }
  
! static char doc_b2a_uu[] = "(bin) -> ascii. Uuencode line of data";
  	
  static PyObject *
--- 255,259 ----
  }
  
! PyDoc_STRVAR(doc_b2a_uu, "(bin) -> ascii. Uuencode line of data");
  	
  static PyObject *
***************
*** 331,335 ****
  }
  
! static char doc_a2b_base64[] = "(ascii) -> bin. Decode a line of base64 data";
  
  static PyObject *
--- 331,335 ----
  }
  
! PyDoc_STRVAR(doc_a2b_base64, "(ascii) -> bin. Decode a line of base64 data");
  
  static PyObject *
***************
*** 418,422 ****
  }
  
! static char doc_b2a_base64[] = "(bin) -> ascii. Base64-code line of data";
  	
  static PyObject *
--- 418,422 ----
  }
  
! PyDoc_STRVAR(doc_b2a_base64, "(bin) -> ascii. Base64-code line of data");
  	
  static PyObject *
***************
*** 471,475 ****
  }
  
! static char doc_a2b_hqx[] = "ascii -> bin, done. Decode .hqx coding";
  
  static PyObject *
--- 471,475 ----
  }
  
! PyDoc_STRVAR(doc_a2b_hqx, "ascii -> bin, done. Decode .hqx coding");
  
  static PyObject *
***************
*** 535,539 ****
  }
  
! static char doc_rlecode_hqx[] = "Binhex RLE-code binary data";
  
  static PyObject *
--- 535,539 ----
  }
  
! PyDoc_STRVAR(doc_rlecode_hqx, "Binhex RLE-code binary data");
  
  static PyObject *
***************
*** 582,586 ****
  }
  
! static char doc_b2a_hqx[] = "Encode .hqx data";
  	
  static PyObject *
--- 582,586 ----
  }
  
! PyDoc_STRVAR(doc_b2a_hqx, "Encode .hqx data");
  	
  static PyObject *
***************
*** 622,626 ****
  }
  
! static char doc_rledecode_hqx[] = "Decode hexbin RLE-coded string";
  	
  static PyObject *
--- 622,626 ----
  }
  
! PyDoc_STRVAR(doc_rledecode_hqx, "Decode hexbin RLE-coded string");
  	
  static PyObject *
***************
*** 718,723 ****
  }
  
! static char doc_crc_hqx[] =
! "(data, oldcrc) -> newcrc. Compute hqx CRC incrementally";
  
  static PyObject *
--- 718,723 ----
  }
  
! PyDoc_STRVAR(doc_crc_hqx,
! "(data, oldcrc) -> newcrc. Compute hqx CRC incrementally");
  
  static PyObject *
***************
*** 738,743 ****
  }
  
! static char doc_crc32[] =
! "(data, oldcrc = 0) -> newcrc. Compute CRC-32 incrementally";
  
  /*  Crc - 32 BIT ANSI X3.66 CRC checksum files
--- 738,743 ----
  }
  
! PyDoc_STRVAR(doc_crc32,
! "(data, oldcrc = 0) -> newcrc. Compute CRC-32 incrementally");
  
  /*  Crc - 32 BIT ANSI X3.66 CRC checksum files
***************
*** 913,920 ****
  }
  
! static char doc_hexlify[] =
  "b2a_hex(data) -> s; Hexadecimal representation of binary data.\n\
  \n\
! This function is also available as \"hexlify()\".";
  
  
--- 913,920 ----
  }
  
! PyDoc_STRVAR(doc_hexlify,
  "b2a_hex(data) -> s; Hexadecimal representation of binary data.\n\
  \n\
! This function is also available as \"hexlify()\".");
  
  
***************
*** 979,987 ****
  }
  
! static char doc_unhexlify[] =
  "a2b_hex(hexstr) -> s; Binary data of hexadecimal representation.\n\
  \n\
  hexstr must contain an even number of hex digits (upper or lower case).\n\
! This function is also available as \"unhexlify()\"";
  
  static int table_hex[128] = {
--- 979,987 ----
  }
  
! PyDoc_STRVAR(doc_unhexlify,
  "a2b_hex(hexstr) -> s; Binary data of hexadecimal representation.\n\
  \n\
  hexstr must contain an even number of hex digits (upper or lower case).\n\
! This function is also available as \"unhexlify()\"");
  
  static int table_hex[128] = {
***************
*** 1000,1004 ****
  #define MAXLINESIZE 76
  
! static char doc_a2b_qp[] = "Decode a string of qp-encoded data";
  
  static PyObject* 
--- 1000,1004 ----
  #define MAXLINESIZE 76
  
! PyDoc_STRVAR(doc_a2b_qp, "Decode a string of qp-encoded data");
  
  static PyObject* 
***************
*** 1089,1093 ****
  }
  
! static char doc_b2a_qp[] = 
  "b2a_qp(data, quotetabs=0, istext=1, header=0) -> s; \n\
   Encode a string using quoted-printable encoding. \n\
--- 1089,1093 ----
  }
  
! PyDoc_STRVAR(doc_b2a_qp,
  "b2a_qp(data, quotetabs=0, istext=1, header=0) -> s; \n\
   Encode a string using quoted-printable encoding. \n\
***************
*** 1095,1099 ****
  On encoding, when istext is set, newlines are not encoded, and white \n\
  space at end of lines is.  When istext is not set, \\r and \\n (CR/LF) are \n\
! both encoded.  When quotetabs is set, space and tabs are encoded.";
  
  /* XXX: This is ridiculously complicated to be backward compatible
--- 1095,1099 ----
  On encoding, when istext is set, newlines are not encoded, and white \n\
  space at end of lines is.  When istext is not set, \\r and \\n (CR/LF) are \n\
! both encoded.  When quotetabs is set, space and tabs are encoded.");
  
  /* XXX: This is ridiculously complicated to be backward compatible
***************
*** 1296,1300 ****
  
  /* Initialization function for the module (*must* be called initbinascii) */
! static char doc_binascii[] = "Conversion between binary data and ASCII";
  
  DL_EXPORT(void)
--- 1296,1300 ----
  
  /* Initialization function for the module (*must* be called initbinascii) */
! PyDoc_STRVAR(doc_binascii, "Conversion between binary data and ASCII");
  
  DL_EXPORT(void)

Index: cPickle.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/cPickle.c,v
retrieving revision 2.84
retrieving revision 2.85
diff -C2 -d -r2.84 -r2.85
*** cPickle.c	1 May 2002 20:36:39 -0000	2.84
--- cPickle.c	13 Jun 2002 20:32:48 -0000	2.85
***************
*** 1,12 ****
- static char cPickle_module_documentation[] =
- "C implementation and optimization of the Python pickle module\n"
- "\n"
- "cPickle.c,v 1.71 1999/07/11 13:30:34 jim Exp\n"
- ;
- 
  #include "Python.h"
  #include "cStringIO.h"
  #include "structmember.h"
  
  #ifndef Py_eval_input
  #include <graminit.h>
--- 1,11 ----
  #include "Python.h"
  #include "cStringIO.h"
  #include "structmember.h"
  
+ PyDoc_STRVAR(cPickle_module_documentation,
+ "C implementation and optimization of the Python pickle module\n"
+ "\n"
+ "cPickle.c,v 1.71 1999/07/11 13:30:34 jim Exp\n");
+ 
  #ifndef Py_eval_input
  #include <graminit.h>
***************
*** 2512,2517 ****
  };
  
! static char Picklertype__doc__[] =
! "Objects that know how to pickle objects\n";
  
  static PyTypeObject Picklertype = {
--- 2511,2516 ----
  };
  
! PyDoc_STRVAR(Picklertype__doc__,
! "Objects that know how to pickle objects\n");
  
  static PyTypeObject Picklertype = {
***************
*** 4610,4615 ****
  
  
! static char Unpicklertype__doc__[] =
! "Objects that know how to unpickle";
  
  static PyTypeObject Unpicklertype = {
--- 4609,4614 ----
  
  
! PyDoc_STRVAR(Unpicklertype__doc__,
! "Objects that know how to unpickle");
  
  static PyTypeObject Unpicklertype = {

Index: cStringIO.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/cStringIO.c,v
retrieving revision 2.35
retrieving revision 2.36
diff -C2 -d -r2.35 -r2.36
*** cStringIO.c	29 Apr 2002 13:54:48 -0000	2.35
--- cStringIO.c	13 Jun 2002 20:32:48 -0000	2.36
***************
*** 1,3 ****
! static char cStringIO_module_documentation[] = 
  "A simple fast partial StringIO replacement.\n"
  "\n"
--- 1,8 ----
! 
! #include "Python.h"
! #include "import.h"
! #include "cStringIO.h"
! 
! PyDoc_STRVAR(cStringIO_module_documentation,
  "A simple fast partial StringIO replacement.\n"
  "\n"
***************
*** 26,35 ****
  "go for it. :-)  \n"
  "\n"
! "cStringIO.c,v 1.29 1999/06/15 14:10:27 jim Exp\n"
! ;
! 
! #include "Python.h"
! #include "import.h"
! #include "cStringIO.h"
  
  #define UNLESS(E) if (!(E))
--- 31,35 ----
  "go for it. :-)  \n"
  "\n"
! "cStringIO.c,v 1.29 1999/06/15 14:10:27 jim Exp\n");
  
  #define UNLESS(E) if (!(E))
***************
*** 75,79 ****
  /* IOobject (common) methods */
  
! static char IO_flush__doc__[] = "flush(): does nothing.";
  
  static int
--- 75,79 ----
  /* IOobject (common) methods */
  
! PyDoc_STRVAR(IO_flush__doc__, "flush(): does nothing.");
  
  static int
***************
*** 97,106 ****
  }
  
! static char IO_getval__doc__[] = 
!    "getvalue([use_pos]) -- Get the string value."
!    "\n"
!    "If use_pos is specified and is a true value, then the string returned\n"
!    "will include only the text up to the current file position.\n"
! ;
  
  static PyObject *
--- 97,105 ----
  }
  
! PyDoc_STRVAR(IO_getval__doc__,
! "getvalue([use_pos]) -- Get the string value."
! "\n"
! "If use_pos is specified and is a true value, then the string returned\n"
! "will include only the text up to the current file position.\n");
  
  static PyObject *
***************
*** 128,132 ****
  }
  
! static char IO_isatty__doc__[] = "isatty(): always returns 0";
  
  static PyObject *
--- 127,131 ----
  }
  
! PyDoc_STRVAR(IO_isatty__doc__, "isatty(): always returns 0");
  
  static PyObject *
***************
*** 138,144 ****
  }
  
! static char IO_read__doc__[] = 
! "read([s]) -- Read s characters, or the rest of the string"
! ;
  
  static int
--- 137,142 ----
  }
  
! PyDoc_STRVAR(IO_read__doc__,
! "read([s]) -- Read s characters, or the rest of the string");
  
  static int
***************
*** 170,176 ****
  }
  
! static char IO_readline__doc__[] = 
! "readline() -- Read one line"
! ;
  
  static int
--- 168,172 ----
  }
  
! PyDoc_STRVAR(IO_readline__doc__, "readline() -- Read one line");
  
  static int
***************
*** 208,214 ****
  }
  
! static char IO_readlines__doc__[] = 
! "readlines() -- Read all lines"
! ;
  
  static PyObject *
--- 204,208 ----
  }
  
! PyDoc_STRVAR(IO_readlines__doc__, "readlines() -- Read all lines");
  
  static PyObject *
***************
*** 245,251 ****
  }
  
! static char IO_reset__doc__[] = 
! "reset() -- Reset the file position to the beginning"
! ;
  
  static PyObject *
--- 239,244 ----
  }
  
! PyDoc_STRVAR(IO_reset__doc__,
! "reset() -- Reset the file position to the beginning");
  
  static PyObject *
***************
*** 261,266 ****
  }
  
! static char IO_tell__doc__[] =
! "tell() -- get the current position.";
  
  static PyObject *
--- 254,258 ----
  }
  
! PyDoc_STRVAR(IO_tell__doc__, "tell() -- get the current position.");
  
  static PyObject *
***************
*** 273,278 ****
  }
  
! static char IO_truncate__doc__[] = 
! "truncate(): truncate the file at the current position.";
  
  static PyObject *
--- 265,270 ----
  }
  
! PyDoc_STRVAR(IO_truncate__doc__,
! "truncate(): truncate the file at the current position.");
  
  static PyObject *
***************
*** 295,301 ****
  /* Read-write object methods */
  
! static char O_seek__doc__[] =
  "seek(position)       -- set the current position\n"
! "seek(position, mode) -- mode 0: absolute; 1: relative; 2: relative to EOF";
  
  static PyObject *
--- 287,293 ----
  /* Read-write object methods */
  
! PyDoc_STRVAR(O_seek__doc__,
  "seek(position)       -- set the current position\n"
! "seek(position, mode) -- mode 0: absolute; 1: relative; 2: relative to EOF");
  
  static PyObject *
***************
*** 333,340 ****
  }
  
! static char O_write__doc__[] = 
  "write(s) -- Write a string to the file"
! "\n\nNote (hack:) writing None resets the buffer"
! ;
  
  
--- 325,331 ----
  }
  
! PyDoc_STRVAR(O_write__doc__,
  "write(s) -- Write a string to the file"
! "\n\nNote (hack:) writing None resets the buffer");
  
  
***************
*** 385,389 ****
  }
  
! static char O_close__doc__[] = "close(): explicitly release resources held.";
  
  static PyObject *
--- 376,380 ----
  }
  
! PyDoc_STRVAR(O_close__doc__, "close(): explicitly release resources held.");
  
  static PyObject *
***************
*** 402,407 ****
  
  
! static char O_writelines__doc__[] =
! "writelines(sequence_of_strings): write each string";
  static PyObject *
  O_writelines(Oobject *self, PyObject *args) {
--- 393,398 ----
  
  
! PyDoc_STRVAR(O_writelines__doc__,
! "writelines(sequence_of_strings): write each string");
  static PyObject *
  O_writelines(Oobject *self, PyObject *args) {
***************
*** 484,490 ****
  }
  
! static char Otype__doc__[] = 
! "Simple type for output to strings."
! ;
  
  static PyTypeObject Otype = {
--- 475,479 ----
  }
  
! PyDoc_STRVAR(Otype__doc__, "Simple type for output to strings.");
  
  static PyTypeObject Otype = {
***************
*** 618,624 ****
  
  
! static char Itype__doc__[] = 
! "Simple type for treating strings as input file streams"
! ;
  
  static PyTypeObject Itype = {
--- 607,612 ----
  
  
! PyDoc_STRVAR(Itype__doc__,
! "Simple type for treating strings as input file streams");
  
  static PyTypeObject Itype = {
***************
*** 679,685 ****
  
  
! static char IO_StringIO__doc__[] =
! "StringIO([s]) -- Return a StringIO-like stream for reading or writing"
! ;
  
  static PyObject *
--- 667,672 ----
  
  
! PyDoc_STRVAR(IO_StringIO__doc__,
! "StringIO([s]) -- Return a StringIO-like stream for reading or writing");
  
  static PyObject *

Index: cmathmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/cmathmodule.c,v
retrieving revision 2.29
retrieving revision 2.30
diff -C2 -d -r2.29 -r2.30
*** cmathmodule.c	1 Apr 2002 03:45:06 -0000	2.29
--- cmathmodule.c	13 Jun 2002 20:32:49 -0000	2.30
***************
*** 30,37 ****
  }
  
! static char c_acos_doc[] =
  "acos(x)\n"
  "\n"
! "Return the arc cosine of x.";
  
  
--- 30,37 ----
  }
  
! PyDoc_STRVAR(c_acos_doc,
  "acos(x)\n"
  "\n"
! "Return the arc cosine of x.");
  
  
***************
*** 46,53 ****
  }
  
! static char c_acosh_doc[] =
  "acosh(x)\n"
  "\n"
! "Return the hyperbolic arccosine of x.";
  
  
--- 46,53 ----
  }
  
! PyDoc_STRVAR(c_acosh_doc,
  "acosh(x)\n"
  "\n"
! "Return the hyperbolic arccosine of x.");
  
  
***************
*** 63,70 ****
  }
  
! static char c_asin_doc[] =
  "asin(x)\n"
  "\n"
! "Return the arc sine of x.";
  
  
--- 63,70 ----
  }
  
! PyDoc_STRVAR(c_asin_doc,
  "asin(x)\n"
  "\n"
! "Return the arc sine of x.");
  
  
***************
*** 79,86 ****
  }
  
! static char c_asinh_doc[] =
  "asinh(x)\n"
  "\n"
! "Return the hyperbolic arc sine of x.";
  
  
--- 79,86 ----
  }
  
! PyDoc_STRVAR(c_asinh_doc,
  "asinh(x)\n"
  "\n"
! "Return the hyperbolic arc sine of x.");
  
  
***************
*** 91,98 ****
  }
  
! static char c_atan_doc[] =
  "atan(x)\n"
  "\n"
! "Return the arc tangent of x.";
  
  
--- 91,98 ----
  }
  
! PyDoc_STRVAR(c_atan_doc,
  "atan(x)\n"
  "\n"
! "Return the arc tangent of x.");
  
  
***************
*** 103,110 ****
  }
  
! static char c_atanh_doc[] =
  "atanh(x)\n"
  "\n"
! "Return the hyperbolic arc tangent of x.";
  
  
--- 103,110 ----
  }
  
! PyDoc_STRVAR(c_atanh_doc,
  "atanh(x)\n"
  "\n"
! "Return the hyperbolic arc tangent of x.");
  
  
***************
*** 118,125 ****
  }
  
! static char c_cos_doc[] =
  "cos(x)\n"
  "n"
! "Return the cosine of x.";
  
  
--- 118,125 ----
  }
  
! PyDoc_STRVAR(c_cos_doc,
  "cos(x)\n"
  "n"
! "Return the cosine of x.");
  
  
***************
*** 133,140 ****
  }
  
! static char c_cosh_doc[] =
  "cosh(x)\n"
  "n"
! "Return the hyperbolic cosine of x.";
  
  
--- 133,140 ----
  }
  
! PyDoc_STRVAR(c_cosh_doc,
  "cosh(x)\n"
  "n"
! "Return the hyperbolic cosine of x.");
  
  
***************
*** 149,156 ****
  }
  
! static char c_exp_doc[] =
  "exp(x)\n"
  "\n"
! "Return the exponential value e**x.";
  
  
--- 149,156 ----
  }
  
! PyDoc_STRVAR(c_exp_doc,
  "exp(x)\n"
  "\n"
! "Return the exponential value e**x.");
  
  
***************
*** 165,172 ****
  }
  
! static char c_log_doc[] =
  "log(x)\n"
  "\n"
! "Return the natural logarithm of x.";
  
  
--- 165,172 ----
  }
  
! PyDoc_STRVAR(c_log_doc,
  "log(x)\n"
  "\n"
! "Return the natural logarithm of x.");
  
  
***************
*** 181,188 ****
  }
  
! static char c_log10_doc[] =
  "log10(x)\n"
  "\n"
! "Return the base-10 logarithm of x.";
  
  
--- 181,188 ----
  }
  
! PyDoc_STRVAR(c_log10_doc,
  "log10(x)\n"
  "\n"
! "Return the base-10 logarithm of x.");
  
  
***************
*** 207,214 ****
  }
  
! static char c_sin_doc[] =
  "sin(x)\n"
  "\n"
! "Return the sine of x.";
  
  
--- 207,214 ----
  }
  
! PyDoc_STRVAR(c_sin_doc,
  "sin(x)\n"
  "\n"
! "Return the sine of x.");
  
  
***************
*** 222,229 ****
  }
  
! static char c_sinh_doc[] =
  "sinh(x)\n"
  "\n"
! "Return the hyperbolic sine of x.";
  
  
--- 222,229 ----
  }
  
! PyDoc_STRVAR(c_sinh_doc,
  "sinh(x)\n"
  "\n"
! "Return the hyperbolic sine of x.");
  
  
***************
*** 254,261 ****
  }
  
! static char c_sqrt_doc[] =
  "sqrt(x)\n"
  "\n"
! "Return the square root of x.";
  
  
--- 254,261 ----
  }
  
! PyDoc_STRVAR(c_sqrt_doc,
  "sqrt(x)\n"
  "\n"
! "Return the square root of x.");
  
  
***************
*** 281,288 ****
  }
  
! static char c_tan_doc[] =
  "tan(x)\n"
  "\n"
! "Return the tangent of x.";
  
  
--- 281,288 ----
  }
  
! PyDoc_STRVAR(c_tan_doc,
  "tan(x)\n"
  "\n"
! "Return the tangent of x.");
  
  
***************
*** 308,315 ****
  }
  
! static char c_tanh_doc[] =
  "tanh(x)\n"
  "\n"
! "Return the hyperbolic tangent of x.";
  
  
--- 308,315 ----
  }
  
! PyDoc_STRVAR(c_tanh_doc,
  "tanh(x)\n"
  "\n"
! "Return the hyperbolic tangent of x.");
  
  
***************
*** 368,374 ****
  
  
! static char module_doc[] =
  "This module is always available. It provides access to mathematical\n"
! "functions for complex numbers.";
  
  static PyMethodDef cmath_methods[] = {
--- 368,374 ----
  
  
! PyDoc_STRVAR(module_doc,
  "This module is always available. It provides access to mathematical\n"
! "functions for complex numbers.");
  
  static PyMethodDef cmath_methods[] = {

Index: cryptmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/cryptmodule.c,v
retrieving revision 2.12
retrieving revision 2.13
diff -C2 -d -r2.12 -r2.13
*** cryptmodule.c	11 Jun 2002 06:22:31 -0000	2.12
--- cryptmodule.c	13 Jun 2002 20:32:49 -0000	2.13
***************
*** 24,34 ****
  }
  
! static char crypt_crypt__doc__[] = "\
! crypt(word, salt) -> string\n\
  word will usually be a user's password. salt is a 2-character string\n\
  which will be used to select one of 4096 variations of DES. The characters\n\
  in salt must be either \".\", \"/\", or an alphanumeric character. Returns\n\
  the hashed password as a string, which will be composed of characters from\n\
! the same alphabet as the salt.";
  
  
--- 24,34 ----
  }
  
! PyDoc_STRVAR(crypt_crypt__doc__,
! "crypt(word, salt) -> string\n\
  word will usually be a user's password. salt is a 2-character string\n\
  which will be used to select one of 4096 variations of DES. The characters\n\
  in salt must be either \".\", \"/\", or an alphanumeric character. Returns\n\
  the hashed password as a string, which will be composed of characters from\n\
! the same alphabet as the salt.");
  
  

Index: errnomodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/errnomodule.c,v
retrieving revision 2.16
retrieving revision 2.17
diff -C2 -d -r2.16 -r2.17
*** errnomodule.c	26 Jan 2002 17:58:02 -0000	2.16
--- errnomodule.c	13 Jun 2002 20:32:49 -0000	2.17
***************
*** 44,48 ****
  }
  
! static char errno__doc__ [] =
  "This module makes available standard errno system symbols.\n\
  \n\
--- 44,48 ----
  }
  
! PyDoc_STRVAR(errno__doc__,
  "This module makes available standard errno system symbols.\n\
  \n\
***************
*** 56,60 ****
  \n\
  To map error codes to error messages, use the function os.strerror(),\n\
! e.g. os.strerror(2) could return 'No such file or directory'.";
  
  DL_EXPORT(void)
--- 56,60 ----
  \n\
  To map error codes to error messages, use the function os.strerror(),\n\
! e.g. os.strerror(2) could return 'No such file or directory'.");
  
  DL_EXPORT(void)

Index: fcntlmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/fcntlmodule.c,v
retrieving revision 2.34
retrieving revision 2.35
diff -C2 -d -r2.34 -r2.35
*** fcntlmodule.c	3 Mar 2002 02:59:15 -0000	2.34
--- fcntlmodule.c	13 Jun 2002 20:32:49 -0000	2.35
***************
*** 73,78 ****
  }
  
! static char fcntl_doc [] =
! 
  "fcntl(fd, opt, [arg])\n\
  \n\
--- 73,77 ----
  }
  
! PyDoc_STRVAR(fcntl_doc,
  "fcntl(fd, opt, [arg])\n\
  \n\
***************
*** 85,89 ****
  of the arg string is not allowed to exceed 1024 bytes. If the arg given\n\
  is an integer or if none is specified, the result value is an integer\n\
! corresponding to the return value of the fcntl call in the C code.";
  
  
--- 84,88 ----
  of the arg string is not allowed to exceed 1024 bytes. If the arg given\n\
  is an integer or if none is specified, the result value is an integer\n\
! corresponding to the return value of the fcntl call in the C code.");
  
  
***************
*** 137,141 ****
  }
  
! static char ioctl_doc [] =
  "ioctl(fd, opt, [arg])\n\
  \n\
--- 136,140 ----
  }
  
! PyDoc_STRVAR(ioctl_doc,
  "ioctl(fd, opt, [arg])\n\
  \n\
***************
*** 148,152 ****
  The length of the arg string is not allowed to exceed 1024 bytes. If the arg\n\
  given is an integer or if none is specified, the result value is an integer\n\
! corresponding to the return value of the ioctl call in the C code.";
  
  
--- 147,151 ----
  The length of the arg string is not allowed to exceed 1024 bytes. If the arg\n\
  given is an integer or if none is specified, the result value is an integer\n\
! corresponding to the return value of the ioctl call in the C code.");
  
  
***************
*** 203,212 ****
  }
  
! static char flock_doc [] =
  "flock(fd, operation)\n\
  \n\
  Perform the lock operation op on file descriptor fd.  See the Unix \n\
  manual flock(3) for details.  (On some systems, this function is\n\
! emulated using fcntl().)";
  
  
--- 202,211 ----
  }
  
! PyDoc_STRVAR(flock_doc,
  "flock(fd, operation)\n\
  \n\
  Perform the lock operation op on file descriptor fd.  See the Unix \n\
  manual flock(3) for details.  (On some systems, this function is\n\
! emulated using fcntl().)");
  
  
***************
*** 284,288 ****
  }
  
! static char lockf_doc [] =
  "lockf (fd, operation, length=0, start=0, whence=0)\n\
  \n\
--- 283,287 ----
  }
  
! PyDoc_STRVAR(lockf_doc,
  "lockf (fd, operation, length=0, start=0, whence=0)\n\
  \n\
***************
*** 307,311 ****
      0 - relative to the start of the file (SEEK_SET)\n\
      1 - relative to the current buffer position (SEEK_CUR)\n\
!     2 - relative to the end of the file (SEEK_END)";
  
  /* List of functions */
--- 306,310 ----
      0 - relative to the start of the file (SEEK_SET)\n\
      1 - relative to the current buffer position (SEEK_CUR)\n\
!     2 - relative to the end of the file (SEEK_END)");
  
  /* List of functions */
***************
*** 320,329 ****
  
  
! static char module_doc [] =
! 
  "This module performs file control and I/O control on file \n\
  descriptors.  It is an interface to the fcntl() and ioctl() Unix\n\
  routines.  File descriptors can be obtained with the fileno() method of\n\
! a file or socket object.";
  
  /* Module initialisation */
--- 319,327 ----
  
  
! PyDoc_STRVAR(module_doc,
  "This module performs file control and I/O control on file \n\
  descriptors.  It is an interface to the fcntl() and ioctl() Unix\n\
  routines.  File descriptors can be obtained with the fileno() method of\n\
! a file or socket object.");
  
  /* Module initialisation */

Index: gcmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/gcmodule.c,v
retrieving revision 2.43
retrieving revision 2.44
diff -C2 -d -r2.43 -r2.44
*** gcmodule.c	6 Jun 2002 23:23:55 -0000	2.43
--- gcmodule.c	13 Jun 2002 20:32:49 -0000	2.44
***************
*** 509,517 ****
  }
  
! static char gc_enable__doc__[] =
  "enable() -> None\n"
  "\n"
! "Enable automatic garbage collection.\n"
! ;
  
  static PyObject *
--- 509,516 ----
  }
  
! PyDoc_STRVAR(gc_enable__doc__,
  "enable() -> None\n"
  "\n"
! "Enable automatic garbage collection.\n");
  
  static PyObject *
***************
*** 528,536 ****
  }
  
! static char gc_disable__doc__[] =
  "disable() -> None\n"
  "\n"
! "Disable automatic garbage collection.\n"
! ;
  
  static PyObject *
--- 527,534 ----
  }
  
! PyDoc_STRVAR(gc_disable__doc__,
  "disable() -> None\n"
  "\n"
! "Disable automatic garbage collection.\n");
  
  static PyObject *
***************
*** 547,555 ****
  }
  
! static char gc_isenabled__doc__[] =
  "isenabled() -> status\n"
  "\n"
! "Returns true if automatic garbage collection is enabled.\n"
! ;
  
  static PyObject *
--- 545,552 ----
  }
  
! PyDoc_STRVAR(gc_isenabled__doc__,
  "isenabled() -> status\n"
  "\n"
! "Returns true if automatic garbage collection is enabled.\n");
  
  static PyObject *
***************
*** 563,571 ****
  }
  
! static char gc_collect__doc__[] =
  "collect() -> n\n"
  "\n"
! "Run a full collection.  The number of unreachable objects is returned.\n"
! ;
  
  static PyObject *
--- 560,567 ----
  }
  
! PyDoc_STRVAR(gc_collect__doc__,
  "collect() -> n\n"
  "\n"
! "Run a full collection.  The number of unreachable objects is returned.\n");
  
  static PyObject *
***************
*** 589,593 ****
  }
  
! static char gc_set_debug__doc__[] = 
  "set_debug(flags) -> None\n"
  "\n"
--- 585,589 ----
  }
  
! PyDoc_STRVAR(gc_set_debug__doc__,
  "set_debug(flags) -> None\n"
  "\n"
***************
*** 603,608 ****
  "  DEBUG_OBJECTS - Print objects other than instances.\n"
  "  DEBUG_SAVEALL - Save objects to gc.garbage rather than freeing them.\n"
! "  DEBUG_LEAK - Debug leaking programs (everything but STATS).\n"
! ;
  
  static PyObject *
--- 599,603 ----
  "  DEBUG_OBJECTS - Print objects other than instances.\n"
  "  DEBUG_SAVEALL - Save objects to gc.garbage rather than freeing them.\n"
! "  DEBUG_LEAK - Debug leaking programs (everything but STATS).\n");
  
  static PyObject *
***************
*** 616,624 ****
  }
  
! static char gc_get_debug__doc__[] = 
  "get_debug() -> flags\n"
  "\n"
! "Get the garbage collection debugging flags.\n"
! ;
  
  static PyObject *
--- 611,618 ----
  }
  
! PyDoc_STRVAR(gc_get_debug__doc__,
  "get_debug() -> flags\n"
  "\n"
! "Get the garbage collection debugging flags.\n");
  
  static PyObject *
***************
*** 631,640 ****
  }
  
! static char gc_set_thresh__doc__[] =
  "set_threshold(threshold0, [threshold1, threshold2]) -> None\n"
  "\n"
  "Sets the collection thresholds.  Setting threshold0 to zero disables\n"
! "collection.\n"
! ;
  
  static PyObject *
--- 625,633 ----
  }
  
! PyDoc_STRVAR(gc_set_thresh__doc__,
  "set_threshold(threshold0, [threshold1, threshold2]) -> None\n"
  "\n"
  "Sets the collection thresholds.  Setting threshold0 to zero disables\n"
! "collection.\n");
  
  static PyObject *
***************
*** 656,664 ****
  }
  
! static char gc_get_thresh__doc__[] =
  "get_threshold() -> (threshold0, threshold1, threshold2)\n"
  "\n"
! "Return the current collection thresholds\n"
! ;
  
  static PyObject *
--- 649,656 ----
  }
  
! PyDoc_STRVAR(gc_get_thresh__doc__,
  "get_threshold() -> (threshold0, threshold1, threshold2)\n"
  "\n"
! "Return the current collection thresholds\n");
  
  static PyObject *
***************
*** 703,709 ****
  }
  
! static char gc_get_referrers__doc__[]=
  "get_referrers(*objs) -> list\n\
! Return the list of objects that directly refer to any of objs.";
  
  static PyObject *
--- 695,701 ----
  }
  
! PyDoc_STRVAR(gc_get_referrers__doc__,
  "get_referrers(*objs) -> list\n\
! Return the list of objects that directly refer to any of objs.");
  
  static PyObject *
***************
*** 721,730 ****
  }
  
! static char gc_get_objects__doc__[] =
  "get_objects() -> [...]\n"
  "\n"
  "Return a list of objects tracked by the collector (excluding the list\n"
! "returned).\n"
! ;
  
  /* appending objects in a GC list to a Python list */
--- 713,721 ----
  }
  
! PyDoc_STRVAR(gc_get_objects__doc__,
  "get_objects() -> [...]\n"
  "\n"
  "Return a list of objects tracked by the collector (excluding the list\n"
! "returned).\n");
  
  /* appending objects in a GC list to a Python list */
***************
*** 766,770 ****
  
  
! static char gc__doc__ [] =
  "This module provides access to the garbage collector for reference cycles.\n"
  "\n"
--- 757,761 ----
  
  
! PyDoc_STRVAR(gc__doc__,
  "This module provides access to the garbage collector for reference cycles.\n"
  "\n"
***************
*** 778,783 ****
  "get_threshold() -- Return the current the collection thresholds.\n"
  "get_objects() -- Return a list of all objects tracked by the collector.\n"
! "get_referrers() -- Return the list of objects that refer to an object.\n"
! ;
  
  static PyMethodDef GcMethods[] = {
--- 769,773 ----
  "get_threshold() -- Return the current the collection thresholds.\n"
  "get_objects() -- Return a list of all objects tracked by the collector.\n"
! "get_referrers() -- Return the list of objects that refer to an object.\n");
  
  static PyMethodDef GcMethods[] = {

Index: gdbmmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/gdbmmodule.c,v
retrieving revision 2.32
retrieving revision 2.33
diff -C2 -d -r2.32 -r2.33
*** gdbmmodule.c	8 Dec 2001 18:02:56 -0000	2.32
--- gdbmmodule.c	13 Jun 2002 20:32:49 -0000	2.33
***************
*** 17,22 ****
  #endif
  
! static char gdbmmodule__doc__[] = "\
! This module provides an interface to the GNU DBM (GDBM) library.\n\
  \n\
  This module is quite similar to the dbm module, but uses GDBM instead to\n\
--- 17,22 ----
  #endif
  
! PyDoc_STRVAR(gdbmmodule__doc__,
! "This module provides an interface to the GNU DBM (GDBM) library.\n\
  \n\
  This module is quite similar to the dbm module, but uses GDBM instead to\n\
***************
*** 27,31 ****
  values are always strings. Printing a GDBM object doesn't print the\n\
  keys and values, and the items() and values() methods are not\n\
! supported.";
  
  typedef struct {
--- 27,31 ----
  values are always strings. Printing a GDBM object doesn't print the\n\
  keys and values, and the items() and values() methods are not\n\
! supported.");
  
  typedef struct {
***************
*** 46,51 ****
  static PyObject *DbmError;
  
! static char gdbm_object__doc__[] = "\
! This object represents a GDBM database.\n\
  GDBM objects behave like mappings (dictionaries), except that keys and\n\
  values are always strings. Printing a GDBM object doesn't print the\n\
--- 46,51 ----
  static PyObject *DbmError;
  
! PyDoc_STRVAR(gdbm_object__doc__,
! "This object represents a GDBM database.\n\
  GDBM objects behave like mappings (dictionaries), except that keys and\n\
  values are always strings. Printing a GDBM object doesn't print the\n\
***************
*** 54,58 ****
  \n\
  GDBM objects also support additional operations such as firstkey,\n\
! nextkey, reorganize, and sync.";
  
  static PyObject *
--- 54,58 ----
  \n\
  GDBM objects also support additional operations such as firstkey,\n\
! nextkey, reorganize, and sync.");
  
  static PyObject *
***************
*** 184,190 ****
  };
  
! static char dbm_close__doc__[] = "\
! close() -> None\n\
! Closes the database.";
  
  static PyObject *
--- 184,190 ----
  };
  
! PyDoc_STRVAR(dbm_close__doc__,
! "close() -> None\n\
! Closes the database.");
  
  static PyObject *
***************
*** 200,206 ****
  }
  
! static char dbm_keys__doc__[] = "\
! keys() -> list_of_keys\n\
! Get a list of all keys in the database.";
  
  static PyObject *
--- 200,206 ----
  }
  
! PyDoc_STRVAR(dbm_keys__doc__,
! "keys() -> list_of_keys\n\
! Get a list of all keys in the database.");
  
  static PyObject *
***************
*** 246,252 ****
  }
  
! static char dbm_has_key__doc__[] = "\
! has_key(key) -> boolean\n\
! Find out whether or not the database contains a given key.";
  
  static PyObject *
--- 246,252 ----
  }
  
! PyDoc_STRVAR(dbm_has_key__doc__,
! "has_key(key) -> boolean\n\
! Find out whether or not the database contains a given key.");
  
  static PyObject *
***************
*** 261,270 ****
  }
  
! static char dbm_firstkey__doc__[] = "\
! firstkey() -> key\n\
  It's possible to loop over every key in the database using this method\n\
  and the nextkey() method. The traversal is ordered by GDBM's internal\n\
  hash values, and won't be sorted by the key values. This method\n\
! returns the starting key.";
  
  static PyObject *
--- 261,270 ----
  }
  
! PyDoc_STRVAR(dbm_firstkey__doc__,
! "firstkey() -> key\n\
  It's possible to loop over every key in the database using this method\n\
  and the nextkey() method. The traversal is ordered by GDBM's internal\n\
  hash values, and won't be sorted by the key values. This method\n\
! returns the starting key.");
  
  static PyObject *
***************
*** 289,294 ****
  }
  
! static char dbm_nextkey__doc__[] = "\
! nextkey(key) -> next_key\n\
  Returns the key that follows key in the traversal.\n\
  The following code prints every key in the database db, without having\n\
--- 289,294 ----
  }
  
! PyDoc_STRVAR(dbm_nextkey__doc__,
! "nextkey(key) -> next_key\n\
  Returns the key that follows key in the traversal.\n\
  The following code prints every key in the database db, without having\n\
***************
*** 298,302 ****
        while k != None:\n\
            print k\n\
!           k = db.nextkey(k)";
  
  static PyObject *
--- 298,302 ----
        while k != None:\n\
            print k\n\
!           k = db.nextkey(k)");
  
  static PyObject *
***************
*** 321,331 ****
  }
  
! static char dbm_reorganize__doc__[] = "\
! reorganize() -> None\n\
  If you have carried out a lot of deletions and would like to shrink\n\
  the space used by the GDBM file, this routine will reorganize the\n\
  database. GDBM will not shorten the length of a database file except\n\
  by using this reorganization; otherwise, deleted file space will be\n\
! kept and reused as new (key,value) pairs are added.";
  
  static PyObject *
--- 321,331 ----
  }
  
! PyDoc_STRVAR(dbm_reorganize__doc__,
! "reorganize() -> None\n\
  If you have carried out a lot of deletions and would like to shrink\n\
  the space used by the GDBM file, this routine will reorganize the\n\
  database. GDBM will not shorten the length of a database file except\n\
  by using this reorganization; otherwise, deleted file space will be\n\
! kept and reused as new (key,value) pairs are added.");
  
  static PyObject *
***************
*** 347,354 ****
  }
  
! static char dbm_sync__doc__[] = "\
! sync() -> None\n\
  When the database has been opened in fast mode, this method forces\n\
! any unwritten data to be written to the disk.";
  
  static PyObject *
--- 347,354 ----
  }
  
! PyDoc_STRVAR(dbm_sync__doc__,
! "sync() -> None\n\
  When the database has been opened in fast mode, this method forces\n\
! any unwritten data to be written to the disk.");
  
  static PyObject *
***************
*** 407,412 ****
  /* ----------------------------------------------------------------- */
  
! static char dbmopen__doc__[] = "\
! open(filename, [flags, [mode]])  -> dbm_object\n\
  Open a dbm database and return a dbm object. The filename argument is\n\
  the name of the database file.\n\
--- 407,412 ----
  /* ----------------------------------------------------------------- */
  
! PyDoc_STRVAR(dbmopen__doc__,
! "open(filename, [flags, [mode]])  -> dbm_object\n\
  Open a dbm database and return a dbm object. The filename argument is\n\
  the name of the database file.\n\
***************
*** 429,433 ****
  \n\
  The optional mode argument is the Unix mode of the file, used only\n\
! when the database has to be created. It defaults to octal 0666. ";
  
  static PyObject *
--- 429,433 ----
  \n\
  The optional mode argument is the Unix mode of the file, used only\n\
! when the database has to be created. It defaults to octal 0666. ");
  
  static PyObject *

Index: grpmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/grpmodule.c,v
retrieving revision 2.17
retrieving revision 2.18
diff -C2 -d -r2.17 -r2.18
*** grpmodule.c	1 Mar 2002 10:38:44 -0000	2.17
--- grpmodule.c	13 Jun 2002 20:32:49 -0000	2.18
***************
*** 16,24 ****
  };
  
! static char struct_group__doc__[] =
  "grp.struct_group: Results from getgr*() routines.\n\n\
  This object may be accessed either as a tuple of\n\
    (gr_name,gr_passwd,gr_gid,gr_mem)\n\
! or via the object attributes as named in the above tuple.\n";
  
  static PyStructSequence_Desc struct_group_type_desc = {
--- 16,24 ----
  };
  
! PyDoc_STRVAR(struct_group__doc__,
  "grp.struct_group: Results from getgr*() routines.\n\n\
  This object may be accessed either as a tuple of\n\
    (gr_name,gr_passwd,gr_gid,gr_mem)\n\
! or via the object attributes as named in the above tuple.\n");
  
  static PyStructSequence_Desc struct_group_type_desc = {
***************
*** 140,144 ****
  };
  
! static char grp__doc__[] =
  "Access to the Unix group database.\n\
  \n\
--- 140,144 ----
  };
  
! PyDoc_STRVAR(grp__doc__,
  "Access to the Unix group database.\n\
  \n\
***************
*** 154,158 ****
  users are not explicitly listed as members of the groups they are in\n\
  according to the password database.  Check both databases to get\n\
! complete membership information.)";
  
  
--- 154,158 ----
  users are not explicitly listed as members of the groups they are in\n\
  according to the password database.  Check both databases to get\n\
! complete membership information.)");
  
  

Index: mathmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/mathmodule.c,v
retrieving revision 2.67
retrieving revision 2.68
diff -C2 -d -r2.67 -r2.68
*** mathmodule.c	13 May 2002 03:56:10 -0000	2.67
--- mathmodule.c	13 Jun 2002 20:32:50 -0000	2.68
***************
*** 86,90 ****
  		return math_1(args, func, "d:" #funcname); \
  	}\
!         static char math_##funcname##_doc [] = docstring;
  
  #define FUNC2(funcname, func, docstring) \
--- 86,90 ----
  		return math_1(args, func, "d:" #funcname); \
  	}\
!         PyDoc_STRVAR(math_##funcname##_doc, docstring);
  
  #define FUNC2(funcname, func, docstring) \
***************
*** 92,96 ****
  		return math_2(args, func, "dd:" #funcname); \
  	}\
!         static char math_##funcname##_doc [] = docstring;
  
  FUNC1(acos, acos,
--- 92,96 ----
  		return math_2(args, func, "dd:" #funcname); \
  	}\
!         PyDoc_STRVAR(math_##funcname##_doc, docstring);
  
  FUNC1(acos, acos,
***************
*** 156,165 ****
  }
  
! static char math_frexp_doc [] =
  "frexp(x)\n"
  "\n"
  "Return the mantissa and exponent of x, as pair (m, e).\n"
  "m is a float and e is an int, such that x = m * 2.**e.\n"
! "If x is 0, m and e are both 0.  Else 0.5 <= abs(m) < 1.0.";
  
  static PyObject *
--- 156,165 ----
  }
  
! PyDoc_STRVAR(math_frexp_doc,
  "frexp(x)\n"
  "\n"
  "Return the mantissa and exponent of x, as pair (m, e).\n"
  "m is a float and e is an int, such that x = m * 2.**e.\n"
! "If x is 0, m and e are both 0.  Else 0.5 <= abs(m) < 1.0.");
  
  static PyObject *
***************
*** 181,186 ****
  }
  
! static char math_ldexp_doc [] =
! "ldexp(x, i) -> x * (2**i)";
  
  static PyObject *
--- 181,186 ----
  }
  
! PyDoc_STRVAR(math_ldexp_doc,
! "ldexp(x, i) -> x * (2**i)");
  
  static PyObject *
***************
*** 207,215 ****
  }
  
! static char math_modf_doc [] =
  "modf(x)\n"
  "\n"
  "Return the fractional and integer parts of x.  Both results carry the sign\n"
! "of x.  The integer part is returned as a real.";
  
  /* A decent logarithm is easy to compute even for huge longs, but libm can't
--- 207,215 ----
  }
  
! PyDoc_STRVAR(math_modf_doc,
  "modf(x)\n"
  "\n"
  "Return the fractional and integer parts of x.  Both results carry the sign\n"
! "of x.  The integer part is returned as a real.");
  
  /* A decent logarithm is easy to compute even for huge longs, but libm can't
***************
*** 263,268 ****
  }
  
! static char math_log_doc[] =
! "log(x) -> the natural logarithm (base e) of x.";
  
  static PyObject *
--- 263,268 ----
  }
  
! PyDoc_STRVAR(math_log_doc,
! "log(x) -> the natural logarithm (base e) of x.");
  
  static PyObject *
***************
*** 272,277 ****
  }
  
! static char math_log10_doc[] =
! "log10(x) -> the base 10 logarithm of x.";
  
  static const double degToRad = 3.141592653589793238462643383 / 180.0;
--- 272,277 ----
  }
  
! PyDoc_STRVAR(math_log10_doc,
! "log10(x) -> the base 10 logarithm of x.");
  
  static const double degToRad = 3.141592653589793238462643383 / 180.0;
***************
*** 286,291 ****
  }
  
! static char math_degrees_doc[] =
! "degrees(x) -> converts angle x from radians to degrees";
  
  static PyObject *
--- 286,291 ----
  }
  
! PyDoc_STRVAR(math_degrees_doc,
! "degrees(x) -> converts angle x from radians to degrees");
  
  static PyObject *
***************
*** 298,303 ****
  }
  
! static char math_radians_doc[] =
! "radians(x) -> converts angle x from degrees to radians";
  
  static PyMethodDef math_methods[] = {
--- 298,303 ----
  }
  
! PyDoc_STRVAR(math_radians_doc,
! "radians(x) -> converts angle x from degrees to radians");
  
  static PyMethodDef math_methods[] = {
***************
*** 331,337 ****
  
  
! static char module_doc [] =
  "This module is always available.  It provides access to the\n"
! "mathematical functions defined by the C standard.";
  
  DL_EXPORT(void)
--- 331,337 ----
  
  
! PyDoc_STRVAR(module_doc,
  "This module is always available.  It provides access to the\n"
! "mathematical functions defined by the C standard.");
  
  DL_EXPORT(void)

Index: md5module.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/md5module.c,v
retrieving revision 2.29
retrieving revision 2.30
diff -C2 -d -r2.29 -r2.30
*** md5module.c	31 Mar 2002 15:27:00 -0000	2.29
--- md5module.c	13 Jun 2002 20:32:50 -0000	2.30
***************
*** 62,71 ****
  }
  
! static char update_doc [] =
  "update (arg)\n\
  \n\
  Update the md5 object with the string arg. Repeated calls are\n\
  equivalent to a single call with the concatenation of all the\n\
! arguments.";
  
  
--- 62,71 ----
  }
  
! PyDoc_STRVAR(update_doc,
  "update (arg)\n\
  \n\
  Update the md5 object with the string arg. Repeated calls are\n\
  equivalent to a single call with the concatenation of all the\n\
! arguments.");
  
  
***************
*** 83,92 ****
  }
  
! static char digest_doc [] =
  "digest() -> string\n\
  \n\
  Return the digest of the strings passed to the update() method so\n\
  far. This is an 16-byte string which may contain non-ASCII characters,\n\
! including null bytes.";
  
  
--- 83,92 ----
  }
  
! PyDoc_STRVAR(digest_doc,
  "digest() -> string\n\
  \n\
  Return the digest of the strings passed to the update() method so\n\
  far. This is an 16-byte string which may contain non-ASCII characters,\n\
! including null bytes.");
  
  
***************
*** 117,124 ****
  
  
! static char hexdigest_doc [] =
  "hexdigest() -> string\n\
  \n\
! Like digest(), but returns the digest as a string of hexadecimal digits.";
  
  
--- 117,124 ----
  
  
! PyDoc_STRVAR(hexdigest_doc,
  "hexdigest() -> string\n\
  \n\
! Like digest(), but returns the digest as a string of hexadecimal digits.");
  
  
***************
*** 136,143 ****
  }
  
! static char copy_doc [] =
  "copy() -> md5 object\n\
  \n\
! Return a copy (``clone'') of the md5 object.";
  
  
--- 136,143 ----
  }
  
! PyDoc_STRVAR(copy_doc,
  "copy() -> md5 object\n\
  \n\
! Return a copy (``clone'') of the md5 object.");
  
  
***************
*** 160,165 ****
  }
  
! static char module_doc [] =
! 
  "This module implements the interface to RSA's MD5 message digest\n\
  algorithm (see also Internet RFC 1321). Its use is quite\n\
--- 160,164 ----
  }
  
! PyDoc_STRVAR(module_doc,
  "This module implements the interface to RSA's MD5 message digest\n\
  algorithm (see also Internet RFC 1321). Its use is quite\n\
***************
*** 177,184 ****
  Special Objects:\n\
  \n\
! MD5Type -- type object for md5 objects\n\
! ";
  
! static char md5type_doc [] =
  "An md5 represents the object used to calculate the MD5 checksum of a\n\
  string of information.\n\
--- 176,182 ----
  Special Objects:\n\
  \n\
! MD5Type -- type object for md5 objects");
  
! PyDoc_STRVAR(md5type_doc,
  "An md5 represents the object used to calculate the MD5 checksum of a\n\
  string of information.\n\
***************
*** 188,193 ****
  update() -- updates the current digest with an additional string\n\
  digest() -- return the current digest value\n\
! copy() -- return a copy of the current md5 object\n\
! ";
  
  statichere PyTypeObject MD5type = {
--- 186,190 ----
  update() -- updates the current digest with an additional string\n\
  digest() -- return the current digest value\n\
! copy() -- return a copy of the current md5 object");
  
  statichere PyTypeObject MD5type = {
***************
*** 239,247 ****
  }
  
! static char new_doc [] =
  "new([arg]) -> md5 object\n\
  \n\
  Return a new md5 object. If arg is present, the method call update(arg)\n\
! is made.";
  
  
--- 236,244 ----
  }
  
! PyDoc_STRVAR(new_doc,
  "new([arg]) -> md5 object\n\
  \n\
  Return a new md5 object. If arg is present, the method call update(arg)\n\
! is made.");
  
  

Index: newmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/newmodule.c,v
retrieving revision 2.38
retrieving revision 2.39
diff -C2 -d -r2.38 -r2.39
*** newmodule.c	15 Jan 2002 19:20:03 -0000	2.38
--- newmodule.c	13 Jun 2002 20:32:50 -0000	2.39
***************
*** 5,11 ****
  #include "compile.h"
  
! static char new_instance_doc[] =
  "Create an instance object from (CLASS [, DICT]) without calling its\n\
! __init__() method.  DICT must be a dictionary or None.";
  
  static PyObject *
--- 5,11 ----
  #include "compile.h"
  
! PyDoc_STRVAR(new_instance_doc,
  "Create an instance object from (CLASS [, DICT]) without calling its\n\
! __init__() method.  DICT must be a dictionary or None.");
  
  static PyObject *
***************
*** 31,36 ****
  }
  
! static char new_im_doc[] =
! "Create a instance method object from (FUNCTION, INSTANCE, CLASS).";
  
  static PyObject *
--- 31,36 ----
  }
  
! PyDoc_STRVAR(new_im_doc,
! "Create a instance method object from (FUNCTION, INSTANCE, CLASS).");
  
  static PyObject *
***************
*** 54,59 ****
  }
  
! static char new_function_doc[] =
! "Create a function object from (CODE, GLOBALS, [NAME [, ARGDEFS]]).";
  
  static PyObject *
--- 54,59 ----
  }
  
! PyDoc_STRVAR(new_function_doc,
! "Create a function object from (CODE, GLOBALS, [NAME [, ARGDEFS]]).");
  
  static PyObject *
***************
*** 96,103 ****
  }
  
! static char new_code_doc[] =
  "Create a code object from (ARGCOUNT, NLOCALS, STACKSIZE, FLAGS, CODESTRING,\n"
  "CONSTANTS, NAMES, VARNAMES, FILENAME, NAME, FIRSTLINENO, LNOTAB, FREEVARS,\n"
! "CELLVARS).";
  
  static PyObject *
--- 96,103 ----
  }
  
! PyDoc_STRVAR(new_code_doc,
  "Create a code object from (ARGCOUNT, NLOCALS, STACKSIZE, FLAGS, CODESTRING,\n"
  "CONSTANTS, NAMES, VARNAMES, FILENAME, NAME, FIRSTLINENO, LNOTAB, FREEVARS,\n"
! "CELLVARS).");
  
  static PyObject *
***************
*** 158,163 ****
  }
  
! static char new_module_doc[] =
! "Create a module object from (NAME).";
  
  static PyObject *
--- 158,163 ----
  }
  
! PyDoc_STRVAR(new_module_doc,
! "Create a module object from (NAME).");
  
  static PyObject *
***************
*** 171,176 ****
  }
  
! static char new_class_doc[] =
! "Create a class object from (NAME, BASE_CLASSES, DICT).";
  
  static PyObject *
--- 171,176 ----
  }
  
! PyDoc_STRVAR(new_class_doc,
! "Create a class object from (NAME, BASE_CLASSES, DICT).");
  
  static PyObject *
***************
*** 203,210 ****
  };
  
! static char new_doc[] =
  "Functions to create new objects used by the interpreter.\n\
  \n\
! You need to know a great deal about the interpreter to use this!";
  
  DL_EXPORT(void)
--- 203,210 ----
  };
  
! PyDoc_STRVAR(new_doc,
  "Functions to create new objects used by the interpreter.\n\
  \n\
! You need to know a great deal about the interpreter to use this!");
  
  DL_EXPORT(void)

Index: operator.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/operator.c,v
retrieving revision 2.20
retrieving revision 2.21
diff -C2 -d -r2.20 -r2.21
*** operator.c	4 Apr 2002 17:52:50 -0000	2.20
--- operator.c	13 Jun 2002 20:32:50 -0000	2.21
***************
*** 1,4 ****
! static char operator_doc[] = "\
! Operator interface.\n\
  \n\
  This module exports a set of functions implemented in C corresponding\n\
--- 1,7 ----
! 
! #include "Python.h"
! 
! PyDoc_STRVAR(operator_doc,
! "Operator interface.\n\
  \n\
  This module exports a set of functions implemented in C corresponding\n\
***************
*** 6,13 ****
  is equivalent to the expression x+y.  The function names are those\n\
  used for special class methods; variants without leading and trailing\n\
! '__' are also provided for convenience.\n\
! ";
! 
! #include "Python.h"
  
  #define spam1(OP,AOP) static PyObject *OP(PyObject *s, PyObject *a) { \
--- 9,13 ----
  is equivalent to the expression x+y.  The function names are those\n\
  used for special class methods; variants without leading and trailing\n\
! '__' are also provided for convenience.");
  
  #define spam1(OP,AOP) static PyObject *OP(PyObject *s, PyObject *a) { \

Index: parsermodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/parsermodule.c,v
retrieving revision 2.69
retrieving revision 2.70
diff -C2 -d -r2.69 -r2.70
*** parsermodule.c	24 May 2002 15:47:06 -0000	2.69
--- parsermodule.c	13 Jun 2002 20:32:50 -0000	2.70
***************
*** 47,53 ****
   *
   */
! static char*
! parser_copyright_string
! = "Copyright 1995-1996 by Virginia Polytechnic Institute & State\n\
  University, Blacksburg, Virginia, USA, and Fred L. Drake, Jr., Reston,\n\
  Virginia, USA.  Portions copyright 1991-1995 by Stichting Mathematisch\n\
--- 47,52 ----
   *
   */
! static char parser_copyright_string[] =
! "Copyright 1995-1996 by Virginia Polytechnic Institute & State\n\
  University, Blacksburg, Virginia, USA, and Fred L. Drake, Jr., Reston,\n\
  Virginia, USA.  Portions copyright 1991-1995 by Stichting Mathematisch\n\
***************
*** 55,64 ****
  
  
! static char*
! parser_doc_string
! = "This is an interface to Python's internal parser.";
  
! static char*
! parser_version_string = "0.5";
  
  
--- 54,61 ----
  
  
! PyDoc_STRVAR(parser_doc_string,
! "This is an interface to Python's internal parser.");
  
! static char parser_version_string[] = "0.5";
  
  

Index: posixmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/posixmodule.c,v
retrieving revision 2.234
retrieving revision 2.235
diff -C2 -d -r2.234 -r2.235
*** posixmodule.c	10 Jun 2002 19:22:56 -0000	2.234
--- posixmodule.c	13 Jun 2002 20:32:50 -0000	2.235
***************
*** 14,25 ****
  /* See also ../Dos/dosmodule.c */
  
! static char posix__doc__ [] =
  "This module provides access to operating system functionality that is\n\
  standardized by the C Standard and the POSIX standard (a thinly\n\
  disguised Unix interface).  Refer to the library manual and\n\
! corresponding Unix manual entries for more information on calls.";
! 
! #include "Python.h"
! #include "structseq.h"
[...1866 lines suppressed...]
--- 6234,6239 ----
  
  #ifdef MS_WIN32
! PyDoc_STRVAR(win32_startfile__doc__,
! "startfile(filepath) - Start a file with its associated application.\n\
  \n\
  This acts like double-clicking the file in Explorer, or giving the file\n\
***************
*** 6241,6245 ****
  The filepath is relative to the current directory.  If you want to use\n\
  an absolute path, make sure the first character is not a slash (\"/\");\n\
! the underlying Win32 ShellExecute function doesn't work if it is.";
  
  static PyObject *
--- 6247,6251 ----
  The filepath is relative to the current directory.  If you want to use\n\
  an absolute path, make sure the first character is not a slash (\"/\");\n\
! the underlying Win32 ShellExecute function doesn't work if it is.");
  
  static PyObject *

Index: pwdmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/pwdmodule.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** pwdmodule.c	15 Apr 2002 16:29:00 -0000	1.33
--- pwdmodule.c	13 Jun 2002 20:32:51 -0000	1.34
***************
*** 19,27 ****
  };
  
! static char struct_passwd__doc__[] =
  "pwd.struct_passwd: Results from getpw*() routines.\n\n\
  This object may be accessed either as a tuple of\n\
    (pw_name,pw_passwd,pw_uid,pw_gid,pw_gecos,pw_dir,pw_shell)\n\
! or via the object attributes as named in the above tuple.\n";
  
  static PyStructSequence_Desc struct_pwd_type_desc = {
--- 19,27 ----
  };
  
! PyDoc_STRVAR(struct_passwd__doc__,
  "pwd.struct_passwd: Results from getpw*() routines.\n\n\
  This object may be accessed either as a tuple of\n\
    (pw_name,pw_passwd,pw_uid,pw_gid,pw_gecos,pw_dir,pw_shell)\n\
! or via the object attributes as named in the above tuple.");
  
  static PyStructSequence_Desc struct_pwd_type_desc = {
***************
*** 32,37 ****
  };
  
! static char pwd__doc__ [] = "\
! This module provides access to the Unix password database.\n\
  It is available on all Unix versions.\n\
  \n\
--- 32,37 ----
  };
  
! PyDoc_STRVAR(pwd__doc__,
! "This module provides access to the Unix password database.\n\
  It is available on all Unix versions.\n\
  \n\
***************
*** 40,44 ****
  pw_name, pw_passwd, pw_uid, pw_gid, pw_gecos, pw_dir, pw_shell.\n\
  The uid and gid items are integers, all others are strings. An\n\
! exception is raised if the entry asked for cannot be found.";
  
        
--- 40,44 ----
  pw_name, pw_passwd, pw_uid, pw_gid, pw_gecos, pw_dir, pw_shell.\n\
  The uid and gid items are integers, all others are strings. An\n\
! exception is raised if the entry asked for cannot be found.");
  
        
***************
*** 75,82 ****
  }
  
! static char pwd_getpwuid__doc__[] = "\
! getpwuid(uid) -> (pw_name,pw_passwd,pw_uid,pw_gid,pw_gecos,pw_dir,pw_shell)\n\
  Return the password database entry for the given numeric user ID.\n\
! See pwd.__doc__ for more on password database entries.";
  
  static PyObject *
--- 75,83 ----
  }
  
! PyDoc_STRVAR(pwd_getpwuid__doc__,
! "getpwuid(uid) -> (pw_name,pw_passwd,pw_uid,\n\
!                   pw_gid,pw_gecos,pw_dir,pw_shell)\n\
  Return the password database entry for the given numeric user ID.\n\
! See pwd.__doc__ for more on password database entries.");
  
  static PyObject *
***************
*** 94,101 ****
  }
  
! static char pwd_getpwnam__doc__[] = "\
! getpwnam(name) -> (pw_name,pw_passwd,pw_uid,pw_gid,pw_gecos,pw_dir,pw_shell)\n\
  Return the password database entry for the given user name.\n\
! See pwd.__doc__ for more on password database entries.";
  
  static PyObject *
--- 95,103 ----
  }
  
! PyDoc_STRVAR(pwd_getpwnam__doc__,
! "getpwnam(name) -> (pw_name,pw_passwd,pw_uid,\n\
!                     pw_gid,pw_gecos,pw_dir,pw_shell)\n\
  Return the password database entry for the given user name.\n\
! See pwd.__doc__ for more on password database entries.");
  
  static PyObject *
***************
*** 114,122 ****
  
  #ifdef HAVE_GETPWENT
! static char pwd_getpwall__doc__[] = "\
! getpwall() -> list_of_entries\n\
  Return a list of all available password database entries, \
  in arbitrary order.\n\
! See pwd.__doc__ for more on password database entries.";
  
  static PyObject *
--- 116,124 ----
  
  #ifdef HAVE_GETPWENT
! PyDoc_STRVAR(pwd_getpwall__doc__,
! "getpwall() -> list_of_entries\n\
  Return a list of all available password database entries, \
  in arbitrary order.\n\
! See pwd.__doc__ for more on password database entries.");
  
  static PyObject *

Index: pyexpat.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/pyexpat.c,v
retrieving revision 2.59
retrieving revision 2.60
diff -C2 -d -r2.59 -r2.60
*** pyexpat.c	20 Mar 2002 21:32:07 -0000	2.59
--- pyexpat.c	13 Jun 2002 20:32:52 -0000	2.60
***************
*** 626,632 ****
  /* ---------------------------------------------------------------- */
  
! static char xmlparse_Parse__doc__[] = 
  "Parse(data[, isfinal])\n\
! Parse XML data.  `isfinal' should be true at end of input.";
  
  static PyObject *
--- 626,632 ----
  /* ---------------------------------------------------------------- */
  
! PyDoc_STRVAR(xmlparse_Parse__doc__,
  "Parse(data[, isfinal])\n\
! Parse XML data.  `isfinal' should be true at end of input.");
  
  static PyObject *
***************
*** 696,702 ****
  }
  
! static char xmlparse_ParseFile__doc__[] = 
  "ParseFile(file)\n\
! Parse XML data from file-like object.";
  
  static PyObject *
--- 696,702 ----
  }
  
! PyDoc_STRVAR(xmlparse_ParseFile__doc__,
  "ParseFile(file)\n\
! Parse XML data from file-like object.");
  
  static PyObject *
***************
*** 755,761 ****
  }
  
! static char xmlparse_SetBase__doc__[] = 
  "SetBase(base_url)\n\
! Set the base URL for the parser.";
  
  static PyObject *
--- 755,761 ----
  }
  
! PyDoc_STRVAR(xmlparse_SetBase__doc__,
  "SetBase(base_url)\n\
! Set the base URL for the parser.");
  
  static PyObject *
***************
*** 773,779 ****
  }
  
! static char xmlparse_GetBase__doc__[] = 
  "GetBase() -> url\n\
! Return base URL string for the parser.";
  
  static PyObject *
--- 773,779 ----
  }
  
! PyDoc_STRVAR(xmlparse_GetBase__doc__,
  "GetBase() -> url\n\
! Return base URL string for the parser.");
  
  static PyObject *
***************
*** 786,794 ****
  }
  
! static char xmlparse_GetInputContext__doc__[] =
  "GetInputContext() -> string\n\
  Return the untranslated text of the input that caused the current event.\n\
  If the event was generated by a large amount of text (such as a start tag\n\
! for an element with many attributes), not all of the text may be available.";
  
  static PyObject *
--- 786,794 ----
  }
  
! PyDoc_STRVAR(xmlparse_GetInputContext__doc__,
  "GetInputContext() -> string\n\
  Return the untranslated text of the input that caused the current event.\n\
  If the event was generated by a large amount of text (such as a start tag\n\
! for an element with many attributes), not all of the text may be available.");
  
  static PyObject *
***************
*** 818,825 ****
  }
  
! static char xmlparse_ExternalEntityParserCreate__doc__[] = 
  "ExternalEntityParserCreate(context[, encoding])\n\
  Create a parser for parsing an external entity based on the\n\
! information passed to the ExternalEntityRefHandler.";
  
  static PyObject *
--- 818,825 ----
  }
  
! PyDoc_STRVAR(xmlparse_ExternalEntityParserCreate__doc__,
  "ExternalEntityParserCreate(context[, encoding])\n\
  Create a parser for parsing an external entity based on the\n\
! information passed to the ExternalEntityRefHandler.");
  
  static PyObject *
***************
*** 893,897 ****
  }
  
! static char xmlparse_SetParamEntityParsing__doc__[] =
  "SetParamEntityParsing(flag) -> success\n\
  Controls parsing of parameter entities (including the external DTD\n\
--- 893,897 ----
  }
  
! PyDoc_STRVAR(xmlparse_SetParamEntityParsing__doc__,
  "SetParamEntityParsing(flag) -> success\n\
  Controls parsing of parameter entities (including the external DTD\n\
***************
*** 899,903 ****
  XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE and\n\
  XML_PARAM_ENTITY_PARSING_ALWAYS. Returns true if setting the flag\n\
! was successful.";
  
  static PyObject*
--- 899,903 ----
  XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE and\n\
  XML_PARAM_ENTITY_PARSING_ALWAYS. Returns true if setting the flag\n\
! was successful.");
  
  static PyObject*
***************
*** 1226,1231 ****
  #endif
  
! static char Xmlparsetype__doc__[] = 
! "XML parser";
  
  static PyTypeObject Xmlparsetype = {
--- 1226,1230 ----
  #endif
  
! PyDoc_STRVAR(Xmlparsetype__doc__, "XML parser");
  
  static PyTypeObject Xmlparsetype = {
***************
*** 1268,1274 ****
  /* -------------------------------------------------------- */
  
! static char pyexpat_ParserCreate__doc__[] =
  "ParserCreate([encoding[, namespace_separator]]) -> parser\n\
! Return a new XML parser object.";
  
  static PyObject *
--- 1267,1273 ----
  /* -------------------------------------------------------- */
  
! PyDoc_STRVAR(pyexpat_ParserCreate__doc__,
  "ParserCreate([encoding[, namespace_separator]]) -> parser\n\
! Return a new XML parser object.");
  
  static PyObject *
***************
*** 1292,1298 ****
  }
  
! static char pyexpat_ErrorString__doc__[] =
  "ErrorString(errno) -> string\n\
! Returns string error for given number.";
  
  static PyObject *
--- 1291,1297 ----
  }
  
! PyDoc_STRVAR(pyexpat_ErrorString__doc__,
  "ErrorString(errno) -> string\n\
! Returns string error for given number.");
  
  static PyObject *
***************
*** 1319,1324 ****
  /* Module docstring */
  
! static char pyexpat_module_documentation[] = 
! "Python wrapper for Expat parser.";
  
  #if PY_VERSION_HEX < 0x20000F0
--- 1318,1323 ----
  /* Module docstring */
  
! PyDoc_STRVAR(pyexpat_module_documentation,
! "Python wrapper for Expat parser.");
  
  #if PY_VERSION_HEX < 0x20000F0

Index: readline.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/readline.c,v
retrieving revision 2.50
retrieving revision 2.51
diff -C2 -d -r2.50 -r2.51
*** readline.c	11 Jun 2002 14:32:46 -0000	2.50
--- readline.c	13 Jun 2002 20:32:52 -0000	2.51
***************
*** 47,54 ****
  }
  
! static char doc_parse_and_bind[] = "\
! parse_and_bind(string) -> None\n\
! Parse and execute single line of a readline init file.\
! ";
  
  
--- 47,53 ----
  }
  
! PyDoc_STRVAR(doc_parse_and_bind,
! "parse_and_bind(string) -> None\n\
! Parse and execute single line of a readline init file.");
  
  
***************
*** 68,76 ****
  }
  
! static char doc_read_init_file[] = "\
! read_init_file([filename]) -> None\n\
  Parse a readline initialization file.\n\
! The default filename is the last filename used.\
! ";
  
  
--- 67,74 ----
  }
  
! PyDoc_STRVAR(doc_read_init_file,
! "read_init_file([filename]) -> None\n\
  Parse a readline initialization file.\n\
! The default filename is the last filename used.");
  
  
***************
*** 91,99 ****
  
  static int history_length = -1; /* do not truncate history by default */
! static char doc_read_history_file[] = "\
! read_history_file([filename]) -> None\n\
  Load a readline history file.\n\
! The default filename is ~/.history.\
! ";
  
  
--- 89,96 ----
  
  static int history_length = -1; /* do not truncate history by default */
! PyDoc_STRVAR(doc_read_history_file,
! "read_history_file([filename]) -> None\n\
  Load a readline history file.\n\
! The default filename is ~/.history.");
  
  
***************
*** 115,131 ****
  }
  
! static char doc_write_history_file[] = "\
! write_history_file([filename]) -> None\n\
  Save a readline history file.\n\
! The default filename is ~/.history.\
! ";
  
  
! static char set_history_length_doc[] = "\
! set_history_length(length) -> None\n\
  set the maximal number of items which will be written to\n\
  the history file. A negative length is used to inhibit\n\
! history truncation.\n\
! ";
  
  static PyObject*
--- 112,126 ----
  }
  
! PyDoc_STRVAR(doc_write_history_file,
! "write_history_file([filename]) -> None\n\
  Save a readline history file.\n\
! The default filename is ~/.history.");
  
  
! PyDoc_STRVAR(set_history_length_doc,
! "set_history_length(length) -> None\n\
  set the maximal number of items which will be written to\n\
  the history file. A negative length is used to inhibit\n\
! history truncation.");
  
  static PyObject*
***************
*** 142,150 ****
  
  
! static char get_history_length_doc[] = "\
! get_history_length() -> int\n\
  return the maximum number of items that will be written to\n\
! the history file.\n\
! ";
  
  static PyObject*
--- 137,144 ----
  
  
! PyDoc_STRVAR(get_history_length_doc,
! "get_history_length() -> int\n\
  return the maximum number of items that will be written to\n\
! the history file.");
  
  static PyObject*
***************
*** 205,214 ****
  }
  
! static char doc_set_startup_hook[] = "\
! set_startup_hook([function]) -> None\n\
  Set or remove the startup_hook function.\n\
  The function is called with no arguments just\n\
! before readline prints the first prompt.\n\
! ";
  
  #ifdef HAVE_RL_PRE_INPUT_HOOK
--- 199,207 ----
  }
  
! PyDoc_STRVAR(doc_set_startup_hook,
! "set_startup_hook([function]) -> None\n\
  Set or remove the startup_hook function.\n\
  The function is called with no arguments just\n\
! before readline prints the first prompt.");
  
  #ifdef HAVE_RL_PRE_INPUT_HOOK
***************
*** 219,229 ****
  }
  
! static char doc_set_pre_input_hook[] = "\
! set_pre_input_hook([function]) -> None\n\
  Set or remove the pre_input_hook function.\n\
  The function is called with no arguments after the first prompt\n\
  has been printed and just before readline starts reading input\n\
! characters.\n\
! ";
  #endif
  
--- 212,221 ----
  }
  
! PyDoc_STRVAR(doc_set_pre_input_hook,
! "set_pre_input_hook([function]) -> None\n\
  Set or remove the pre_input_hook function.\n\
  The function is called with no arguments after the first prompt\n\
  has been printed and just before readline starts reading input\n\
! characters.");
  #endif
  
***************
*** 244,250 ****
  }
  
! static char doc_get_begidx[] = "\
! get_begidx() -> int\n\
! get the beginning index of the readline tab-completion scope";
  
  /* get the ending index for the scope of the tab-completion */
--- 236,242 ----
  }
  
! PyDoc_STRVAR(doc_get_begidx,
! "get_begidx() -> int\n\
! get the beginning index of the readline tab-completion scope");
  
  /* get the ending index for the scope of the tab-completion */
***************
*** 256,262 ****
  }
  
! static char doc_get_endidx[] = "\
! get_endidx() -> int\n\
! get the ending index of the readline tab-completion scope";
  
  
--- 248,254 ----
  }
  
! PyDoc_STRVAR(doc_get_endidx,
! "get_endidx() -> int\n\
! get the ending index of the readline tab-completion scope");
  
  
***************
*** 277,283 ****
  }
  
! static char doc_set_completer_delims[] = "\
! set_completer_delims(string) -> None\n\
! set the readline word delimiters for tab-completion";
  
  static PyObject *
--- 269,275 ----
  }
  
! PyDoc_STRVAR(doc_set_completer_delims,
! "set_completer_delims(string) -> None\n\
! set the readline word delimiters for tab-completion");
  
  static PyObject *
***************
*** 294,300 ****
  }
  
! static char doc_add_history[] = "\
! add_history(string) -> None\n\
! add a line to the history buffer";
  
  
--- 286,292 ----
  }
  
! PyDoc_STRVAR(doc_add_history,
! "add_history(string) -> None\n\
! add a line to the history buffer");
  
  
***************
*** 307,313 ****
  }
  	
! static char doc_get_completer_delims[] = "\
! get_completer_delims() -> string\n\
! get the readline word delimiters for tab-completion";
  
  static PyObject *
--- 299,305 ----
  }
  	
! PyDoc_STRVAR(doc_get_completer_delims,
! "get_completer_delims() -> string\n\
! get the readline word delimiters for tab-completion");
  
  static PyObject *
***************
*** 317,327 ****
  }
  
! static char doc_set_completer[] = "\
! set_completer([function]) -> None\n\
  Set or remove the completer function.\n\
  The function is called as function(text, state),\n\
  for state in 0, 1, 2, ..., until it returns a non-string.\n\
! It should return the next possible completion starting with 'text'.\
! ";
  
  /* Exported function to get any element of history */
--- 309,318 ----
  }
  
! PyDoc_STRVAR(doc_set_completer,
! "set_completer([function]) -> None\n\
  Set or remove the completer function.\n\
  The function is called as function(text, state),\n\
  for state in 0, 1, 2, ..., until it returns a non-string.\n\
! It should return the next possible completion starting with 'text'.");
  
  /* Exported function to get any element of history */
***************
*** 343,350 ****
  }
  
! static char doc_get_history_item[] = "\
! get_history_item() -> string\n\
! return the current contents of history item at index.\
! ";
  
  /* Exported function to get current length of history */
--- 334,340 ----
  }
  
! PyDoc_STRVAR(doc_get_history_item,
! "get_history_item() -> string\n\
! return the current contents of history item at index.");
  
  /* Exported function to get current length of history */
***************
*** 359,366 ****
  }
  
! static char doc_get_current_history_length[] = "\
! get_current_history_length() -> integer\n\
! return the current (not the maximum) length of history.\
! ";
  
  /* Exported function to read the current line buffer */
--- 349,355 ----
  }
  
! PyDoc_STRVAR(doc_get_current_history_length,
! "get_current_history_length() -> integer\n\
! return the current (not the maximum) length of history.");
  
  /* Exported function to read the current line buffer */
***************
*** 372,379 ****
  }
  
! static char doc_get_line_buffer[] = "\
! get_line_buffer() -> string\n\
! return the current contents of the line buffer.\
! ";
  
  /* Exported function to insert text into the line buffer */
--- 361,367 ----
  }
  
! PyDoc_STRVAR(doc_get_line_buffer,
! "get_line_buffer() -> string\n\
! return the current contents of the line buffer.");
  
  /* Exported function to insert text into the line buffer */
***************
*** 390,397 ****
  }
  
! static char doc_insert_text[] = "\
! insert_text(string) -> None\n\
! Insert text into the command line.\
! ";
  
  static PyObject *
--- 378,384 ----
  }
  
! PyDoc_STRVAR(doc_insert_text,
! "insert_text(string) -> None\n\
! Insert text into the command line.");
  
  static PyObject *
***************
*** 403,411 ****
  }
  
! static char doc_redisplay[] = "\
! redisplay() -> None\n\
  Change what's displayed on the screen to reflect the current\n\
! contents of the line buffer.\
! ";
  
  /* Table of functions exported by the module */
--- 390,397 ----
  }
  
! PyDoc_STRVAR(doc_redisplay,
! "redisplay() -> None\n\
  Change what's displayed on the screen to reflect the current\n\
! contents of the line buffer.");
  
  /* Table of functions exported by the module */
***************
*** 664,669 ****
  /* Initialize the module */
  
! static char doc_module[] =
! "Importing this module enables command line editing using GNU readline.";
  
  DL_EXPORT(void)
--- 650,655 ----
  /* Initialize the module */
  
! PyDoc_STRVAR(doc_module,
! "Importing this module enables command line editing using GNU readline.");
  
  DL_EXPORT(void)

Index: resource.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/resource.c,v
retrieving revision 2.25
retrieving revision 2.26
diff -C2 -d -r2.25 -r2.26
*** resource.c	23 Apr 2002 20:15:04 -0000	2.25
--- resource.c	13 Jun 2002 20:32:52 -0000	2.26
***************
*** 18,27 ****
  static PyObject *ResourceError;
  
! static char struct_rusage__doc__[] =
! 	"struct_rusage: Result from getrusage.\n\n"
! 	"This object may be accessed either as a tuple of\n"
! 	"    (utime,stime,maxrss,ixrss,idrss,isrss,minflt,majflt,\n"
! 	"    nswap,inblock,oublock,msgsnd,msgrcv,nsignals,nvcsw,nivcsw)\n"
! 	"or via the attributes ru_utime, ru_stime, ru_maxrss, and so on.\n";
  
  static PyStructSequence_Field struct_rusage_fields[] = {
--- 18,27 ----
  static PyObject *ResourceError;
  
! PyDoc_STRVAR(struct_rusage__doc__,
! "struct_rusage: Result from getrusage.\n\n"
! "This object may be accessed either as a tuple of\n"
! "    (utime,stime,maxrss,ixrss,idrss,isrss,minflt,majflt,\n"
! "    nswap,inblock,oublock,msgsnd,msgrcv,nsignals,nvcsw,nivcsw)\n"
! "or via the attributes ru_utime, ru_stime, ru_maxrss, and so on.");
  
  static PyStructSequence_Field struct_rusage_fields[] = {

Index: selectmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/selectmodule.c,v
retrieving revision 2.63
retrieving revision 2.64
diff -C2 -d -r2.63 -r2.64
*** selectmodule.c	31 May 2002 21:47:02 -0000	2.63
--- selectmodule.c	13 Jun 2002 20:32:52 -0000	2.64
***************
*** 352,361 ****
  }
  
! static char poll_register_doc[] =
  "register(fd [, eventmask] ) -> None\n\n\
  Register a file descriptor with the polling object.\n\
  fd -- either an integer, or an object with a fileno() method returning an\n\
        int.\n\
! events -- an optional bitmask describing the type of events to check for";
  
  static PyObject *
--- 352,361 ----
  }
  
! PyDoc_STRVAR(poll_register_doc,
  "register(fd [, eventmask] ) -> None\n\n\
  Register a file descriptor with the polling object.\n\
  fd -- either an integer, or an object with a fileno() method returning an\n\
        int.\n\
! events -- an optional bitmask describing the type of events to check for");
  
  static PyObject *
***************
*** 395,401 ****
  }
  
! static char poll_unregister_doc[] =
  "unregister(fd) -> None\n\n\
! Remove a file descriptor being tracked by the polling object.";
  
  static PyObject *
--- 395,401 ----
  }
  
! PyDoc_STRVAR(poll_unregister_doc,
  "unregister(fd) -> None\n\n\
! Remove a file descriptor being tracked by the polling object.");
  
  static PyObject *
***************
*** 432,439 ****
  }
  
! static char poll_poll_doc[] =
  "poll( [timeout] ) -> list of (fd, event) 2-tuples\n\n\
  Polls the set of registered file descriptors, returning a list containing \n\
! any descriptors that have events or errors to report.";
  
  static PyObject *
--- 432,439 ----
  }
  
! PyDoc_STRVAR(poll_poll_doc,
  "poll( [timeout] ) -> list of (fd, event) 2-tuples\n\n\
  Polls the set of registered file descriptors, returning a list containing \n\
! any descriptors that have events or errors to report.");
  
  static PyObject *
***************
*** 581,587 ****
  };
  
! static char poll_doc[] = 
  "Returns a polling object, which supports registering and\n\
! unregistering file descriptors, and then polling them for I/O events.";
  
  static PyObject *
--- 581,587 ----
  };
  
! PyDoc_STRVAR(poll_doc,
  "Returns a polling object, which supports registering and\n\
! unregistering file descriptors, and then polling them for I/O events.");
  
  static PyObject *
***************
*** 599,603 ****
  #endif /* HAVE_POLL */
  
! static char select_doc[] =
  "select(rlist, wlist, xlist[, timeout]) -> (rlist, wlist, xlist)\n\
  \n\
--- 599,603 ----
  #endif /* HAVE_POLL */
  
! PyDoc_STRVAR(select_doc,
  "select(rlist, wlist, xlist[, timeout]) -> (rlist, wlist, xlist)\n\
  \n\
***************
*** 620,624 ****
  \n\
  *** IMPORTANT NOTICE ***\n\
! On Windows, only sockets are supported; on Unix, all file descriptors.";
  
  static PyMethodDef select_methods[] = {
--- 620,624 ----
  \n\
  *** IMPORTANT NOTICE ***\n\
! On Windows, only sockets are supported; on Unix, all file descriptors.");
  
  static PyMethodDef select_methods[] = {
***************
*** 630,638 ****
  };
  
! static char module_doc[] =
  "This module supports asynchronous I/O on multiple file descriptors.\n\
  \n\
  *** IMPORTANT NOTICE ***\n\
! On Windows, only sockets are supported; on Unix, all file descriptors.";
  
  DL_EXPORT(void)
--- 630,638 ----
  };
  
! PyDoc_STRVAR(module_doc,
  "This module supports asynchronous I/O on multiple file descriptors.\n\
  \n\
  *** IMPORTANT NOTICE ***\n\
! On Windows, only sockets are supported; on Unix, all file descriptors.");
  
  DL_EXPORT(void)

Index: shamodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/shamodule.c,v
retrieving revision 2.18
retrieving revision 2.19
diff -C2 -d -r2.18 -r2.19
*** shamodule.c	1 Apr 2002 14:30:50 -0000	2.18
--- shamodule.c	13 Jun 2002 20:32:52 -0000	2.19
***************
*** 351,356 ****
  /* External methods for a hashing object */
  
! static char SHA_copy__doc__[] = 
! "Return a copy of the hashing object.";
  
  static PyObject *
--- 351,355 ----
  /* External methods for a hashing object */
  
! PyDoc_STRVAR(SHA_copy__doc__, "Return a copy of the hashing object.");
  
  static PyObject *
***************
*** 369,374 ****
  }
  
! static char SHA_digest__doc__[] = 
! "Return the digest value as a string of binary data.";
  
  static PyObject *
--- 368,373 ----
  }
  
! PyDoc_STRVAR(SHA_digest__doc__,
! "Return the digest value as a string of binary data.");
  
  static PyObject *
***************
*** 386,391 ****
  }
  
! static char SHA_hexdigest__doc__[] = 
! "Return the digest value as a string of hexadecimal digits.";
  
  static PyObject *
--- 385,390 ----
  }
  
! PyDoc_STRVAR(SHA_hexdigest__doc__,
! "Return the digest value as a string of hexadecimal digits.");
  
  static PyObject *
***************
*** 428,433 ****
  }
  
! static char SHA_update__doc__[] = 
! "Update this hashing object's state with the provided string.";
  
  static PyObject *
--- 427,432 ----
  }
  
! PyDoc_STRVAR(SHA_update__doc__,
! "Update this hashing object's state with the provided string.");
  
  static PyObject *
***************
*** 480,487 ****
  /* The single module-level function: new() */
  
! static char SHA_new__doc__[] =
!  "Return a new SHA hashing object.  An optional string "
!  "argument may be provided; if present, this string will be "
!  " automatically hashed."; 
  
  static PyObject *
--- 479,486 ----
  /* The single module-level function: new() */
  
! PyDoc_STRVAR(SHA_new__doc__,
! "Return a new SHA hashing object.  An optional string argument\n\
! may be provided; if present, this string will be automatically\n\
! hashed.");
  
  static PyObject *

Index: signalmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/signalmodule.c,v
retrieving revision 2.67
retrieving revision 2.68
diff -C2 -d -r2.67 -r2.68
*** signalmodule.c	27 May 2002 15:08:23 -0000	2.67
--- signalmodule.c	13 Jun 2002 20:32:52 -0000	2.68
***************
*** 97,105 ****
  }
  
! static char default_int_handler_doc[] =
  "default_int_handler(...)\n\
  \n\
  The default handler for SIGINT instated by Python.\n\
! It raises KeyboardInterrupt.";
  
  
--- 97,105 ----
  }
  
! PyDoc_STRVAR(default_int_handler_doc,
  "default_int_handler(...)\n\
  \n\
  The default handler for SIGINT instated by Python.\n\
! It raises KeyboardInterrupt.");
  
  
***************
*** 156,163 ****
  }
  
! static char alarm_doc[] =
  "alarm(seconds)\n\
  \n\
! Arrange for SIGALRM to arrive after the given number of seconds.";
  #endif
  
--- 156,163 ----
  }
  
! PyDoc_STRVAR(alarm_doc,
  "alarm(seconds)\n\
  \n\
! Arrange for SIGALRM to arrive after the given number of seconds.");
  #endif
  
***************
*** 178,185 ****
  	return Py_None;
  }
! static char pause_doc[] =
  "pause()\n\
  \n\
! Wait until a signal arrives.";
  
  #endif
--- 178,185 ----
  	return Py_None;
  }
! PyDoc_STRVAR(pause_doc,
  "pause()\n\
  \n\
! Wait until a signal arrives.");
  
  #endif
***************
*** 232,236 ****
  }
  
! static char signal_doc[] =
  "signal(sig, action) -> action\n\
  \n\
--- 232,236 ----
  }
  
! PyDoc_STRVAR(signal_doc,
  "signal(sig, action) -> action\n\
  \n\
***************
*** 241,245 ****
  *** IMPORTANT NOTICE ***\n\
  A signal handler function is called with two arguments:\n\
! the first is the signal number, the second is the interrupted stack frame.";
  
  
--- 241,245 ----
  *** IMPORTANT NOTICE ***\n\
  A signal handler function is called with two arguments:\n\
! the first is the signal number, the second is the interrupted stack frame.");
  
  
***************
*** 261,265 ****
  }
  
! static char getsignal_doc[] =
  "getsignal(sig) -> action\n\
  \n\
--- 261,265 ----
  }
  
! PyDoc_STRVAR(getsignal_doc,
  "getsignal(sig) -> action\n\
  \n\
***************
*** 268,273 ****
  SIG_DFL -- if the default action for the signal is in effect\n\
  None -- if an unknown handler is in effect\n\
! anything else -- the callable Python object used as a handler\n\
! ";
  
  #ifdef HAVE_SIGPROCMASK /* we assume that having SIGPROCMASK is enough
--- 268,272 ----
  SIG_DFL -- if the default action for the signal is in effect\n\
  None -- if an unknown handler is in effect\n\
! anything else -- the callable Python object used as a handler");
  
  #ifdef HAVE_SIGPROCMASK /* we assume that having SIGPROCMASK is enough
***************
*** 354,358 ****
  }
  
! static char sigprocmask_doc[] = 
  "sigprocmask(how, sigset) -> sigset\n\
  \n\
--- 353,357 ----
  }
  
! PyDoc_STRVAR(sigprocmask_doc,
  "sigprocmask(how, sigset) -> sigset\n\
  \n\
***************
*** 372,376 ****
      The set of blocked signals is set to the argument set.\n\
  \n\
! A list contating the numbers of the previously blocked signals is returned.";
  
  static PyObject*
--- 371,375 ----
      The set of blocked signals is set to the argument set.\n\
  \n\
! A list contating the numbers of the previously blocked signals is returned.");
  
  static PyObject*
***************
*** 386,394 ****
  }
  
! static char sigpending_doc[] = 
  "sigpending() -> sigset\n\
  \n\
  Return the set of pending signals, i.e. a list containing the numbers of\n\
! those signals that have been raised while blocked.";
  
  static PyObject*
--- 385,393 ----
  }
  
! PyDoc_STRVAR(sigpending_doc,
  "sigpending() -> sigset\n\
  \n\
  Return the set of pending signals, i.e. a list containing the numbers of\n\
! those signals that have been raised while blocked.");
  
  static PyObject*
***************
*** 412,420 ****
  }
  
! static char sigsuspend_doc[] = 
  "sigsuspend(sigset) -> None\n\
  \n\
  Temporarily replace the signal mask with sigset (which should be a sequence\n\
! of signal numbers) and suspend the process until a signal is received.";
  #endif
  
--- 411,419 ----
  }
  
! PyDoc_STRVAR(sigsuspend_doc,
  "sigsuspend(sigset) -> None\n\
  \n\
  Temporarily replace the signal mask with sigset (which should be a sequence\n\
! of signal numbers) and suspend the process until a signal is received.");
  #endif
  
***************
*** 444,448 ****
  
  
! static char module_doc[] =
  "This module provides mechanisms to use signal handlers in Python.\n\
  \n\
--- 443,447 ----
  
  
! PyDoc_STRVAR(module_doc,
  "This module provides mechanisms to use signal handlers in Python.\n\
  \n\
***************
*** 469,473 ****
  *** IMPORTANT NOTICE ***\n\
  A signal handler function is called with two arguments:\n\
! the first is the signal number, the second is the interrupted stack frame.";
  
  DL_EXPORT(void)
--- 468,472 ----
  *** IMPORTANT NOTICE ***\n\
  A signal handler function is called with two arguments:\n\
! the first is the signal number, the second is the interrupted stack frame.");
  
  DL_EXPORT(void)

Index: socketmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/socketmodule.c,v
retrieving revision 1.227
retrieving revision 1.228
diff -C2 -d -r1.227 -r1.228
*** socketmodule.c	13 Jun 2002 16:07:04 -0000	1.227
--- socketmodule.c	13 Jun 2002 20:32:52 -0000	1.228
***************
*** 57,62 ****
  */
  
  /* Socket object documentation */
! static char sock_doc[] =
  "socket([family[, type[, proto]]]) -> socket object\n\
  \n\
--- 57,64 ----
  */
  
+ #include "Python.h"
+ 
  /* Socket object documentation */
! PyDoc_STRVAR(sock_doc,
  "socket([family[, type[, proto]]]) -> socket object\n\
  \n\
***************
*** 94,100 ****
  shutdown(how) -- shut down traffic in one or both directions\n\
  \n\
!  [*] not available on all platforms!";
! 
! #include "Python.h"
  
  /* XXX This is a terrible mess of of platform-dependent preprocessor hacks.
--- 96,100 ----
  shutdown(how) -- shut down traffic in one or both directions\n\
  \n\
!  [*] not available on all platforms!");
  
  /* XXX This is a terrible mess of of platform-dependent preprocessor hacks.
***************
*** 1002,1011 ****
  }
  
! static char accept_doc[] =
  "accept() -> (socket object, address info)\n\
  \n\
  Wait for an incoming connection.  Return a new socket representing the\n\
  connection, and the address of the client.  For IP sockets, the address\n\
! info is a pair (hostaddr, port).";
  
  /* s.setblocking(flag) method.  Argument:
--- 1002,1011 ----
  }
  
! PyDoc_STRVAR(accept_doc,
  "accept() -> (socket object, address info)\n\
  \n\
  Wait for an incoming connection.  Return a new socket representing the\n\
  connection, and the address of the client.  For IP sockets, the address\n\
! info is a pair (hostaddr, port).");
  
  /* s.setblocking(flag) method.  Argument:
***************
*** 1030,1039 ****
  }
  
! static char setblocking_doc[] =
  "setblocking(flag)\n\
  \n\
  Set the socket to blocking (flag is true) or non-blocking (false).\n\
  setblocking(True) is equivalent to settimeout(None);\n\
! setblocking(False) is equivalent to settimeout(0.0).";
  
  /* s.settimeout(timeout) method.  Argument:
--- 1030,1039 ----
  }
  
! PyDoc_STRVAR(setblocking_doc,
  "setblocking(flag)\n\
  \n\
  Set the socket to blocking (flag is true) or non-blocking (false).\n\
  setblocking(True) is equivalent to settimeout(None);\n\
! setblocking(False) is equivalent to settimeout(0.0).");
  
  /* s.settimeout(timeout) method.  Argument:
***************
*** 1067,1071 ****
  }
  
! static char settimeout_doc[] =
  "settimeout(timeout)\n\
  \n\
--- 1067,1071 ----
  }
  
! PyDoc_STRVAR(settimeout_doc,
  "settimeout(timeout)\n\
  \n\
***************
*** 1073,1077 ****
  giving in seconds, or None.  Setting a timeout of None disables\n\
  the timeout feature and is equivalent to setblocking(1).\n\
! Setting a timeout of zero is the same as setblocking(0).";
  
  /* s.gettimeout() method.
--- 1073,1077 ----
  giving in seconds, or None.  Setting a timeout of None disables\n\
  the timeout feature and is equivalent to setblocking(1).\n\
! Setting a timeout of zero is the same as setblocking(0).");
  
  /* s.gettimeout() method.
***************
*** 1088,1097 ****
  }
  
! static char gettimeout_doc[] =
  "gettimeout()\n\
  \n\
  Returns the timeout in floating seconds associated with socket \n\
  operations. A timeout of None indicates that timeouts on socket \n\
! operations are disabled.";
  
  #ifdef RISCOS
--- 1088,1097 ----
  }
  
! PyDoc_STRVAR(gettimeout_doc,
  "gettimeout()\n\
  \n\
  Returns the timeout in floating seconds associated with socket \n\
  operations. A timeout of None indicates that timeouts on socket \n\
! operations are disabled.");
  
  #ifdef RISCOS
***************
*** 1112,1119 ****
  	return Py_None;
  }
! static char sleeptaskw_doc[] =
  "sleeptaskw(flag)\n\
  \n\
! Allow sleeps in taskwindows.";
  #endif
  
--- 1112,1119 ----
  	return Py_None;
  }
! PyDoc_STRVAR(sleeptaskw_doc,
  "sleeptaskw(flag)\n\
  \n\
! Allow sleeps in taskwindows.");
  #endif
  
***************
*** 1152,1160 ****
  }
  
! static char setsockopt_doc[] =
  "setsockopt(level, option, value)\n\
  \n\
  Set a socket option.  See the Unix manual for level and option.\n\
! The value argument can either be an integer or a string.";
  
  
--- 1152,1160 ----
  }
  
! PyDoc_STRVAR(setsockopt_doc,
  "setsockopt(level, option, value)\n\
  \n\
  Set a socket option.  See the Unix manual for level and option.\n\
! The value argument can either be an integer or a string.");
  
  
***************
*** 1211,1220 ****
  }
  
! static char getsockopt_doc[] =
  "getsockopt(level, option[, buffersize]) -> value\n\
  \n\
  Get a socket option.  See the Unix manual for level and option.\n\
  If a nonzero buffersize argument is given, the return value is a\n\
! string of that length; otherwise it is an integer.";
  
  
--- 1211,1220 ----
  }
  
! PyDoc_STRVAR(getsockopt_doc,
  "getsockopt(level, option[, buffersize]) -> value\n\
  \n\
  Get a socket option.  See the Unix manual for level and option.\n\
  If a nonzero buffersize argument is given, the return value is a\n\
! string of that length; otherwise it is an integer.");
  
  
***************
*** 1239,1248 ****
  }
  
! static char bind_doc[] =
  "bind(address)\n\
  \n\
  Bind the socket to a local address.  For IP sockets, the address is a\n\
  pair (host, port); the host must refer to the local host. For raw packet\n\
! sockets the address is a tuple (ifname, proto [,pkttype [,hatype]])";
  
  
--- 1239,1248 ----
  }
  
! PyDoc_STRVAR(bind_doc,
  "bind(address)\n\
  \n\
  Bind the socket to a local address.  For IP sockets, the address is a\n\
  pair (host, port); the host must refer to the local host. For raw packet\n\
! sockets the address is a tuple (ifname, proto [,pkttype [,hatype]])");
  
  
***************
*** 1266,1273 ****
  }
  
! static char close_doc[] =
  "close()\n\
  \n\
! Close the socket.  It cannot be used after this call.";
  
  static int
--- 1266,1273 ----
  }
  
! PyDoc_STRVAR(close_doc,
  "close()\n\
  \n\
! Close the socket.  It cannot be used after this call.");
  
  static int
***************
*** 1331,1339 ****
  }
  
! static char connect_doc[] =
  "connect(address)\n\
  \n\
  Connect the socket to a remote address.  For IP sockets, the address\n\
! is a pair (host, port).";
  
  
--- 1331,1339 ----
  }
  
! PyDoc_STRVAR(connect_doc,
  "connect(address)\n\
  \n\
  Connect the socket to a remote address.  For IP sockets, the address\n\
! is a pair (host, port).");
  
  
***************
*** 1357,1365 ****
  }
  
! static char connect_ex_doc[] =
  "connect_ex(address)\n\
  \n\
  This is like connect(address), but returns an error code (the errno value)\n\
! instead of raising an exception when an error occurs.";
  
  
--- 1357,1365 ----
  }
  
! PyDoc_STRVAR(connect_ex_doc,
  "connect_ex(address)\n\
  \n\
  This is like connect(address), but returns an error code (the errno value)\n\
! instead of raising an exception when an error occurs.");
  
  
***************
*** 1376,1383 ****
  }
  
! static char fileno_doc[] =
  "fileno() -> integer\n\
  \n\
! Return the integer file descriptor of the socket.";
  
  
--- 1376,1383 ----
  }
  
! PyDoc_STRVAR(fileno_doc,
  "fileno() -> integer\n\
  \n\
! Return the integer file descriptor of the socket.");
  
  
***************
*** 1403,1410 ****
  }
  
! static char dup_doc[] =
  "dup() -> socket object\n\
  \n\
! Return a new socket object connected to the same system resource.";
  
  #endif
--- 1403,1410 ----
  }
  
! PyDoc_STRVAR(dup_doc,
  "dup() -> socket object\n\
  \n\
! Return a new socket object connected to the same system resource.");
  
  #endif
***************
*** 1431,1439 ****
  }
  
! static char getsockname_doc[] =
  "getsockname() -> address info\n\
  \n\
  Return the address of the local endpoint.  For IP sockets, the address\n\
! info is a pair (hostaddr, port).";
  
  
--- 1431,1439 ----
  }
  
! PyDoc_STRVAR(getsockname_doc,
  "getsockname() -> address info\n\
  \n\
  Return the address of the local endpoint.  For IP sockets, the address\n\
! info is a pair (hostaddr, port).");
  
  
***************
*** 1459,1467 ****
  }
  
! static char getpeername_doc[] =
  "getpeername() -> address info\n\
  \n\
  Return the address of the remote endpoint.  For IP sockets, the address\n\
! info is a pair (hostaddr, port).";
  
  #endif /* HAVE_GETPEERNAME */
--- 1459,1467 ----
  }
  
! PyDoc_STRVAR(getpeername_doc,
  "getpeername() -> address info\n\
  \n\
  Return the address of the remote endpoint.  For IP sockets, the address\n\
! info is a pair (hostaddr, port).");
  
  #endif /* HAVE_GETPEERNAME */
***************
*** 1490,1499 ****
  }
  
! static char listen_doc[] =
  "listen(backlog)\n\
  \n\
  Enable a server to accept connections.  The backlog argument must be at\n\
  least 1; it specifies the number of unaccepted connection that the system\n\
! will allow before refusing new connections.";
  
  
--- 1490,1499 ----
  }
  
! PyDoc_STRVAR(listen_doc,
  "listen(backlog)\n\
  \n\
  Enable a server to accept connections.  The backlog argument must be at\n\
  least 1; it specifies the number of unaccepted connection that the system\n\
! will allow before refusing new connections.");
  
  
***************
*** 1544,1552 ****
  }
  
! static char makefile_doc[] =
  "makefile([mode[, buffersize]]) -> file object\n\
  \n\
  Return a regular file object corresponding to the socket.\n\
! The mode and buffersize arguments are as for the built-in open() function.";
  
  #endif /* NO_DUP */
--- 1544,1552 ----
  }
  
! PyDoc_STRVAR(makefile_doc,
  "makefile([mode[, buffersize]]) -> file object\n\
  \n\
  Return a regular file object corresponding to the socket.\n\
! The mode and buffersize arguments are as for the built-in open() function.");
  
  #endif /* NO_DUP */
***************
*** 1588,1592 ****
  }
  
! static char recv_doc[] =
  "recv(buffersize[, flags]) -> data\n\
  \n\
--- 1588,1592 ----
  }
  
! PyDoc_STRVAR(recv_doc,
  "recv(buffersize[, flags]) -> data\n\
  \n\
***************
*** 1594,1598 ****
  argument, see the Unix manual.  When no data is available, block until\n\
  at least one byte is available or until the remote end is closed.  When\n\
! the remote end is closed and all data is read, return the empty string.";
  
  
--- 1594,1598 ----
  argument, see the Unix manual.  When no data is available, block until\n\
  at least one byte is available or until the remote end is closed.  When\n\
! the remote end is closed and all data is read, return the empty string.");
  
  
***************
*** 1654,1661 ****
  }
  
! static char recvfrom_doc[] =
  "recvfrom(buffersize[, flags]) -> (data, address info)\n\
  \n\
! Like recv(buffersize, flags) but also return the sender's address info.";
  
  /* s.send(data [,flags]) method */
--- 1654,1661 ----
  }
  
! PyDoc_STRVAR(recvfrom_doc,
  "recvfrom(buffersize[, flags]) -> (data, address info)\n\
  \n\
! Like recv(buffersize, flags) but also return the sender's address info.");
  
  /* s.send(data [,flags]) method */
***************
*** 1680,1689 ****
  }
  
! static char send_doc[] =
  "send(data[, flags]) -> count\n\
  \n\
  Send a data string to the socket.  For the optional flags\n\
  argument, see the Unix manual.  Return the number of bytes\n\
! sent; this may be less than len(data) if the network is busy.";
  
  
--- 1680,1689 ----
  }
  
! PyDoc_STRVAR(send_doc,
  "send(data[, flags]) -> count\n\
  \n\
  Send a data string to the socket.  For the optional flags\n\
  argument, see the Unix manual.  Return the number of bytes\n\
! sent; this may be less than len(data) if the network is busy.");
  
  
***************
*** 1717,1721 ****
  }
  
! static char sendall_doc[] =
  "sendall(data[, flags])\n\
  \n\
--- 1717,1721 ----
  }
  
! PyDoc_STRVAR(sendall_doc,
  "sendall(data[, flags])\n\
  \n\
***************
*** 1723,1727 ****
  argument, see the Unix manual.  This calls send() repeatedly\n\
  until all data is sent.  If an error occurs, it's impossible\n\
! to tell how much data has been sent.";
  
  
--- 1723,1727 ----
  argument, see the Unix manual.  This calls send() repeatedly\n\
  until all data is sent.  If an error occurs, it's impossible\n\
! to tell how much data has been sent.");
  
  
***************
*** 1757,1765 ****
  }
  
! static char sendto_doc[] =
  "sendto(data[, flags], address)\n\
  \n\
  Like send(data, flags) but allows specifying the destination address.\n\
! For IP sockets, the address is a pair (hostaddr, port).";
  
  
--- 1757,1765 ----
  }
  
! PyDoc_STRVAR(sendto_doc,
  "sendto(data[, flags], address)\n\
  \n\
  Like send(data, flags) but allows specifying the destination address.\n\
! For IP sockets, the address is a pair (hostaddr, port).");
  
  
***************
*** 1784,1792 ****
  }
  
! static char shutdown_doc[] =
  "shutdown(flag)\n\
  \n\
  Shut down the reading side of the socket (flag == 0), the writing side\n\
! of the socket (flag == 1), or both ends (flag == 2).";
  
  
--- 1784,1792 ----
  }
  
! PyDoc_STRVAR(shutdown_doc,
  "shutdown(flag)\n\
  \n\
  Shut down the reading side of the socket (flag == 0), the writing side\n\
! of the socket (flag == 1), or both ends (flag == 2).");
  
  
***************
*** 2012,2019 ****
  }
  
! static char gethostname_doc[] =
  "gethostname() -> string\n\
  \n\
! Return the current host name.";
  
  
--- 2012,2019 ----
  }
  
! PyDoc_STRVAR(gethostname_doc,
  "gethostname() -> string\n\
  \n\
! Return the current host name.");
  
  
***************
*** 2035,2042 ****
  }
  
! static char gethostbyname_doc[] =
  "gethostbyname(host) -> address\n\
  \n\
! Return the IP address (a string of the form '255.255.255.255') for a host.";
  
  
--- 2035,2042 ----
  }
  
! PyDoc_STRVAR(gethostbyname_doc,
  "gethostbyname(host) -> address\n\
  \n\
! Return the IP address (a string of the form '255.255.255.255') for a host.");
  
  
***************
*** 2236,2244 ****
  }
  
! static char ghbn_ex_doc[] =
  "gethostbyname_ex(host) -> (name, aliaslist, addresslist)\n\
  \n\
  Return the true host name, a list of aliases, and a list of IP addresses,\n\
! for a host.  The host argument is a string giving a host name or IP number.";
  
  
--- 2236,2244 ----
  }
  
! PyDoc_STRVAR(ghbn_ex_doc,
  "gethostbyname_ex(host) -> (name, aliaslist, addresslist)\n\
  \n\
  Return the true host name, a list of aliases, and a list of IP addresses,\n\
! for a host.  The host argument is a string giving a host name or IP number.");
  
  
***************
*** 2326,2334 ****
  }
  
! static char gethostbyaddr_doc[] =
  "gethostbyaddr(host) -> (name, aliaslist, addresslist)\n\
  \n\
  Return the true host name, a list of aliases, and a list of IP addresses,\n\
! for a host.  The host argument is a string giving a host name or IP number.";
  
  
--- 2326,2334 ----
  }
  
! PyDoc_STRVAR(gethostbyaddr_doc,
  "gethostbyaddr(host) -> (name, aliaslist, addresslist)\n\
  \n\
  Return the true host name, a list of aliases, and a list of IP addresses,\n\
! for a host.  The host argument is a string giving a host name or IP number.");
  
  
***************
*** 2355,2363 ****
  }
  
! static char getservbyname_doc[] =
  "getservbyname(servicename, protocolname) -> integer\n\
  \n\
  Return a port number from a service name and protocol name.\n\
! The protocol name should be 'tcp' or 'udp'.";
  
  
--- 2355,2363 ----
  }
  
! PyDoc_STRVAR(getservbyname_doc,
  "getservbyname(servicename, protocolname) -> integer\n\
  \n\
  Return a port number from a service name and protocol name.\n\
! The protocol name should be 'tcp' or 'udp'.");
  
  
***************
*** 2390,2397 ****
  }
  
! static char getprotobyname_doc[] =
  "getprotobyname(name) -> integer\n\
  \n\
! Return the protocol number for the named protocol.  (Rarely used.)";
  
  
--- 2390,2397 ----
  }
  
! PyDoc_STRVAR(getprotobyname_doc,
  "getprotobyname(name) -> integer\n\
  \n\
! Return the protocol number for the named protocol.  (Rarely used.)");
  
  
***************
*** 2424,2432 ****
  }
  
! static char fromfd_doc[] =
  "fromfd(fd, family, type[, proto]) -> socket object\n\
  \n\
  Create a socket object from the given file descriptor.\n\
! The remaining arguments are the same as for socket().";
  
  #endif /* NO_DUP */
--- 2424,2432 ----
  }
  
! PyDoc_STRVAR(fromfd_doc,
  "fromfd(fd, family, type[, proto]) -> socket object\n\
  \n\
  Create a socket object from the given file descriptor.\n\
! The remaining arguments are the same as for socket().");
  
  #endif /* NO_DUP */
***************
*** 2445,2452 ****
  }
  
! static char ntohs_doc[] =
  "ntohs(integer) -> integer\n\
  \n\
! Convert a 16-bit integer from network to host byte order.";
  
  
--- 2445,2452 ----
  }
  
! PyDoc_STRVAR(ntohs_doc,
  "ntohs(integer) -> integer\n\
  \n\
! Convert a 16-bit integer from network to host byte order.");
  
  
***************
*** 2463,2470 ****
  }
  
! static char ntohl_doc[] =
  "ntohl(integer) -> integer\n\
  \n\
! Convert a 32-bit integer from network to host byte order.";
  
  
--- 2463,2470 ----
  }
  
! PyDoc_STRVAR(ntohl_doc,
  "ntohl(integer) -> integer\n\
  \n\
! Convert a 32-bit integer from network to host byte order.");
  
  
***************
*** 2481,2488 ****
  }
  
! static char htons_doc[] =
  "htons(integer) -> integer\n\
  \n\
! Convert a 16-bit integer from host to network byte order.";
  
  
--- 2481,2488 ----
  }
  
! PyDoc_STRVAR(htons_doc,
  "htons(integer) -> integer\n\
  \n\
! Convert a 16-bit integer from host to network byte order.");
  
  
***************
*** 2499,2514 ****
  }
  
! static char htonl_doc[] =
  "htonl(integer) -> integer\n\
  \n\
! Convert a 32-bit integer from host to network byte order.";
  
  /* socket.inet_aton() and socket.inet_ntoa() functions. */
  
! static char inet_aton_doc[] =
  "inet_aton(string) -> packed 32-bit IP representation\n\
  \n\
  Convert an IP address in string format (123.45.67.89) to the 32-bit packed\n\
! binary format used in low-level network functions.";
  
  static PyObject*
--- 2499,2514 ----
  }
  
! PyDoc_STRVAR(htonl_doc,
  "htonl(integer) -> integer\n\
  \n\
! Convert a 32-bit integer from host to network byte order.");
  
  /* socket.inet_aton() and socket.inet_ntoa() functions. */
  
! PyDoc_STRVAR(inet_aton_doc,
  "inet_aton(string) -> packed 32-bit IP representation\n\
  \n\
  Convert an IP address in string format (123.45.67.89) to the 32-bit packed\n\
! binary format used in low-level network functions.");
  
  static PyObject*
***************
*** 2538,2545 ****
  }
  
! static char inet_ntoa_doc[] =
  "inet_ntoa(packed_ip) -> ip_address_string\n\
  \n\
! Convert an IP address from 32-bit packed binary format to string format";
  
  static PyObject*
--- 2538,2545 ----
  }
  
! PyDoc_STRVAR(inet_ntoa_doc,
  "inet_ntoa(packed_ip) -> ip_address_string\n\
  \n\
! Convert an IP address from 32-bit packed binary format to string format");
  
  static PyObject*
***************
*** 2638,2646 ****
  }
  
! static char getaddrinfo_doc[] =
  "socket.getaddrinfo(host, port [, family, socktype, proto, flags])\n\
  	--> List of (family, socktype, proto, canonname, sockaddr)\n\
  \n\
! Resolve host and port into addrinfo struct.";
  
  /* Python interface to getnameinfo(sa, flags). */
--- 2638,2646 ----
  }
  
! PyDoc_STRVAR(getaddrinfo_doc,
  "socket.getaddrinfo(host, port [, family, socktype, proto, flags])\n\
  	--> List of (family, socktype, proto, canonname, sockaddr)\n\
  \n\
! Resolve host and port into addrinfo struct.");
  
  /* Python interface to getnameinfo(sa, flags). */
***************
*** 2716,2723 ****
  }
  
! static char getnameinfo_doc[] =
  "socket.getnameinfo(sockaddr, flags) --> (host, port)\n\
  \n\
! Get host and port for a sockaddr.";
  
  /* List of functions exported by this module. */
--- 2716,2723 ----
  }
  
! PyDoc_STRVAR(getnameinfo_doc,
  "socket.getnameinfo(sockaddr, flags) --> (host, port)\n\
  \n\
! Get host and port for a sockaddr.");
  
  /* List of functions exported by this module. */
***************
*** 2883,2889 ****
  */
  
! static char socket_doc[] =
  "Implementation module for socket operations.  See the socket module\n\
! for documentation.";
  
  DL_EXPORT(void)
--- 2883,2889 ----
  */
  
! PyDoc_STRVAR(socket_doc,
  "Implementation module for socket operations.  See the socket module\n\
! for documentation.");
  
  DL_EXPORT(void)

Index: stropmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/stropmodule.c,v
retrieving revision 2.88
retrieving revision 2.89
diff -C2 -d -r2.88 -r2.89
*** stropmodule.c	27 Apr 2002 18:44:31 -0000	2.88
--- stropmodule.c	13 Jun 2002 20:32:53 -0000	2.89
***************
*** 1,13 ****
  /* strop module */
  
! static char strop_module__doc__[] =
  "Common string manipulations, optimized for speed.\n"
  "\n"
  "Always use \"import string\" rather than referencing\n"
! "this module directly.";
! 
! #include "Python.h"
  
- #include <ctype.h>
  /* XXX This file assumes that the <ctype.h> is*() functions
     XXX are defined for all 8-bit characters! */
--- 1,13 ----
  /* strop module */
  
! #include "Python.h"
! #include <ctype.h>
! 
! PyDoc_STRVAR(strop_module__doc__,
  "Common string manipulations, optimized for speed.\n"
  "\n"
  "Always use \"import string\" rather than referencing\n"
! "this module directly.");
  
  /* XXX This file assumes that the <ctype.h> is*() functions
     XXX are defined for all 8-bit characters! */
***************
*** 81,85 ****
  
  
! static char splitfields__doc__[] =
  "split(s [,sep [,maxsplit]]) -> list of strings\n"
  "splitfields(s [,sep [,maxsplit]]) -> list of strings\n"
--- 81,85 ----
  
  
! PyDoc_STRVAR(splitfields__doc__,
  "split(s [,sep [,maxsplit]]) -> list of strings\n"
  "splitfields(s [,sep [,maxsplit]]) -> list of strings\n"
***************
*** 90,94 ****
  "is a separator.  Maxsplit defaults to 0.\n"
  "\n"
! "(split and splitfields are synonymous)";
  
  static PyObject *
--- 90,94 ----
  "is a separator.  Maxsplit defaults to 0.\n"
  "\n"
! "(split and splitfields are synonymous)");
  
  static PyObject *
***************
*** 152,156 ****
  
  
! static char joinfields__doc__[] =
  "join(list [,sep]) -> string\n"
  "joinfields(list [,sep]) -> string\n"
--- 152,156 ----
  
  
! PyDoc_STRVAR(joinfields__doc__,
  "join(list [,sep]) -> string\n"
  "joinfields(list [,sep]) -> string\n"
***************
*** 160,164 ****
  "space.\n"
  "\n"
! "(join and joinfields are synonymous)";
  
  static PyObject *
--- 160,164 ----
  "space.\n"
  "\n"
! "(join and joinfields are synonymous)");
  
  static PyObject *
***************
*** 275,279 ****
  
  
! static char find__doc__[] =
  "find(s, sub [,start [,end]]) -> in\n"
  "\n"
--- 275,279 ----
  
  
! PyDoc_STRVAR(find__doc__,
  "find(s, sub [,start [,end]]) -> in\n"
  "\n"
***************
*** 282,286 ****
  "arguments start and end are interpreted as in slice notation.\n"
  "\n"
! "Return -1 on failure.";
  
  static PyObject *
--- 282,286 ----
  "arguments start and end are interpreted as in slice notation.\n"
  "\n"
! "Return -1 on failure.");
  
  static PyObject *
***************
*** 318,322 ****
  
  
! static char rfind__doc__[] =
  "rfind(s, sub [,start [,end]]) -> int\n"
  "\n"
--- 318,322 ----
  
  
! PyDoc_STRVAR(rfind__doc__,
  "rfind(s, sub [,start [,end]]) -> int\n"
  "\n"
***************
*** 325,329 ****
  "arguments start and end are interpreted as in slice notation.\n"
  "\n"
! "Return -1 on failure.";
  
  static PyObject *
--- 325,329 ----
  "arguments start and end are interpreted as in slice notation.\n"
  "\n"
! "Return -1 on failure.");
  
  static PyObject *
***************
*** 395,403 ****
  
  
! static char strip__doc__[] =
  "strip(s) -> string\n"
  "\n"
  "Return a copy of the string s with leading and trailing\n"
! "whitespace removed.";
  
  static PyObject *
--- 395,403 ----
  
  
! PyDoc_STRVAR(strip__doc__,
  "strip(s) -> string\n"
  "\n"
  "Return a copy of the string s with leading and trailing\n"
! "whitespace removed.");
  
  static PyObject *
***************
*** 409,416 ****
  
  
! static char lstrip__doc__[] =
  "lstrip(s) -> string\n"
  "\n"
! "Return a copy of the string s with leading whitespace removed.";
  
  static PyObject *
--- 409,416 ----
  
  
! PyDoc_STRVAR(lstrip__doc__,
  "lstrip(s) -> string\n"
  "\n"
! "Return a copy of the string s with leading whitespace removed.");
  
  static PyObject *
***************
*** 422,429 ****
  
  
! static char rstrip__doc__[] =
  "rstrip(s) -> string\n"
  "\n"
! "Return a copy of the string s with trailing whitespace removed.";
  
  static PyObject *
--- 422,429 ----
  
  
! PyDoc_STRVAR(rstrip__doc__,
  "rstrip(s) -> string\n"
  "\n"
! "Return a copy of the string s with trailing whitespace removed.");
  
  static PyObject *
***************
*** 435,442 ****
  
  
! static char lower__doc__[] =
  "lower(s) -> string\n"
  "\n"
! "Return a copy of the string s converted to lowercase.";
  
  static PyObject *
--- 435,442 ----
  
  
! PyDoc_STRVAR(lower__doc__,
  "lower(s) -> string\n"
  "\n"
! "Return a copy of the string s converted to lowercase.");
  
  static PyObject *
***************
*** 474,481 ****
  
  
! static char upper__doc__[] =
  "upper(s) -> string\n"
  "\n"
! "Return a copy of the string s converted to uppercase.";
  
  static PyObject *
--- 474,481 ----
  
  
! PyDoc_STRVAR(upper__doc__,
  "upper(s) -> string\n"
  "\n"
! "Return a copy of the string s converted to uppercase.");
  
  static PyObject *
***************
*** 513,521 ****
  
  
! static char capitalize__doc__[] =
  "capitalize(s) -> string\n"
  "\n"
  "Return a copy of the string s with only its first character\n"
! "capitalized.";
  
  static PyObject *
--- 513,521 ----
  
  
! PyDoc_STRVAR(capitalize__doc__,
  "capitalize(s) -> string\n"
  "\n"
  "Return a copy of the string s with only its first character\n"
! "capitalized.");
  
  static PyObject *
***************
*** 562,566 ****
  
  
! static char expandtabs__doc__[] =
  "expandtabs(string, [tabsize]) -> string\n"
  "\n"
--- 562,566 ----
  
  
! PyDoc_STRVAR(expandtabs__doc__,
  "expandtabs(string, [tabsize]) -> string\n"
  "\n"
***************
*** 568,572 ****
  "depending on the current column and the given tab size (default 8).\n"
  "The column number is reset to zero after each newline occurring in the\n"
! "string.  This doesn't understand other non-printing characters.";
  
  static PyObject *
--- 568,572 ----
  "depending on the current column and the given tab size (default 8).\n"
  "The column number is reset to zero after each newline occurring in the\n"
! "string.  This doesn't understand other non-printing characters.");
  
  static PyObject *
***************
*** 634,643 ****
  
  
! static char count__doc__[] =
  "count(s, sub[, start[, end]]) -> int\n"
  "\n"
  "Return the number of occurrences of substring sub in string\n"
  "s[start:end].  Optional arguments start and end are\n"
! "interpreted as in slice notation.";
  
  static PyObject *
--- 634,643 ----
  
  
! PyDoc_STRVAR(count__doc__,
  "count(s, sub[, start[, end]]) -> int\n"
  "\n"
  "Return the number of occurrences of substring sub in string\n"
  "s[start:end].  Optional arguments start and end are\n"
! "interpreted as in slice notation.");
  
  static PyObject *
***************
*** 679,687 ****
  
  
! static char swapcase__doc__[] =
  "swapcase(s) -> string\n"
  "\n"
  "Return a copy of the string s with upper case characters\n"
! "converted to lowercase and vice versa.";
  
  static PyObject *
--- 679,687 ----
  
  
! PyDoc_STRVAR(swapcase__doc__,
  "swapcase(s) -> string\n"
  "\n"
  "Return a copy of the string s with upper case characters\n"
! "converted to lowercase and vice versa.");
  
  static PyObject *
***************
*** 724,728 ****
  
  
! static char atoi__doc__[] =
  "atoi(s [,base]) -> int\n"
  "\n"
--- 724,728 ----
  
  
! PyDoc_STRVAR(atoi__doc__,
  "atoi(s [,base]) -> int\n"
  "\n"
***************
*** 732,736 ****
  "is chosen from the leading characters of s, 0 for octal, 0x or\n"
  "0X for hexadecimal.  If base is 16, a preceding 0x or 0X is\n"
! "accepted.";
  
  static PyObject *
--- 732,736 ----
  "is chosen from the leading characters of s, 0 for octal, 0x or\n"
  "0X for hexadecimal.  If base is 16, a preceding 0x or 0X is\n"
! "accepted.");
  
  static PyObject *
***************
*** 779,783 ****
  
  
! static char atol__doc__[] =
  "atol(s [,base]) -> long\n"
  "\n"
--- 779,783 ----
  
  
! PyDoc_STRVAR(atol__doc__,
  "atol(s [,base]) -> long\n"
  "\n"
***************
*** 788,792 ****
  "octal, 0x or 0X for hexadecimal.  If base is 16, a preceding\n"
  "0x or 0X is accepted.  A trailing L or l is not accepted,\n"
! "unless base is 0.";
  
  static PyObject *
--- 788,792 ----
  "octal, 0x or 0X for hexadecimal.  If base is 16, a preceding\n"
  "0x or 0X is accepted.  A trailing L or l is not accepted,\n"
! "unless base is 0.");
  
  static PyObject *
***************
*** 831,838 ****
  
  
! static char atof__doc__[] =
  "atof(s) -> float\n"
  "\n"
! "Return the floating point number represented by the string s.";
  
  static PyObject *
--- 831,838 ----
  
  
! PyDoc_STRVAR(atof__doc__,
  "atof(s) -> float\n"
  "\n"
! "Return the floating point number represented by the string s.");
  
  static PyObject *
***************
*** 875,884 ****
  
  
! static char maketrans__doc__[] =
  "maketrans(frm, to) -> string\n"
  "\n"
  "Return a translation table (a string of 256 bytes long)\n"
  "suitable for use in string.translate.  The strings frm and to\n"
! "must be of the same length.";
  
  static PyObject *
--- 875,884 ----
  
  
! PyDoc_STRVAR(maketrans__doc__,
  "maketrans(frm, to) -> string\n"
  "\n"
  "Return a translation table (a string of 256 bytes long)\n"
  "suitable for use in string.translate.  The strings frm and to\n"
! "must be of the same length.");
  
  static PyObject *
***************
*** 911,915 ****
  
  
! static char translate__doc__[] =
  "translate(s,table [,deletechars]) -> string\n"
  "\n"
--- 911,915 ----
  
  
! PyDoc_STRVAR(translate__doc__,
  "translate(s,table [,deletechars]) -> string\n"
  "\n"
***************
*** 917,921 ****
  "in the optional argument deletechars are removed, and the\n"
  "remaining characters have been mapped through the given\n"
! "translation table, which must be a string of length 256.";
  
  static PyObject *
--- 917,921 ----
  "in the optional argument deletechars are removed, and the\n"
  "remaining characters have been mapped through the given\n"
! "translation table, which must be a string of length 256.");
  
  static PyObject *
***************
*** 1127,1136 ****
  
  
! static char replace__doc__[] =
  "replace (str, old, new[, maxsplit]) -> string\n"
  "\n"
  "Return a copy of string str with all occurrences of substring\n"
  "old replaced by new. If the optional argument maxsplit is\n"
! "given, only the first maxsplit occurrences are replaced.";
  
  static PyObject *
--- 1127,1136 ----
  
  
! PyDoc_STRVAR(replace__doc__,
  "replace (str, old, new[, maxsplit]) -> string\n"
  "\n"
  "Return a copy of string str with all occurrences of substring\n"
  "old replaced by new. If the optional argument maxsplit is\n"
! "given, only the first maxsplit occurrences are replaced.");
  
  static PyObject *

Index: structmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/structmodule.c,v
retrieving revision 2.54
retrieving revision 2.55
diff -C2 -d -r2.54 -r2.55
*** structmodule.c	2 Apr 2002 18:17:55 -0000	2.54
--- structmodule.c	13 Jun 2002 20:32:53 -0000	2.55
***************
*** 5,10 ****
     character strings, and unsigned numbers */
  
! static char struct__doc__[] = "\
! Functions to convert between Python values and C structs.\n\
  Python strings are used to hold the data representing the C struct\n\
  and also as format strings to describe the layout of data in the C struct.\n\
--- 5,13 ----
     character strings, and unsigned numbers */
  
! #include "Python.h"
! #include <ctype.h>
! 
! PyDoc_STRVAR(struct__doc__,
! "Functions to convert between Python values and C structs.\n\
  Python strings are used to hold the data representing the C struct\n\
  and also as format strings to describe the layout of data in the C struct.\n\
***************
*** 30,38 ****
  Whitespace between formats is ignored.\n\
  \n\
! The variable struct.error is an exception raised on errors.";
! 
! #include "Python.h"
! 
! #include <ctype.h>
  
  
--- 33,37 ----
  Whitespace between formats is ignored.\n\
  \n\
! The variable struct.error is an exception raised on errors.");
  
  
***************
*** 1228,1235 ****
  
  
! static char calcsize__doc__[] = "\
! calcsize(fmt) -> int\n\
  Return size of C struct described by format string fmt.\n\
! See struct.__doc__ for more on format strings.";
  
  static PyObject *
--- 1227,1234 ----
  
  
! PyDoc_STRVAR(calcsize__doc__,
! "calcsize(fmt) -> int\n\
  Return size of C struct described by format string fmt.\n\
! See struct.__doc__ for more on format strings.");
  
  static PyObject *
***************
*** 1250,1257 ****
  
  
! static char pack__doc__[] = "\
! pack(fmt, v1, v2, ...) -> string\n\
  Return string containing values v1, v2, ... packed according to fmt.\n\
! See struct.__doc__ for more on format strings.";
  
  static PyObject *
--- 1249,1256 ----
  
  
! PyDoc_STRVAR(pack__doc__,
! "pack(fmt, v1, v2, ...) -> string\n\
  Return string containing values v1, v2, ... packed according to fmt.\n\
! See struct.__doc__ for more on format strings.");
  
  static PyObject *
***************
*** 1390,1398 ****
  
  
! static char unpack__doc__[] = "\
! unpack(fmt, string) -> (v1, v2, ...)\n\
  Unpack the string, containing packed C structure data, according\n\
  to fmt.  Requires len(string)==calcsize(fmt).\n\
! See struct.__doc__ for more on format strings.";
  
  static PyObject *
--- 1389,1397 ----
  
  
! PyDoc_STRVAR(unpack__doc__,
! "unpack(fmt, string) -> (v1, v2, ...)\n\
  Unpack the string, containing packed C structure data, according\n\
  to fmt.  Requires len(string)==calcsize(fmt).\n\
! See struct.__doc__ for more on format strings.");
  
  static PyObject *

Index: termios.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/termios.c,v
retrieving revision 2.34
retrieving revision 2.35
diff -C2 -d -r2.34 -r2.35
*** termios.c	3 Mar 2002 02:59:16 -0000	2.34
--- termios.c	13 Jun 2002 20:32:53 -0000	2.35
***************
*** 21,26 ****
  #endif
  
! static char termios__doc__[] = "\
! This module provides an interface to the Posix calls for tty I/O control.\n\
  For a complete description of these calls, see the Posix or Unix manual\n\
  pages. It is only available for those Unix versions that support Posix\n\
--- 21,26 ----
  #endif
  
! PyDoc_STRVAR(termios__doc__,
! "This module provides an interface to the Posix calls for tty I/O control.\n\
  For a complete description of these calls, see the Posix or Unix manual\n\
  pages. It is only available for those Unix versions that support Posix\n\
***************
*** 29,33 ****
  All functions in this module take a file descriptor fd as their first\n\
  argument. This can be an integer file descriptor, such as returned by\n\
! sys.stdin.fileno(), or a file object, such as sys.stdin itself.";
  
  static PyObject *TermiosError;
--- 29,33 ----
  All functions in this module take a file descriptor fd as their first\n\
  argument. This can be an integer file descriptor, such as returned by\n\
! sys.stdin.fileno(), or a file object, such as sys.stdin itself.");
  
  static PyObject *TermiosError;
***************
*** 45,50 ****
  }
  
! static char termios_tcgetattr__doc__[] = "\
! tcgetattr(fd) -> list_of_attrs\n\
  \n\
  Get the tty attributes for file descriptor fd, as follows:\n\
--- 45,50 ----
  }
  
! PyDoc_STRVAR(termios_tcgetattr__doc__,
! "tcgetattr(fd) -> list_of_attrs\n\
  \n\
  Get the tty attributes for file descriptor fd, as follows:\n\
***************
*** 54,58 ****
  defined).  The interpretation of the flags and the speeds as well as the\n\
  indexing in the cc array must be done using the symbolic constants defined\n\
! in this module.";
  
  static PyObject *
--- 54,58 ----
  defined).  The interpretation of the flags and the speeds as well as the\n\
  indexing in the cc array must be done using the symbolic constants defined\n\
! in this module.");
  
  static PyObject *
***************
*** 122,127 ****
  }
  
! static char termios_tcsetattr__doc__[] = "\
! tcsetattr(fd, when, attributes) -> None\n\
  \n\
  Set the tty attributes for file descriptor fd.\n\
--- 122,127 ----
  }
  
! PyDoc_STRVAR(termios_tcsetattr__doc__,
! "tcsetattr(fd, when, attributes) -> None\n\
  \n\
  Set the tty attributes for file descriptor fd.\n\
***************
*** 131,135 ****
  change immediately, termios.TCSADRAIN to change after transmitting all\n\
  queued output, or termios.TCSAFLUSH to change after transmitting all\n\
! queued output and discarding all queued input. ";
  
  static PyObject *
--- 131,135 ----
  change immediately, termios.TCSADRAIN to change after transmitting all\n\
  queued output, or termios.TCSAFLUSH to change after transmitting all\n\
! queued output and discarding all queued input. ");
  
  static PyObject *
***************
*** 196,205 ****
  }
  
! static char termios_tcsendbreak__doc__[] = "\
! tcsendbreak(fd, duration) -> None\n\
  \n\
  Send a break on file descriptor fd.\n\
  A zero duration sends a break for 0.25-0.5 seconds; a nonzero duration\n\
! has a system dependent meaning.";
  
  static PyObject *
--- 196,205 ----
  }
  
! PyDoc_STRVAR(termios_tcsendbreak__doc__,
! "tcsendbreak(fd, duration) -> None\n\
  \n\
  Send a break on file descriptor fd.\n\
  A zero duration sends a break for 0.25-0.5 seconds; a nonzero duration\n\
! has a system dependent meaning.");
  
  static PyObject *
***************
*** 218,225 ****
  }
  
! static char termios_tcdrain__doc__[] = "\
! tcdrain(fd) -> None\n\
  \n\
! Wait until all output written to file descriptor fd has been transmitted.";
  
  static PyObject *
--- 218,225 ----
  }
  
! PyDoc_STRVAR(termios_tcdrain__doc__,
! "tcdrain(fd) -> None\n\
  \n\
! Wait until all output written to file descriptor fd has been transmitted.");
  
  static PyObject *
***************
*** 238,248 ****
  }
  
! static char termios_tcflush__doc__[] = "\
! tcflush(fd, queue) -> None\n\
  \n\
  Discard queued data on file descriptor fd.\n\
  The queue selector specifies which queue: termios.TCIFLUSH for the input\n\
  queue, termios.TCOFLUSH for the output queue, or termios.TCIOFLUSH for\n\
! both queues. ";
  
  static PyObject *
--- 238,248 ----
  }
  
! PyDoc_STRVAR(termios_tcflush__doc__,
! "tcflush(fd, queue) -> None\n\
  \n\
  Discard queued data on file descriptor fd.\n\
  The queue selector specifies which queue: termios.TCIFLUSH for the input\n\
  queue, termios.TCOFLUSH for the output queue, or termios.TCIOFLUSH for\n\
! both queues. ");
  
  static PyObject *
***************
*** 261,271 ****
  }
  
! static char termios_tcflow__doc__[] = "\
! tcflow(fd, action) -> None\n\
  \n\
  Suspend or resume input or output on file descriptor fd.\n\
  The action argument can be termios.TCOOFF to suspend output,\n\
  termios.TCOON to restart output, termios.TCIOFF to suspend input,\n\
! or termios.TCION to restart input.";
  
  static PyObject *
--- 261,271 ----
  }
  
! PyDoc_STRVAR(termios_tcflow__doc__,
! "tcflow(fd, action) -> None\n\
  \n\
  Suspend or resume input or output on file descriptor fd.\n\
  The action argument can be termios.TCOOFF to suspend output,\n\
  termios.TCOON to restart output, termios.TCIOFF to suspend input,\n\
! or termios.TCION to restart input.");
  
  static PyObject *

Index: threadmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/threadmodule.c,v
retrieving revision 2.49
retrieving revision 2.50
diff -C2 -d -r2.49 -r2.50
*** threadmodule.c	7 Apr 2002 06:32:21 -0000	2.49
--- threadmodule.c	13 Jun 2002 20:32:53 -0000	2.50
***************
*** 72,76 ****
  }
  
! static char acquire_doc[] =
  "acquire([wait]) -> None or bool\n\
  (PyThread_acquire_lock() is an obsolete synonym)\n\
--- 72,76 ----
  }
  
! PyDoc_STRVAR(acquire_doc,
  "acquire([wait]) -> None or bool\n\
  (PyThread_acquire_lock() is an obsolete synonym)\n\
***************
*** 81,85 ****
  With an argument, this will only block if the argument is true,\n\
  and the return value reflects whether the lock is acquired.\n\
! The blocking operation is not interruptible.";
  
  static PyObject *
--- 81,85 ----
  With an argument, this will only block if the argument is true,\n\
  and the return value reflects whether the lock is acquired.\n\
! The blocking operation is not interruptible.");
  
  static PyObject *
***************
*** 98,102 ****
  }
  
! static char release_doc[] =
  "release()\n\
  (PyThread_release_lock() is an obsolete synonym)\n\
--- 98,102 ----
  }
  
! PyDoc_STRVAR(release_doc,
  "release()\n\
  (PyThread_release_lock() is an obsolete synonym)\n\
***************
*** 104,108 ****
  Release the lock, allowing another thread that is blocked waiting for\n\
  the lock to acquire the lock.  The lock must be in the locked state,\n\
! but it needn't be locked by the same thread that unlocks it.";
  
  static PyObject *
--- 104,108 ----
  Release the lock, allowing another thread that is blocked waiting for\n\
  the lock to acquire the lock.  The lock must be in the locked state,\n\
! but it needn't be locked by the same thread that unlocks it.");
  
  static PyObject *
***************
*** 116,124 ****
  }
  
! static char locked_doc[] =
  "locked() -> bool\n\
  (locked_lock() is an obsolete synonym)\n\
  \n\
! Return whether the lock is in the locked state.";
  
  static PyMethodDef lock_methods[] = {
--- 116,124 ----
  }
  
! PyDoc_STRVAR(locked_doc,
  "locked() -> bool\n\
  (locked_lock() is an obsolete synonym)\n\
  \n\
! Return whether the lock is in the locked state.");
  
  static PyMethodDef lock_methods[] = {
***************
*** 246,250 ****
  }
  
! static char start_new_doc[] =
  "start_new_thread(function, args[, kwargs])\n\
  (start_new() is an obsolete synonym)\n\
--- 246,250 ----
  }
  
! PyDoc_STRVAR(start_new_doc,
  "start_new_thread(function, args[, kwargs])\n\
  (start_new() is an obsolete synonym)\n\
***************
*** 255,259 ****
  function returns; the return value is ignored.  The thread will also exit\n\
  when the function raises an unhandled exception; a stack trace will be\n\
! printed unless the exception is SystemExit.\n";
  
  static PyObject *
--- 255,259 ----
  function returns; the return value is ignored.  The thread will also exit\n\
  when the function raises an unhandled exception; a stack trace will be\n\
! printed unless the exception is SystemExit.\n");
  
  static PyObject *
***************
*** 264,273 ****
  }
  
! static char exit_doc[] =
  "exit()\n\
  (PyThread_exit_thread() is an obsolete synonym)\n\
  \n\
  This is synonymous to ``raise SystemExit''.  It will cause the current\n\
! thread to exit silently unless the exception is caught.";
  
  #ifndef NO_EXIT_PROG
--- 264,273 ----
  }
  
! PyDoc_STRVAR(exit_doc,
  "exit()\n\
  (PyThread_exit_thread() is an obsolete synonym)\n\
  \n\
  This is synonymous to ``raise SystemExit''.  It will cause the current\n\
! thread to exit silently unless the exception is caught.");
  
  #ifndef NO_EXIT_PROG
***************
*** 289,297 ****
  }
  
! static char allocate_doc[] =
  "allocate_lock() -> lock object\n\
  (allocate() is an obsolete synonym)\n\
  \n\
! Create a new lock object.  See LockType.__doc__ for information about locks.";
  
  static PyObject *
--- 289,297 ----
  }
  
! PyDoc_STRVAR(allocate_doc,
  "allocate_lock() -> lock object\n\
  (allocate() is an obsolete synonym)\n\
  \n\
! Create a new lock object.  See LockType.__doc__ for information about locks.");
  
  static PyObject *
***************
*** 307,311 ****
  }
  
! static char get_ident_doc[] =
  "get_ident() -> integer\n\
  \n\
--- 307,311 ----
  }
  
! PyDoc_STRVAR(get_ident_doc,
  "get_ident() -> integer\n\
  \n\
***************
*** 316,320 ****
  allocated consecutive numbers starting at 1, this behavior should not\n\
  be relied upon, and the number should be seen purely as a magic cookie.\n\
! A thread's identity may be reused for another thread after it exits.";
  
  static PyMethodDef thread_methods[] = {
--- 316,320 ----
  allocated consecutive numbers starting at 1, this behavior should not\n\
  be relied upon, and the number should be seen purely as a magic cookie.\n\
! A thread's identity may be reused for another thread after it exits.");
  
  static PyMethodDef thread_methods[] = {
***************
*** 345,353 ****
  /* Initialization function */
  
! static char thread_doc[] =
  "This module provides primitive operations to write multi-threaded programs.\n\
! The 'threading' module provides a more convenient interface.";
  
! static char lock_doc[] =
  "A lock object is a synchronization primitive.  To create a lock,\n\
  call the PyThread_allocate_lock() function.  Methods are:\n\
--- 345,353 ----
  /* Initialization function */
  
! PyDoc_STRVAR(thread_doc,
  "This module provides primitive operations to write multi-threaded programs.\n\
! The 'threading' module provides a more convenient interface.");
  
! PyDoc_STRVAR(lock_doc,
  "A lock object is a synchronization primitive.  To create a lock,\n\
  call the PyThread_allocate_lock() function.  Methods are:\n\
***************
*** 359,363 ****
  A lock is not owned by the thread that locked it; another thread may\n\
  unlock it.  A thread attempting to lock a lock that it has already locked\n\
! will block until another thread unlocks it.  Deadlocks may ensue.";
  
  DL_EXPORT(void)
--- 359,363 ----
  A lock is not owned by the thread that locked it; another thread may\n\
  unlock it.  A thread attempting to lock a lock that it has already locked\n\
! will block until another thread unlocks it.  Deadlocks may ensue.");
  
  DL_EXPORT(void)

Index: timemodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/timemodule.c,v
retrieving revision 2.126
retrieving revision 2.127
diff -C2 -d -r2.126 -r2.127
*** timemodule.c	11 Apr 2002 20:44:06 -0000	2.126
--- timemodule.c	13 Jun 2002 20:32:53 -0000	2.127
***************
*** 117,125 ****
  }
  
! static char time_doc[] =
  "time() -> floating point number\n\
  \n\
  Return the current time in seconds since the Epoch.\n\
! Fractions of a second may be present if the system clock provides them.";
  
  #ifdef HAVE_CLOCK
--- 117,125 ----
  }
  
! PyDoc_STRVAR(time_doc,
  "time() -> floating point number\n\
  \n\
  Return the current time in seconds since the Epoch.\n\
! Fractions of a second may be present if the system clock provides them.");
  
  #ifdef HAVE_CLOCK
***************
*** 174,182 ****
  
  #ifdef HAVE_CLOCK
! static char clock_doc[] =
  "clock() -> floating point number\n\
  \n\
  Return the CPU time or real time since the start of the process or since\n\
! the first call to clock().  This has as much precision as the system records.";
  #endif
  
--- 174,183 ----
  
  #ifdef HAVE_CLOCK
! PyDoc_STRVAR(clock_doc,
  "clock() -> floating point number\n\
  \n\
  Return the CPU time or real time since the start of the process or since\n\
! the first call to clock().  This has as much precision as the system\n\
! records.");
  #endif
  
***************
*** 193,201 ****
  }
  
! static char sleep_doc[] =
  "sleep(seconds)\n\
  \n\
  Delay execution for a given number of seconds.  The argument may be\n\
! a floating point number for subsecond precision.";
  
  static PyStructSequence_Field struct_time_type_fields[] = {
--- 194,202 ----
  }
  
! PyDoc_STRVAR(sleep_doc,
  "sleep(seconds)\n\
  \n\
  Delay execution for a given number of seconds.  The argument may be\n\
! a floating point number for subsecond precision.");
  
  static PyStructSequence_Field struct_time_type_fields[] = {
***************
*** 275,284 ****
  }
  
! static char gmtime_doc[] =
  "gmtime([seconds]) -> (tm_year, tm_mon, tm_day, tm_hour, tm_min,\n\
                         tm_sec, tm_wday, tm_yday, tm_isdst)\n\
  \n\
  Convert seconds since the Epoch to a time tuple expressing UTC (a.k.a.\n\
! GMT).  When 'seconds' is not passed in, convert the current time instead.";
  
  static PyObject *
--- 276,285 ----
  }
  
! PyDoc_STRVAR(gmtime_doc,
  "gmtime([seconds]) -> (tm_year, tm_mon, tm_day, tm_hour, tm_min,\n\
                         tm_sec, tm_wday, tm_yday, tm_isdst)\n\
  \n\
  Convert seconds since the Epoch to a time tuple expressing UTC (a.k.a.\n\
! GMT).  When 'seconds' is not passed in, convert the current time instead.");
  
  static PyObject *
***************
*** 293,301 ****
  }
  
! static char localtime_doc[] =
  "localtime([seconds]) -> (tm_year,tm_mon,tm_day,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)\n\
  \n\
  Convert seconds since the Epoch to a time tuple expressing local time.\n\
! When 'seconds' is not passed in, convert the current time instead.";
  
  static int
--- 294,302 ----
  }
  
! PyDoc_STRVAR(localtime_doc,
  "localtime([seconds]) -> (tm_year,tm_mon,tm_day,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)\n\
  \n\
  Convert seconds since the Epoch to a time tuple expressing local time.\n\
! When 'seconds' is not passed in, convert the current time instead.");
  
  static int
***************
*** 390,399 ****
  }
  
! static char strftime_doc[] =
  "strftime(format[, tuple]) -> string\n\
  \n\
  Convert a time tuple to a string according to a format specification.\n\
  See the library reference manual for formatting codes. When the time tuple\n\
! is not present, current time as returned by localtime() is used.";
  #endif /* HAVE_STRFTIME */
  
--- 391,400 ----
  }
  
! PyDoc_STRVAR(strftime_doc,
  "strftime(format[, tuple]) -> string\n\
  \n\
  Convert a time tuple to a string according to a format specification.\n\
  See the library reference manual for formatting codes. When the time tuple\n\
! is not present, current time as returned by localtime() is used.");
  #endif /* HAVE_STRFTIME */
  
***************
*** 431,439 ****
  }
  
! static char strptime_doc[] =
  "strptime(string, format) -> tuple\n\
  \n\
  Parse a string to a time tuple according to a format specification.\n\
! See the library reference manual for formatting codes (same as strftime()).";
  #endif /* HAVE_STRPTIME */
  
--- 432,440 ----
  }
  
! PyDoc_STRVAR(strptime_doc,
  "strptime(string, format) -> tuple\n\
  \n\
  Parse a string to a time tuple according to a format specification.\n\
! See the library reference manual for formatting codes (same as strftime()).");
  #endif /* HAVE_STRPTIME */
  
***************
*** 457,466 ****
  }
  
! static char asctime_doc[] =
  "asctime([tuple]) -> string\n\
  \n\
  Convert a time tuple to a string, e.g. 'Sat Jun 06 16:26:11 1998'.\n\
  When the time tuple is not present, current time as returned by localtime()\n\
! is used.";
  
  static PyObject *
--- 458,467 ----
  }
  
! PyDoc_STRVAR(asctime_doc,
  "asctime([tuple]) -> string\n\
  \n\
  Convert a time tuple to a string, e.g. 'Sat Jun 06 16:26:11 1998'.\n\
  When the time tuple is not present, current time as returned by localtime()\n\
! is used.");
  
  static PyObject *
***************
*** 488,497 ****
  }
  
! static char ctime_doc[] =
  "ctime(seconds) -> string\n\
  \n\
  Convert a time in seconds since the Epoch to a string in local time.\n\
  This is equivalent to asctime(localtime(seconds)). When the time tuple is\n\
! not present, current time as returned by localtime() is used.";
  
  #ifdef HAVE_MKTIME
--- 489,498 ----
  }
  
! PyDoc_STRVAR(ctime_doc,
  "ctime(seconds) -> string\n\
  \n\
  Convert a time in seconds since the Epoch to a string in local time.\n\
  This is equivalent to asctime(localtime(seconds)). When the time tuple is\n\
! not present, current time as returned by localtime() is used.");
  
  #ifdef HAVE_MKTIME
***************
*** 517,524 ****
  }
  
! static char mktime_doc[] =
  "mktime(tuple) -> floating point number\n\
  \n\
! Convert a time tuple in local time to seconds since the Epoch.";
  #endif /* HAVE_MKTIME */
  
--- 518,525 ----
  }
  
! PyDoc_STRVAR(mktime_doc,
  "mktime(tuple) -> floating point number\n\
  \n\
! Convert a time tuple in local time to seconds since the Epoch.");
  #endif /* HAVE_MKTIME */
  
***************
*** 546,550 ****
  
  
! static char module_doc[] =
  "This module provides various functions to manipulate time values.\n\
  \n\
--- 547,551 ----
  
  
! PyDoc_STRVAR(module_doc,
  "This module provides various functions to manipulate time values.\n\
  \n\
***************
*** 588,593 ****
  mktime() -- convert local time tuple to seconds since Epoch\n\
  strftime() -- convert time tuple to string according to format specification\n\
! strptime() -- parse string to time tuple according to format specification\n\
! ";
  
  
--- 589,593 ----
  mktime() -- convert local time tuple to seconds since Epoch\n\
  strftime() -- convert time tuple to string according to format specification\n\
! strptime() -- parse string to time tuple according to format specification");
  
  

Index: unicodedata.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/unicodedata.c,v
retrieving revision 2.17
retrieving revision 2.18
diff -C2 -d -r2.17 -r2.18
*** unicodedata.c	13 Jun 2002 11:55:14 -0000	2.17
--- unicodedata.c	13 Jun 2002 20:32:53 -0000	2.18
***************
*** 459,463 ****
  };
  
! static char *unicodedata_docstring = "unicode character database";
  
  DL_EXPORT(void)
--- 459,463 ----
  };
  
! PyDoc_STRVAR(unicodedata_docstring, "unicode character database");
  
  DL_EXPORT(void)

Index: xreadlinesmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/xreadlinesmodule.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** xreadlinesmodule.c	8 Dec 2001 18:02:58 -0000	1.9
--- xreadlinesmodule.c	13 Jun 2002 20:32:53 -0000	1.10
***************
*** 1,8 ****
  #include "Python.h"
  
! static char xreadlines_doc [] =
  "xreadlines(f)\n\
  \n\
! Return an xreadlines object for the file f.";
  
  typedef struct {
--- 1,8 ----
  #include "Python.h"
  
! PyDoc_STRVAR(xreadlines_doc,
  "xreadlines(f)\n\
  \n\
! Return an xreadlines object for the file f.");
  
  typedef struct {
***************
*** 113,117 ****
  }
  
! static char next_doc[] = "x.next() -> the next line or raise StopIteration";
  
  static PyMethodDef xreadlines_methods[] = {
--- 113,117 ----
  }
  
! PyDoc_STRVAR(next_doc, "x.next() -> the next line or raise StopIteration");
  
  static PyMethodDef xreadlines_methods[] = {

Index: xxsubtype.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/xxsubtype.c,v
retrieving revision 2.14
retrieving revision 2.15
diff -C2 -d -r2.14 -r2.15
*** xxsubtype.c	28 Mar 2002 15:49:54 -0000	2.14
--- xxsubtype.c	13 Jun 2002 20:32:54 -0000	2.15
***************
*** 2,10 ****
  #include "structmember.h"
  
! static char xxsubtype__doc__[] =
  "xxsubtype is an example module showing how to subtype builtin types from C.\n"
  "test_descr.py in the standard test suite requires it in order to complete.\n"
  "If you don't care about the examples, and don't intend to run the Python\n"
! "test suite, you can recompile Python without Modules/xxsubtype.c.";
  
  /* We link this module statically for convenience.  If compiled as a shared
--- 2,10 ----
  #include "structmember.h"
  
! PyDoc_STRVAR(xxsubtype__doc__,
  "xxsubtype is an example module showing how to subtype builtin types from C.\n"
  "test_descr.py in the standard test suite requires it in order to complete.\n"
  "If you don't care about the examples, and don't intend to run the Python\n"
! "test suite, you can recompile Python without Modules/xxsubtype.c.");
  
  /* We link this module statically for convenience.  If compiled as a shared

Index: zlibmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/zlibmodule.c,v
retrieving revision 2.61
retrieving revision 2.62
diff -C2 -d -r2.61 -r2.62
*** zlibmodule.c	27 Apr 2002 18:44:31 -0000	2.61
--- zlibmodule.c	13 Jun 2002 20:32:54 -0000	2.62
***************
*** 79,91 ****
  }
  
! static char compressobj__doc__[] =
  "compressobj([level]) -- Return a compressor object.\n"
  "\n"
! "Optional arg level is the compression level, in 1-9.";
  
! static char decompressobj__doc__[] =
  "decompressobj([wbits]) -- Return a decompressor object.\n"
  "\n"
! "Optional arg wbits is the window buffer size.";
  
  static compobject *
--- 79,91 ----
  }
  
! PyDoc_STRVAR(compressobj__doc__,
  "compressobj([level]) -- Return a compressor object.\n"
  "\n"
! "Optional arg level is the compression level, in 1-9.");
  
! PyDoc_STRVAR(decompressobj__doc__,
  "decompressobj([wbits]) -- Return a decompressor object.\n"
  "\n"
! "Optional arg wbits is the window buffer size.");
  
  static compobject *
***************
*** 110,117 ****
  }
  
! static char compress__doc__[] =
  "compress(string[, level]) -- Returned compressed string.\n"
  "\n"
! "Optional arg level is the compression level, in 1-9.";
  
  static PyObject *
--- 110,117 ----
  }
  
! PyDoc_STRVAR(compress__doc__,
  "compress(string[, level]) -- Returned compressed string.\n"
  "\n"
! "Optional arg level is the compression level, in 1-9.");
  
  static PyObject *
***************
*** 186,194 ****
  }
  
! static char decompress__doc__[] =
  "decompress(string[, wbits[, bufsize]]) -- Return decompressed string.\n"
  "\n"
  "Optional arg wbits is the window buffer size.  Optional arg bufsize is\n"
! "the initial output buffer size.";
  
  static PyObject *
--- 186,194 ----
  }
  
! PyDoc_STRVAR(decompress__doc__,
  "decompress(string[, wbits[, bufsize]]) -- Return decompressed string.\n"
  "\n"
  "Optional arg wbits is the window buffer size.  Optional arg bufsize is\n"
! "the initial output buffer size.");
  
  static PyObject *
***************
*** 377,386 ****
  }
  
! static char comp_compress__doc__[] =
  "compress(data) -- Return a string containing data compressed.\n"
  "\n"
  "After calling this function, some of the input data may still\n"
  "be stored in internal buffers for later processing.\n"
! "Call the flush() method to clear these buffers.";
  
  
--- 377,386 ----
  }
  
! PyDoc_STRVAR(comp_compress__doc__,
  "compress(data) -- Return a string containing data compressed.\n"
  "\n"
  "After calling this function, some of the input data may still\n"
  "be stored in internal buffers for later processing.\n"
! "Call the flush() method to clear these buffers.");
  
  
***************
*** 443,447 ****
  }
  
! static char decomp_decompress__doc__[] =
  "decompress(data, max_length) -- Return a string containing the decompressed\n"
  "version of the data.\n"
--- 443,447 ----
  }
  
! PyDoc_STRVAR(decomp_decompress__doc__,
  "decompress(data, max_length) -- Return a string containing the decompressed\n"
  "version of the data.\n"
***************
*** 452,456 ****
  "If the max_length parameter is specified then the return value will be\n"
  "no longer than max_length.  Unconsumed input data will be stored in\n"
! "the unconsumed_tail attribute.";
  
  static PyObject *
--- 452,456 ----
  "If the max_length parameter is specified then the return value will be\n"
  "no longer than max_length.  Unconsumed input data will be stored in\n"
! "the unconsumed_tail attribute.");
  
  static PyObject *
***************
*** 563,567 ****
  }
  
! static char comp_flush__doc__[] =
  "flush( [mode] ) -- Return a string containing any remaining compressed data.\n"
  "\n"
--- 563,567 ----
  }
  
! PyDoc_STRVAR(comp_flush__doc__,
  "flush( [mode] ) -- Return a string containing any remaining compressed data.\n"
  "\n"
***************
*** 569,573 ****
  "default value used when mode is not specified is Z_FINISH.\n"
  "If mode == Z_FINISH, the compressor object can no longer be used after\n"
! "calling the flush() method.  Otherwise, more data can still be compressed.\n";
  
  static PyObject *
--- 569,573 ----
  "default value used when mode is not specified is Z_FINISH.\n"
  "If mode == Z_FINISH, the compressor object can no longer be used after\n"
! "calling the flush() method.  Otherwise, more data can still be compressed.");
  
  static PyObject *
***************
*** 650,657 ****
  }
  
! static char decomp_flush__doc__[] =
  "flush() -- Return a string containing any remaining decompressed data.\n"
  "\n"
! "The decompressor object can no longer be used after this call.";
  
  static PyObject *
--- 650,657 ----
  }
  
! PyDoc_STRVAR(decomp_flush__doc__,
  "flush() -- Return a string containing any remaining decompressed data.\n"
  "\n"
! "The decompressor object can no longer be used after this call.");
  
  static PyObject *
***************
*** 731,739 ****
  }
  
! static char adler32__doc__[] =
  "adler32(string[, start]) -- Compute an Adler-32 checksum of string.\n"
  "\n"
  "An optional starting value can be specified.  The returned checksum is\n"
! "an integer.";
  
  static PyObject *
--- 731,739 ----
  }
  
! PyDoc_STRVAR(adler32__doc__,
  "adler32(string[, start]) -- Compute an Adler-32 checksum of string.\n"
  "\n"
  "An optional starting value can be specified.  The returned checksum is\n"
! "an integer.");
  
  static PyObject *
***************
*** 750,758 ****
  }
  
! static char crc32__doc__[] =
  "crc32(string[, start]) -- Compute a CRC-32 checksum of string.\n"
  "\n"
  "An optional starting value can be specified.  The returned checksum is\n"
! "an integer.";
  
  static PyObject *
--- 750,758 ----
  }
  
! PyDoc_STRVAR(crc32__doc__,
  "crc32(string[, start]) -- Compute a CRC-32 checksum of string.\n"
  "\n"
  "An optional starting value can be specified.  The returned checksum is\n"
! "an integer.");
  
  static PyObject *
***************
*** 820,824 ****
  };
  
! static char zlib_module_documentation[]=
  "The functions in this module allow compression and decompression using the\n"
  "zlib library, which is based on GNU zip.\n"
--- 820,824 ----
  };
  
! PyDoc_STRVAR(zlib_module_documentation,
  "The functions in this module allow compression and decompression using the\n"
  "zlib library, which is based on GNU zip.\n"
***************
*** 833,837 ****
  "'wbits' is window buffer size.\n"
  "Compressor objects support compress() and flush() methods; decompressor\n"
! "objects support decompress() and flush().";
  
  DL_EXPORT(void)
--- 833,837 ----
  "'wbits' is window buffer size.\n"
  "Compressor objects support compress() and flush() methods; decompressor\n"
! "objects support decompress() and flush().");
  
  DL_EXPORT(void)