[IPython-dev] Still no color on Windows XP
Gary Bishop
gb at cs.unc.edu
Sat Dec 6 15:47:20 EST 2003
This results from a change in the interface to readline that they made
in 2.3 (which I'm guessing that you are running). I have uploaded
changes to CVS (uncpythontools at sourceforge) that should fix this.
There isn't a new release yet but you can checkout the code from CVS
and see if it works for you.
gb
On Sat, 06 Dec 2003 12:41:44 -0800 "Mathew Yeates" <mathew at yeates.tv> wrote:
> I still get no color. And the prompt is a bunch of weird characters. I
> turned on readlines logging and I get the following at the bottom of the log
> prompt="'`\xd7\xc5w'"
> C:`×Åw
> attr=None
> C:
> attr=None
> any ideas?
> Mathew
> Fernando Perez wrote:
>> Hi all,
>> today I've committed a fair amount of changes to CVS, mainly from the
>> contributions of Jeff Collins and Gary Bishop. I'd like to give all a
>> brief update on this, since it would be great to see some testing of
>> this code as I start cleaning things up for a new release.
>> - Jeff's work: it fixes tab completion for filenames under python 2.3,
>> which broke because the python developers changed the hardcoded
>> behavior of the readline library.
>> One small caveat: under redhat 8.0, I am seeing an extraneous space
>> appended to completed filenames. Jeff helped me track its source, and
>> it is an improperly built readline.so by redhat, which is missing the
>> rl_completion_append_character variable. This variable can NOT be set
>> via python code, so there's nothing I can do about it. Redhat 9's
>> python, and almost any correctly built python, should not exhibit this
>> small annoyance.
>> - Gary's work: this allows coloring under Windows, with some extra
>> code provided by Gary. Please note that I modified his patches
>> somewhat, in particular I renamed ColorTerm to Term because in the
>> future I'll be using this facility for all I/O, not just coloring. So
>> I'm reposting his instructions here with the necessary changes for the
>> benefit of Windows users:
>> ################################# Gary's instructions for Windows,
>> modified to work with the current CVS ipython:
>> I have attached a patch for IPython 0.5-cvs that, along with my
>> readline package, will make IPython on Windows work like it does on
>> more capable systems.
>> My readline code is available via CVS from
>> http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/uncpythontools/readline/
>> I use it inside and outside IPython and it seems to work fine.
>> I don't think these changes impact other platforms but I certainly
>> could be wrong since I haven't tested anywhere else.
>> Most of the changes are of the form:
>> - print header,output,
>> + print >>Term.out, header,output,
>> These send prints that could contain color escapes explicitly to a file
>> object instead of relying on sys.stdout. Term.out and
>> Term.err are initialized to sys.stdout and sys.stderr, so
>> everything should work the same. On Windows, a user may optionally
>> include the following in his IPYTHONDIR
>> enable_color.py
>> --------------------------------------------------------------------------------
>> '''Turn on the translation of ANSI color escapes for Windows'''
>> import IPython
>> import readline
>> out = readline.GetOutputFile()
>> IPython.genutils.Term.out = out
>> IPython.genutils.Term.err = out
>> del out
>> del readline
>> del IPython
>> --------------------------------------------------------------------------------
>> and this line in ipythonrc.ini
>> execfile enable_color.py
>> To translate ANSI color escapes into the proper colors on the Windows
>> console. Without this it will work fine without color.
>> #################################
>> Gary: I'd also like you to help me with a couple of things concerning
>> this code.
>> 1. You made changes to page(), to make it work with 'less' under
>> windows+cygwin. I want to be sure that users who DON'T have cygwin are
>> still ok. Is that the case?
>> 2. The code below is around line 913 of genutils.py. Do you know
>> which exceptions can this trigger under Windows, so we only trap those?
>> I don't like blanket except clauses (ipython has many, but I'm trying
>> to clean them up as much as possible). I also added the inner
>> try/finally to ensure proper cleanup.
>> try:
>> try:
>> tmpname = tempfile.mktemp('.txt')
>> tmpfile = file(tmpname,'wt')
>> tmpfile.write(strng)
>> tmpfile.close()
>> cmd = pager_cmd + ' < ' + tmpname
>> os.system(cmd)
>> retval = None
>> finally:
>> os.remove(tmpname)
>> except: # FIXME: trap only the reasonable exceptions
>> retval = 1
>> You can send me any new patches against current CVS.
>> Ok folks, I'll be working some more on ipython over the next few weeks,
>> to finish cleaning up some other things. But these two big changes are
>> important enough that I'd really like to hear some feedback, especially
>> if there are problems.
>> Many thanks to Jeff and Gary, both for their work and for their
>> patience with my sloooow response.
>> Regards,
>> Fernando.
>> _______________________________________________
>> IPython-dev mailing list
>> IPython-dev at scipy.net
>> http://scipy.net/mailman/listinfo/ipython-dev
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.net
> http://scipy.net/mailman/listinfo/ipython-dev
More information about the IPython-dev
mailing list