Barry Warsaw [Thu, 6 Nov 1997 14:35:15 +0000 (14:35 +0000)]
(python-font-lock-keywords): Pick up block introducing keywords with
immediately following colons. Sjoerd noticed this one too. Here's a
nonsense.py file that flexes all the font-lock keyword combinations.
class A:
class B(A):
pass
def __init__(self):
if i == 2 and j == 3 or k == 4:
import stuff
from otherstuff import cool
for i in range(cool.count):
if i == j:
break
elif j == 1:
continue
print i
else:
return not i
elif q is not i:
return lambda x: x + 1
else:
try:
try:
raise stuff.error
except stuff.error, v:
print v
except:
global q
finally:
while q > 0:
q = q - 1
assert q == 0
Barry Warsaw [Wed, 5 Nov 1997 18:41:11 +0000 (18:41 +0000)]
(py-emacs-features): Test for working make-temp-name, which is broken
on NTEmacs 19.34.6.
(py-serial-number): New variable.
(py-execute-region): If make-temp-name is broken, simply append a
serial number to the string "python-" to get a temporary file name.
It's possible concurrent NTEmacs can step on each others toes, but it
makes no sense to further coddle a busted NTEmacs.
Barry Warsaw [Wed, 5 Nov 1997 00:51:08 +0000 (00:51 +0000)]
(mark-python-def-or-class): Renamed to py-mark-def-or-class globally.
(py-mode-map): Moved py-mark-def-or-class from M-C-h to C-c C-m since
the old binding conflicts with the standard global backward-kill-word
binding, and this new binding is more conformant with other language
modes. Moved py-mark-block to C-c C-k.
Setting interp->builtins to the __builtin__ module instead of to its
dictionary had the unfortunate side effect of always running in
restricted execution mode :-(
I will check in a different way of setting __main__.__builtins__ to
the __builtin__ module later.
Also, there was a typo -- a comment was unfinished, and as a result
some finalizations were not being executed.
In Bart Simpson style,
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
I Will Not Check In Untested Changes.
Barry Warsaw [Tue, 4 Nov 1997 19:21:50 +0000 (19:21 +0000)]
(py-backspace-function): New variable.
(py-electric-backspace, py-electric-delete): Support the XEmacs 20 Way
for backspace and delete mappings. In XEmacs 19, Emacs 19, and Emacs
20, both backspace and delete keysyms are bound to
py-electric-backspace. In XEmacs 20, backspace and delete keysyms are
bound separately, allowing the user to specify forward or backward
deletion of the delete keysym through the variable
delete-key-deletes-forward. All this is the Right Way To Do It and
this implementation was largely ripped from CC Mode.
Barry Warsaw [Tue, 4 Nov 1997 18:47:06 +0000 (18:47 +0000)]
First round of changes, mostly subprocess stuff.
(py-execute-file): Better interaction with comint. Set
comint-scroll-to-bottom-on-output to t. Wrapper buffer change in
unwind-protect in case process filter fails.
(py-shell): Start Python with -i flag to fix tty problem on Windows;
presumably -- not yet tested.
(py-clear-queue): New function to clear the pending exec file queue.
Not currently keybound.
(py-execute-region, py-execute-buffer): Added optional async flag (use
via C-u prefix) to execute the region in a new asynchrous buffer, even
if the Python shell is running.
(py-append-to-process-buffer): Removed as obsolete. Comint provides
this functionality.
Removed fbound test defun of match-string. All modern X/Emacsen have
this function.
When checking for equality, open the slave file in text mode so it
will compare equal even if the master file uses only \n to terminate
lines (this is by far the most common situation). Also, check for the
case where the master file is missing, and print the time difference
in seconds when the slave file appears newer than the master (for
debugging).
Use ``0'' instead of ``None'' to reset the underlying object in close
methods. Using None causes problems if the destructor is called after
the __builtin__ module has already been destroyed (unfortunately, this
can happen!). I can't just delete the object because it is actually
tested for (if self._sock: ...). Setting it to 0 is a bit weird but
works.
Get rid of another reference to _PyImport_Inittab (now a static array)
that should be PyImport_Inittab (a new pointer initialized to point to
the array).
Move the Py_{{BEGIN,END}_ALLOW,BLOCK}_THREADS macros in time_sleep()
to inside floatsleep(). This is necessary because floatsleep() does
the error handling and it must have grabbed the interpreter lock and
thread state before it can do so.
- The interp->builtins variable (and hence, __main__.__builtins__) is
once again initialized to the built-in *module* instead of its
dictionary.
- The finalization order is once again changed. Signals are finalized
relatively early, because (1) it DECREF's the signal handlers, and if
a signal handler happens to be a bound method, deleting it could cause
problems when there's no current thread around, and (2) we don't want
to risk executing signal handlers during finalization.
Doing the most complicated CVS dance I've ever seen. Barry has had
his *own* RCS file for python-mode.el, and I've agreed that it would
be better if his version was in the Python source tree. However I
don't want to totally get rid of the old RCS file (which has
interesting info such as which version was in which Python release).
So I've moved the old one to python-mode-old.el behind the scenes,
and this checkin message indicates that I'm now deleting it.
If you do an update, you will actually get Barry's *new* version!
Barry Warsaw [Mon, 3 Nov 1997 16:59:38 +0000 (16:59 +0000)]
Changes in preparation for integrating into the Python CVS tree.
Introductory comment updates.
(python-font-lock-keywords): Added "assert"
(py-block-closing-keywords-re): New variable.
(py-no-outdent-re): Rewrite to use py-block-closing-keywords-re.
(py-shell): py-process-filter should no longer be necessary. Comint
should do all the work. Note that more fixes to the py-shell process
mechanism need to be done.
(py-execute-region): Check for empty region. Some questionable
changes to set-buffer after shell-command-on-region. Again, this all
needs to be closely examined for X/Emacs 19/20 compatibility.
(py-goto-beyond-final-line): py-parse-partial-sexp-works-p should no
longer be necessary.
(py-statement-closes-block-p): Use py-block-closing-keywords-re.
Guido van Rossum [Fri, 31 Oct 1997 18:38:52 +0000 (18:38 +0000)]
New policy for package imports: only a directory containing
__init__.py (or __init__.pyc/.pyo, whichever applies) is considered a
package. All other subdirectories are left alone. Should make Konrad
Hinsen happy!
Guido van Rossum [Fri, 31 Oct 1997 17:00:30 +0000 (17:00 +0000)]
Hack suggested by Matthias Klose to pull in all relevant entry points
in libmath.a so they are available to mathmodule.so (in case it is
shared). While this still gets triggered on Solaris 2.x, this appears
to be harmless there.
Guido van Rossum [Mon, 27 Oct 1997 18:56:19 +0000 (18:56 +0000)]
This should hopefully finally clean up the remaining __del__ related
problems with this module, even if an instance of a derived class is
kept alive longer than the urllib module itself...
Guido van Rossum [Sun, 26 Oct 1997 17:00:25 +0000 (17:00 +0000)]
Use __dict__.update(state) instead of for loop over state.items() and
call to setattr(). This changes semantics, following the change
already implemented in pickle.
Guido van Rossum [Thu, 23 Oct 1997 22:43:50 +0000 (22:43 +0000)]
New module -- converts regex regular expressions to re style.
There are two ways to use this -- as a filter (e.g. using C-U M-| on a
regex string literal in an Emacs buffer) or from a Python program
which imports this as a module. Read the doc string for more info,
and also some caveats (some cases aren't handled right).
Guido van Rossum [Thu, 23 Oct 1997 19:09:21 +0000 (19:09 +0000)]
Although it's hard to be sure, I *think* this is a working conversion
from regex to re style regular expressions. This should make sgmllib
and htmllib threadsafe, so I can now create a threaded version of
webchecker...
Guido van Rossum [Mon, 20 Oct 1997 23:31:15 +0000 (23:31 +0000)]
Add optional 4th argument to count(), matching find() etc.
Also change all occurrences of "x == None" to "x is None" (not that it
matters much, these functions are all reimplemented in strop -- but
count() is not).
Fred Drake [Wed, 15 Oct 1997 14:37:24 +0000 (14:37 +0000)]
Change Python-as-executable-script example to use "#! /usr/bin/env python"
since that's now the recommended way to do it.
In pickling discussion, change "code{pickle}" (not missing leading "\") to
"This" since the immediately preceeding sentence ended with the same text
(with the proper "\"). Fixes a formatting bug and an odd glitch in the
writing.
Guido van Rossum [Fri, 10 Oct 1997 17:39:19 +0000 (17:39 +0000)]
Darn. When thread support is disabled, the BEGIN/END macros don't
save and restore the tstate, but explicitly calling
PyEval_SaveThread() does reset it! While I think about how to fix
this for real, here's a fix that avoids getting a fatal error.