| Subject: Problems trying to use readline or editline ... | 
 | From: Skip Montanaro <skip@dolphin.automatrix.com> | 
 | To: python-list@cwi.nl | 
 | Date: 19 Nov 1995 14:19:56 GMT | 
 | X-Newsgroups: comp.lang.python | 
 | X-Organization: Automatrix, Inc. | 
 |  | 
 |  | 
 | I'm having some trouble with either of the line editing libraries available | 
 | to me.  If I build Python with libreadline, I get "staircases" in my | 
 | interpreter output: | 
 |  | 
 |     >>> s = 1 | 
 |              >>> a = 3 | 
 |                       >>> etc. | 
 |  | 
 | So I figured I'd give Rich Salz's editline a try.  It seems to be missing a | 
 | couple readline functions.  When I link I get: | 
 |  | 
 |     myreadline.o: Undefined symbol _rl_insert referenced from text segment | 
 |     myreadline.o: Undefined symbol _rl_bind_key referenced from text segment | 
 |  | 
 | I'm running on BSD/OS 2.0 with GCC 2.6.3 as the compiler.  My configure line | 
 | was | 
 |  | 
 |     ./configure --with-readline=/home/dolphin/skip/src/editline \ | 
 | 	--with-dl-dld=/home/dolphin/skip/src/dl-dld,/home/dolphin/skip/src/dld | 
 |  | 
 | For editline I tried several things before arriving at something that does | 
 | work ... sort of.  First I commented out the tab key binding in Python's | 
 | Parser/myreadline.c then had to fiddle with editline.c to get tabs to | 
 | insert.  The diffs below seem to work, but have no notion of tab stops (I | 
 | like 4-char tab stops). | 
 |  | 
 | I'd be grateful if anybody had a solution to the readline staircases or a | 
 | better solution for making editline work. | 
 |  | 
 | *** editline.c~	Tue Nov 15 08:53:01 1994 | 
 | --- editline.c	Sun Nov 19 09:15:16 1995 | 
 | *************** | 
 | *** 142,145 **** | 
 | --- 142,148 ---- | 
 |   	TTYput('?'); | 
 |       } | 
 | +     else if (c == '\t') { | 
 | +         TTYput('\t'); | 
 | +     } | 
 |       else if (ISCTL(c)) { | 
 |   	TTYput('^'); | 
 | *************** | 
 | *** 1326,1329 **** | 
 | --- 1329,1338 ---- | 
 |   } | 
 |    | 
 | + STATIC STATUS | 
 | + tab() | 
 | + { | 
 | +     return insert_char('\t'); | 
 | + } | 
 | +  | 
 |   STATIC KEYMAP	Map[33] = { | 
 |       {	CTL('@'),	ring_bell	}, | 
 | *************** | 
 | *** 1335,1339 **** | 
 |       {	CTL('G'),	ring_bell	}, | 
 |       {	CTL('H'),	bk_del_char	}, | 
 | !     {	CTL('I'),	c_complete	}, | 
 |       {	CTL('J'),	accept_line	}, | 
 |       {	CTL('K'),	kill_line	}, | 
 | --- 1344,1348 ---- | 
 |       {	CTL('G'),	ring_bell	}, | 
 |       {	CTL('H'),	bk_del_char	}, | 
 | !     {	CTL('I'),	tab		}, | 
 |       {	CTL('J'),	accept_line	}, | 
 |       {	CTL('K'),	kill_line	}, | 
 | --  | 
 | Skip Montanaro		skip@automatrix.com			  (518)372-5583 | 
 | Musi-Cal: http://www.calendar.com/concerts/ or mailto:concerts@calendar.com | 
 | Internet Conference Calendar: http://www.calendar.com/conferences/ | 
 | 	       >>> ZLDF: http://www.netresponse.com/zldf <<< |