summaryrefslogtreecommitdiffstats
path: root/Mac
diff options
context:
space:
mode:
Diffstat (limited to 'Mac')
-rw-r--r--Mac/Tools/IDE/PyBrowser.py2
-rw-r--r--Mac/Tools/IDE/PyEdit.py4
-rw-r--r--Mac/Tools/IDE/PyFontify.py67
-rw-r--r--Mac/Tools/IDE/Wcontrols.py8
4 files changed, 38 insertions, 43 deletions
diff --git a/Mac/Tools/IDE/PyBrowser.py b/Mac/Tools/IDE/PyBrowser.py
index 19319a1..c8e5066 100644
--- a/Mac/Tools/IDE/PyBrowser.py
+++ b/Mac/Tools/IDE/PyBrowser.py
@@ -13,7 +13,7 @@ opensolidid = struct.pack('h', 471)
arrows = (nullid, closedid, openid, closedsolidid, opensolidid)
-has_ctlcharsRE = re.compile('[\000-\037\177-\377]')
+has_ctlcharsRE = re.compile(r'[\000-\037\177-\377]')
def ctlcharsREsearch(str):
if has_ctlcharsRE.search(str) is None:
return -1
diff --git a/Mac/Tools/IDE/PyEdit.py b/Mac/Tools/IDE/PyEdit.py
index ac6cc0e..10f583f 100644
--- a/Mac/Tools/IDE/PyEdit.py
+++ b/Mac/Tools/IDE/PyEdit.py
@@ -790,7 +790,7 @@ def _escape(where, what) :
def _makewholewordpattern(word):
# first, escape special regex chars
- for esc in "\\[]().*^+$?":
+ for esc in "\\[]()|.*^+$?":
word = _escape(word, esc)
notwordcharspat = '[^' + _wordchars + ']'
pattern = '(' + word + ')'
@@ -1166,7 +1166,7 @@ def execstring(pytext, globals, locals, filename="<string>", debugging=0,
PyDebugger.stop()
-_identifieRE = re.compile("[A-Za-z_][A-Za-z_0-9]*")
+_identifieRE = re.compile(r"[A-Za-z_][A-Za-z_0-9]*")
def identifieRE_match(str):
match = _identifieRE.match(str)
diff --git a/Mac/Tools/IDE/PyFontify.py b/Mac/Tools/IDE/PyFontify.py
index b5d6102..5680aa8 100644
--- a/Mac/Tools/IDE/PyFontify.py
+++ b/Mac/Tools/IDE/PyFontify.py
@@ -19,15 +19,16 @@ sublist is not used, hence always None.
# Many thanks for regular expression debugging & authoring are due to:
# Tim (the-incredib-ly y'rs) Peters and Cristian Tismer
# So, who owns the copyright? ;-) How about this:
-# Copyright 1996-2000:
+# Copyright 1996-2001:
# Mitchell S. Chapman,
# Zachary Roadhouse,
# Tim Peters,
# Just van Rossum
-__version__ = "0.3.3"
+__version__ = "0.4"
-import string, re
+import string
+import re
# First a little helper, since I don't like to repeat things. (Tismer speaking)
import string
@@ -43,50 +44,47 @@ keywordsList = [
"break", "else", "if", "or", "while",
"class", "except", "import", "pass",
"continue", "finally", "in", "print",
- "def", "for", "is", "raise"]
+ "def", "for", "is", "raise", "yield"]
# Build up a regular expression which will match anything
# interesting, including multi-line triple-quoted strings.
-commentPat = "#.*"
+commentPat = r"#[^\n]*"
-pat = "q[^\q\n]*\(\\\\[\000-\377][^\q\n]*\)*q"
-quotePat = replace(pat, "q", "'") + "\|" + replace(pat, 'q', '"')
+pat = r"q[^\\q\n]*(\\[\000-\377][^\\q\n]*)*q"
+quotePat = replace(pat, "q", "'") + "|" + replace(pat, 'q', '"')
# Way to go, Tim!
-pat = """
+pat = r"""
qqq
[^\\q]*
- \(
- \( \\\\[\000-\377]
- \| q
- \( \\\\[\000-\377]
- \| [^\\q]
- \| q
- \( \\\\[\000-\377]
- \| [^\\q]
- \)
- \)
- \)
+ (
+ ( \\[\000-\377]
+ | q
+ ( \\[\000-\377]
+ | [^\q]
+ | q
+ ( \\[\000-\377]
+ | [^\\q]
+ )
+ )
+ )
[^\\q]*
- \)*
+ )*
qqq
"""
pat = string.join(string.split(pat), '') # get rid of whitespace
-tripleQuotePat = replace(pat, "q", "'") + "\|" + replace(pat, 'q', '"')
+tripleQuotePat = replace(pat, "q", "'") + "|" + replace(pat, 'q', '"')
# Build up a regular expression which matches all and only
# Python keywords. This will let us skip the uninteresting
# identifier references.
# nonKeyPat identifies characters which may legally precede
# a keyword pattern.
-nonKeyPat = "\(^\|[^a-zA-Z0-9_.\"']\)"
+nonKeyPat = r"(^|[^a-zA-Z0-9_.\"'])"
-keyPat = nonKeyPat + "\("
-for keyword in keywordsList:
- keyPat = keyPat + keyword + "\|"
-keyPat = keyPat[:-2] + "\)" + nonKeyPat
+keyPat = nonKeyPat + "(" + "|".join(keywordsList) + ")" + nonKeyPat
-matchPat = commentPat + "\|" + keyPat + "\|" + tripleQuotePat + "\|" + quotePat
+matchPat = commentPat + "|" + keyPat + "|" + tripleQuotePat + "|" + quotePat
matchRE = re.compile(matchPat)
idKeyPat = "[ \t]*[A-Za-z_][A-Za-z_0-9.]*" # Ident w. leading whitespace.
@@ -111,7 +109,10 @@ def fontify(pytext, searchfrom = 0, searchto = None):
end = searchfrom
while 1:
m = search(pytext, end)
- if not m or m.start() >= searchto:
+ if m is None:
+ break # EXIT LOOP
+ start = m.start()
+ if start >= searchto:
break # EXIT LOOP
match = m.group(0)
end = start + len(match)
@@ -132,10 +133,12 @@ def fontify(pytext, searchfrom = 0, searchto = None):
# following identifier.
if match in ["def", "class"]:
m = idSearch(pytext, end)
- if m and m.start() == end:
- match = m.group(0)
- end = start + len(match)
- tags_append((identifierTag, start, end, None))
+ if m is not None:
+ start = m.start()
+ if start == end:
+ match = m.group(0)
+ end = start + len(match)
+ tags_append((identifierTag, start, end, None))
elif c == "#":
tags_append((commentTag, start, end, None))
else:
diff --git a/Mac/Tools/IDE/Wcontrols.py b/Mac/Tools/IDE/Wcontrols.py
index 7a88cca..7394084 100644
--- a/Mac/Tools/IDE/Wcontrols.py
+++ b/Mac/Tools/IDE/Wcontrols.py
@@ -381,14 +381,6 @@ class Scrollbar(ControlWidget):
return self._value
-class __xxxx_PopupControl(ControlWidget):
-
- def __init__(self, possize, title = "Button", callback = None):
- procID = Controls.popupMenuProc # | Controls.useWFont
- ControlWidget.__init__(self, possize, title, procID, callback, 0, 0, 1)
- self._isdefault = 0
-
-
def _scalebarvalue(absmin, absmax, curmin, curmax):
if curmin <= absmin and curmax >= absmax:
return None