[Python-Dev] [1593035] Re: readline problem with python-2.5 (original) (raw)
Kate Minola kate01123 at gmail.com
Sat Nov 18 20:40:45 CET 2006
- Previous message: [Python-Dev] Python in first-year MIT core curriculum
- Next message: [Python-Dev] discussion of schema for new issue tracker starting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I have a fix to my bug report 1593035 regarding python-2.5 not working with readline on ia64-Linux. This bug was found while trying to port SAGE (http://modular.math.washington.edu/sage/) to ia64-Linux.
The problem is caused by the line of Modules/readline.c in flex_complete()
return completion_matches(text, *on_completion);
In readline-5.2, completion_matches() is defined in compat.c as
char ** completion_matches(const char *,rl_compentry_func_t *);
But in Modules/readline.c completion_matches() by default is assumed to return an int, and on_completion() is defined as char *.
To fix the problem, both the function itself and the second argument need to be cast to the correct types in Modules/readline.c/flex_complete()
return (char **) completion_matches(text, (rl_compentry_func_t *)*on_completio n);
and completion_matches needs to be defined as an external function. I added the following else clause to the ifdef at the top of Modules/readline.c/flex_complete()
#ifdef HAVE_RL_COMPLETION_MATCHES
#define completion_matches(x, y)
rl_completion_matches((x), ((rl_compentry_func_t *)(y)))
#else
extern char ** completion_matches(const char *,rl_compentry_func_t *);
#endif
Kate Minola University of Maryland, College Park
- Previous message: [Python-Dev] Python in first-year MIT core curriculum
- Next message: [Python-Dev] discussion of schema for new issue tracker starting
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]