[Python-3000-checkins] r58947 - in python/branches/py3k: Lib/calendar.py Makefile.pre.in Modules/readline.c Python/hypot.c

christian.heimes python-3000-checkins at python.org
Mon Nov 12 16:01:33 CET 2007


Author: christian.heimes
Date: Mon Nov 12 16:01:33 2007
New Revision: 58947

Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Lib/calendar.py
   python/branches/py3k/Makefile.pre.in
   python/branches/py3k/Modules/readline.c
   python/branches/py3k/Python/hypot.c
Log:
Merged revisions 58939-58946 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r58940 | martin.v.loewis | 2007-11-12 05:53:02 +0100 (Mon, 12 Nov 2007) | 3 lines
  
  Only set rl_completion_display_matches_hook if there
  is a Python hook function. Fixes #1425.
........
  r58941 | martin.v.loewis | 2007-11-12 06:14:05 +0100 (Mon, 12 Nov 2007) | 2 lines
  
  Patch #1418: Make the AC_REPLACE_FUNCS object files actually work.
........
  r58942 | walter.doerwald | 2007-11-12 11:01:33 +0100 (Mon, 12 Nov 2007) | 2 lines
  
  Fix TextCalendar.prweek(). This closes issue #1427.
........


Modified: python/branches/py3k/Lib/calendar.py
==============================================================================
--- python/branches/py3k/Lib/calendar.py	(original)
+++ python/branches/py3k/Lib/calendar.py	Mon Nov 12 16:01:33 2007
@@ -263,7 +263,7 @@
         """
         Print a single week (no newline).
         """
-        print(self.week(theweek, width), end=' ')
+        print(self.formatweek(theweek, width), end=' ')
 
     def formatday(self, day, weekday, width):
         """

Modified: python/branches/py3k/Makefile.pre.in
==============================================================================
--- python/branches/py3k/Makefile.pre.in	(original)
+++ python/branches/py3k/Makefile.pre.in	Mon Nov 12 16:01:33 2007
@@ -169,6 +169,8 @@
 DLINCLDIR=	@DLINCLDIR@
 DYNLOADFILE=	@DYNLOADFILE@
 MACHDEP_OBJS=	@MACHDEP_OBJS@
+LIBOBJDIR=	Python/
+LIBOBJS=	@LIBOBJS@
 UNICODE_OBJS=   @UNICODE_OBJS@
 
 PYTHON=		python$(EXE)
@@ -276,6 +278,7 @@
 		Python/pystrtod.o \
 		Python/formatter_unicode.o \
 		Python/$(DYNLOADFILE) \
+		$(LIBOBJS) \
 		$(MACHDEP_OBJS) \
 		$(THREADOBJ)
 

Modified: python/branches/py3k/Modules/readline.c
==============================================================================
--- python/branches/py3k/Modules/readline.c	(original)
+++ python/branches/py3k/Modules/readline.c	Mon Nov 12 16:01:33 2007
@@ -38,6 +38,10 @@
 extern char **completion_matches(char *, rl_compentry_func_t *);
 #endif
 
+static void
+on_completion_display_matches_hook(char **matches,
+				   int num_matches, int max_length);
+
 
 /* Exported function to send one line to readline's init file parser */
 
@@ -208,8 +212,17 @@
 static PyObject *
 set_completion_display_matches_hook(PyObject *self, PyObject *args)
 {
-	return set_hook("completion_display_matches_hook",
+	PyObject *result = set_hook("completion_display_matches_hook",
 			&completion_display_matches_hook, args);
+#ifdef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK
+	/* We cannot set this hook globally, since it replaces the
+	   default completion display. */
+	rl_completion_display_matches_hook =
+	  completion_display_matches_hook ? 
+		(rl_compdisp_func_t *)on_completion_display_matches_hook : 0;
+#endif
+	return result;
+
 }
 
 PyDoc_STRVAR(doc_set_completion_display_matches_hook,
@@ -668,44 +681,41 @@
 on_completion_display_matches_hook(char **matches,
 				   int num_matches, int max_length)
 {
-	if (completion_display_matches_hook != NULL) {
-	        int i;
-	        PyObject *m, *s, *match;
-	        PyObject *r;
+	int i;
+	PyObject *m, *s;
+	PyObject *r;
 #ifdef WITH_THREAD
-		PyGILState_STATE gilstate = PyGILState_Ensure();
+	PyGILState_STATE gilstate = PyGILState_Ensure();
 #endif
-		m = PyList_New(num_matches);
-		for (i = 0; i < num_matches; i++) {
-			s = PyUnicode_FromString(matches[i+1]);
-			if (s) {
-				PyList_SetItem(m, i, s);
-			}
-			else {
-				goto error;
-			}
+	m = PyList_New(num_matches);
+	for (i = 0; i < num_matches; i++) {
+		s = PyUnicode_FromString(matches[i+1]);
+		if (s) {
+			PyList_SetItem(m, i, s);
 		}
-		r = PyObject_CallFunction(completion_display_matches_hook,
-					  "sOi", matches[0], m, max_length);
-
-		Py_DECREF(m), m=NULL;
-
-		if (r == NULL ||
-		    (r != Py_None && PyInt_AsLong(r) == -1 && PyErr_Occurred())) {
-		  goto error;
+		else {
+			goto error;
 		}
+	}
+	r = PyObject_CallFunction(completion_display_matches_hook,
+				  "sOi", matches[0], m, max_length);
 
-		Py_DECREF(r);
-		goto done;
-	  error:
-		PyErr_Clear();
-		Py_XDECREF(m);
-		Py_XDECREF(r);
-	  done:
+	Py_DECREF(m), m=NULL;
+
+	if (r == NULL ||
+		(r != Py_None && PyInt_AsLong(r) == -1 && PyErr_Occurred())) {
+		goto error;
+	}
+
+	Py_DECREF(r);
+	goto done;
+  error:
+	PyErr_Clear();
+	Py_XDECREF(r);
+  done:
 #ifdef WITH_THREAD
-		PyGILState_Release(gilstate);
+	PyGILState_Release(gilstate);
 #endif
-	}
 }
 
 
@@ -786,10 +796,6 @@
 	rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap);
 	rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap);
 	/* Set our hook functions */
-#ifdef HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK
-	rl_completion_display_matches_hook =
-	  (rl_compdisp_func_t *)on_completion_display_matches_hook;
-#endif
 	rl_startup_hook = (Function *)on_startup_hook;
 #ifdef HAVE_RL_PRE_INPUT_HOOK
 	rl_pre_input_hook = (Function *)on_pre_input_hook;

Modified: python/branches/py3k/Python/hypot.c
==============================================================================
--- python/branches/py3k/Python/hypot.c	(original)
+++ python/branches/py3k/Python/hypot.c	Mon Nov 12 16:01:33 2007
@@ -1,7 +1,6 @@
 /* hypot() replacement */
 
-#include "pyconfig.h"
-#include "pyport.h"
+#include "Python.h"
 
 double hypot(double x, double y)
 {


More information about the Python-3000-checkins mailing list