Public bug reported:

There is a bug in the 12.04 pexpect package that results in the ANSI
library throwing an exception when it receives the "Erase in Line"
escape code ("ESC[2K"):

Traceback (most recent call last):
  File "./pexpect-check.py", line 12, in <module>
    screen.write("%c[2K" %(0x1B))
  File "/usr/lib/python2.7/dist-packages/ANSI.py", line 257, in write
    self.process(c)
  File "/usr/lib/python2.7/dist-packages/ANSI.py", line 248, in process
    self.state.process(c)
  File "/usr/lib/python2.7/dist-packages/FSM.py", line 223, in process
    self.action (self)
  File "/usr/lib/python2.7/dist-packages/ANSI.py", line 118, in DoEraseLine
    if arg == 0:
NameError: global name 'arg' is not defined


The following test code can be used to test for this failure:

#!/usr/bin/env python
import sys
import ANSI

print "Testing operation of \"DoEraseLine\" in ANSI library: ",

screen = ANSI.ANSI(25,80)

screen.write("This line should be deleted")
#print screen.pretty()

try:
        screen.write("%c[2K" %(0x1B))
        #print screen.pretty()

except:
        print "FAIL"
        sys.exit(1)

print "PASS"
sys.exit(0)


This has been fixed in later versions of pexpect, but is broken in the (still 
supported?) version in precise. The minimal patch required to resolve this 
issue is:

--- ANSI.py.orig        2015-07-23 10:22:11.561742106 +0100
+++ ANSI.py     2015-07-23 10:22:29.841339490 +0100
@@ -114,6 +114,7 @@
 
 def DoEraseLine (fsm):
 
+    arg = int(fsm.memory.pop())
     screen = fsm.memory[0]
     if arg == 0:
         screen.end_of_line()

** Affects: pexpect (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1477472

Title:
  Failure of ANSI library when reciving "Erase in Line" ANSI escape code

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pexpect/+bug/1477472/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to