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

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


Author: fijal
Date: Wed Nov  8 23:23:00 2006
New Revision: 34403

Modified:
   pypy/dist/pypy/translator/js/demo/jsdemo/pythonconsole.py
Log:
Proper multiline support.


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:23:00 2006
@@ -16,7 +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
+#from pypy.translator.js.modules.mochikit import createLoggingPane, log
 
 commproxy.USE_MOCHIKIT = True
 
@@ -53,7 +53,7 @@
 
     <pre id="data"></pre>
 
-    <input id="inp" size="100" type="text"/>
+    <input id="inp" size="100" type="text" autocomplete="off"/>
 
 </body>
 </html>
@@ -66,6 +66,7 @@
     inp_elem.disabled = False
     answer = data.get('answer', '')
     add_text(answer)
+    inp_elem.focus()
 
 def add_text(text):
     data_elem = get_document().getElementById("data")
@@ -83,21 +84,25 @@
     if kc == ord("\r"):
         inp_elem = get_document().getElementById("inp")
         cmd = inp_elem.value
-        add_text(">>> %s\n" % (cmd,))
+        if storage.level == 0:
+            add_text(">>> %s\n" % (cmd,))
+        else:
+            add_text("... %s\n" % (cmd,))
         inp_elem.value = ''
-        storage.cmd += cmd + "\n"
+        if cmd:
+            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
+            storage.level = 1
+        elif storage.level == 0 or cmd == "":
+            if (not storage.level) or (not cmd):
+                inp_elem.disabled = True
+                httpd.some_callback(storage.cmd, callback)
+                storage.cmd = ""
+                storage.level = 0
 
 def setup_page():
-    createLoggingPane(True)
     get_document().onkeypress = keypressed
+    get_document().getElementById("inp").focus()
 
 class Server(HTTPServer, BasicExternal):
     # Methods and signatures how they are rendered for JS



More information about the Pypy-commit mailing list