[pypy-svn] r34402 - pypy/dist/pypy/translator/js/demo/jsdemo

fijal at codespeak.net fijal at codespeak.net
Wed Nov 8 23:13:14 CET 2006


Author: fijal
Date: Wed Nov  8 23:13:13 2006
New Revision: 34402

Modified:
   pypy/dist/pypy/translator/js/demo/jsdemo/pythonconsole.py
Log:
Fixed multiline appearance.


Modified: pypy/dist/pypy/translator/js/demo/jsdemo/pythonconsole.py
==============================================================================
--- pypy/dist/pypy/translator/js/demo/jsdemo/pythonconsole.py	(original)
+++ pypy/dist/pypy/translator/js/demo/jsdemo/pythonconsole.py	Wed Nov  8 23:13:13 2006
@@ -16,6 +16,7 @@
 from pypy.translator.js.main import rpython2javascript
 from pypy.rpython.ootypesystem.bltregistry import MethodDesc, BasicExternal
 from pypy.translator.js import commproxy
+from pypy.translator.js.modules.mochikit import createLoggingPane, log
 
 commproxy.USE_MOCHIKIT = True
 
@@ -70,6 +71,13 @@
     data_elem = get_document().getElementById("data")
     data_elem.innerHTML += text
 
+class Storage(object):
+    def __init__(self):
+        self.level = 0
+        self.cmd = ""
+
+storage = Storage()
+
 def keypressed(key):
     kc = key.keyCode
     if kc == ord("\r"):
@@ -77,10 +85,18 @@
         cmd = inp_elem.value
         add_text(">>> %s\n" % (cmd,))
         inp_elem.value = ''
-        inp_elem.disabled = True
-        httpd.some_callback(cmd, callback)
+        storage.cmd += cmd + "\n"
+        if cmd.endswith(':'):
+            storage.level += 1
+        elif storage.level == 0:
+            inp_elem.disabled = True
+            httpd.some_callback(storage.cmd, callback)
+            storage.cmd = ""
+        else:
+            storage.level -= 1
 
 def setup_page():
+    createLoggingPane(True)
     get_document().onkeypress = keypressed
 
 class Server(HTTPServer, BasicExternal):



More information about the Pypy-commit mailing list