summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-11-12 15:01:33 (GMT)
committerChristian Heimes <christian@cheimes.de>2007-11-12 15:01:33 (GMT)
commit32fbe599784f80f08e7ecd4ebdde158797f0a5ff (patch)
tree9bdb01f6a4f303c0294fd4dbce7ee0d878fcfb32
parent96f31636f4af949dd0975c9381d284915c9d76f6 (diff)
downloadcpython-32fbe599784f80f08e7ecd4ebdde158797f0a5ff.zip
cpython-32fbe599784f80f08e7ecd4ebdde158797f0a5ff.tar.gz
cpython-32fbe599784f80f08e7ecd4ebdde158797f0a5ff.tar.bz2
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. ........
-rw-r--r--Lib/calendar.py2
-rw-r--r--Makefile.pre.in3
-rw-r--r--Modules/readline.c76
-rw-r--r--Python/hypot.c3
4 files changed, 46 insertions, 38 deletions
diff --git a/Lib/calendar.py b/Lib/calendar.py
index e811518..071bc06 100644
--- a/Lib/calendar.py
+++ b/Lib/calendar.py
@@ -263,7 +263,7 @@ class TextCalendar(Calendar):
"""
Print a single week (no newline).
"""
- print(self.week(theweek, width), end=' ')
+ print(self.formatweek(theweek, width), end=' ')
def formatday(self, day, weekday, width):
"""
diff --git a/Makefile.pre.in b/Makefile.pre.in
index c604fca..2277a22 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -169,6 +169,8 @@ THREADOBJ= @THREADOBJ@
DLINCLDIR= @DLINCLDIR@
DYNLOADFILE= @DYNLOADFILE@
MACHDEP_OBJS= @MACHDEP_OBJS@
+LIBOBJDIR= Python/
+LIBOBJS= @LIBOBJS@
UNICODE_OBJS= @UNICODE_OBJS@
PYTHON= python$(EXE)
@@ -276,6 +278,7 @@ PYTHON_OBJS= \
Python/pystrtod.o \
Python/formatter_unicode.o \
Python/$(DYNLOADFILE) \
+ $(LIBOBJS) \
$(MACHDEP_OBJS) \
$(THREADOBJ)
diff --git a/Modules/readline.c b/Modules/readline.c
index 90a5cc7..9052937 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -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 *pre_input_hook = NULL;
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 @@ static void
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);
+ }
+ else {
+ goto error;
}
- r = PyObject_CallFunction(completion_display_matches_hook,
- "sOi", matches[0], m, max_length);
+ }
+ r = PyObject_CallFunction(completion_display_matches_hook,
+ "sOi", matches[0], m, max_length);
- Py_DECREF(m), m=NULL;
+ Py_DECREF(m), m=NULL;
- if (r == NULL ||
- (r != Py_None && PyInt_AsLong(r) == -1 && PyErr_Occurred())) {
- goto error;
- }
+ if (r == NULL ||
+ (r != Py_None && PyInt_AsLong(r) == -1 && PyErr_Occurred())) {
+ goto error;
+ }
- Py_DECREF(r);
- goto done;
- error:
- PyErr_Clear();
- Py_XDECREF(m);
- Py_XDECREF(r);
- done:
+ 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 @@ setup_readline(void)
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;
diff --git a/Python/hypot.c b/Python/hypot.c
index 755d0c3..9d3c0d0 100644
--- a/Python/hypot.c
+++ b/Python/hypot.c
@@ -1,7 +1,6 @@
/* hypot() replacement */
-#include "pyconfig.h"
-#include "pyport.h"
+#include "Python.h"
double hypot(double x, double y)
{