[ python-Bugs-1103023 ] raw_input problem with readline and UTF8

SourceForge.net noreply at sourceforge.net
Sat Jan 15 19:10:58 CET 2005


Bugs item #1103023, was opened at 2005-01-15 18:10
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1103023&group_id=5470

Category: Python Library
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Casey Crabb (airog)
Assigned to: Nobody/Anonymous (nobody)
Summary: raw_input problem with readline and UTF8

Initial Comment:
Backspace doesn't remove all bytes of a multi-byte
UTF-8 character.

To reproduce the problem:
$ export LANG=en_US.UTF-8
$ python
Python 2.3.4 (#1, Jun 11 2004, 16:35:29) 
[GCC 3.3.3 20040412 (Gentoo Linux 3.3.3-r3, ssp-3.3-7,
pie-8.5.3)] on linux2
Type "help", "copyright", "credits" or "license" for
more information.
>>> import readline
>>> raw_input() # ä, return
ä
'\xc3\xa4'
>>> raw_input() # ä, backspace, return

'\xc3'
>>> 


A small C program does not have the same problem:

#include <stdlib.h>
#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>

void pprint(const char *s);

int main(void) {
	char *line;

	for (;;) {
		line = readline("> ");
		if (!line)
			break;
		pprint(line);
		free(line);
	}

	return 0;
}

void pprint(const char *s) {
	while (*s) {
		if (isprint(*s))
			putchar(*s);
		else
			printf("\x%x", *s & 0xff);
		s++;
	}
	putchar('\n');
}


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1103023&group_id=5470


More information about the Python-bugs-list mailing list