pywin32-checkins Mailing List for Python for Windows Extensions (Page 143)
OLD project page for the Python extensions for Windows
Brought to you by:
mhammond
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
(6) |
Jul
(50) |
Aug
(11) |
Sep
(24) |
Oct
(184) |
Nov
(118) |
Dec
(22) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(31) |
Feb
(25) |
Mar
(34) |
Apr
(105) |
May
(49) |
Jun
(38) |
Jul
(39) |
Aug
(7) |
Sep
(98) |
Oct
(79) |
Nov
(20) |
Dec
(17) |
2005 |
Jan
(66) |
Feb
(32) |
Mar
(43) |
Apr
(30) |
May
(58) |
Jun
(30) |
Jul
(16) |
Aug
(4) |
Sep
(21) |
Oct
(42) |
Nov
(11) |
Dec
(14) |
2006 |
Jan
(42) |
Feb
(30) |
Mar
(22) |
Apr
(1) |
May
(9) |
Jun
(15) |
Jul
(20) |
Aug
(9) |
Sep
(8) |
Oct
(1) |
Nov
(9) |
Dec
(43) |
2007 |
Jan
(52) |
Feb
(45) |
Mar
(20) |
Apr
(12) |
May
(59) |
Jun
(39) |
Jul
(35) |
Aug
(31) |
Sep
(17) |
Oct
(20) |
Nov
(4) |
Dec
(4) |
2008 |
Jan
(28) |
Feb
(111) |
Mar
(4) |
Apr
(27) |
May
(40) |
Jun
(27) |
Jul
(32) |
Aug
(94) |
Sep
(87) |
Oct
(153) |
Nov
(336) |
Dec
(331) |
2009 |
Jan
(298) |
Feb
(127) |
Mar
(20) |
Apr
(8) |
May
|
Jun
(10) |
Jul
(6) |
Aug
|
Sep
(2) |
Oct
(2) |
Nov
|
Dec
(1) |
2010 |
Jan
(7) |
Feb
(1) |
Mar
|
Apr
|
May
(15) |
Jun
(4) |
Jul
(3) |
Aug
(28) |
Sep
(1) |
Oct
(19) |
Nov
(16) |
Dec
(6) |
2011 |
Jan
(2) |
Feb
(18) |
Mar
(17) |
Apr
(12) |
May
(5) |
Jun
(11) |
Jul
(7) |
Aug
(2) |
Sep
(2) |
Oct
(4) |
Nov
(4) |
Dec
|
2012 |
Jan
(6) |
Feb
(2) |
Mar
|
Apr
(8) |
May
(4) |
Jun
(3) |
Jul
(13) |
Aug
(27) |
Sep
(8) |
Oct
(9) |
Nov
(3) |
Dec
(2) |
2013 |
Jan
|
Feb
(1) |
Mar
(5) |
Apr
(10) |
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(9) |
2014 |
Jan
(2) |
Feb
(4) |
Mar
(4) |
Apr
(1) |
May
(4) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
(1) |
2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
(6) |
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: <mha...@us...> - 2003-12-02 03:23:53
|
Update of /cvsroot/pywin32/pywin32 In directory sc8-pr-cvs1:/tmp/cvs-serv10145 Removed Files: .cvspass Log Message: Not sure what this was doing there. Lucky it had no password :) --- .cvspass DELETED --- |
From: <mha...@us...> - 2003-12-01 11:06:45
|
Update of /cvsroot/pywin32/pywin32/Pythonwin/pywin/framework In directory sc8-pr-cvs1:/tmp/cvs-serv8419 Modified Files: interact.py Log Message: Go 1/2 way to handling the Unicode error that sometimes comes up. Index: interact.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/pywin/framework/interact.py,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** interact.py 15 Apr 2002 15:15:37 -0000 1.13 --- interact.py 1 Dec 2003 11:06:42 -0000 1.14 *************** *** 304,308 **** line = self.GetLine(line) if pywin.is_platform_unicode: ! line = unicode(line, pywin.default_scintilla_encoding).encode(pywin.default_platform_encoding) while line and line[-1] in ['\r', '\n']: line = line[:-1] --- 304,315 ---- line = self.GetLine(line) if pywin.is_platform_unicode: ! try: ! line = unicode(line, pywin.default_scintilla_encoding).encode(pywin.default_platform_encoding) ! except: ! # We should fix the underlying problem rather than always masking errors ! # so make it complain. ! print "Unicode error converting", repr(line) ! line = unicode(line, pywin.default_scintilla_encoding, "ignore").encode(pywin.default_platform_encoding) ! while line and line[-1] in ['\r', '\n']: line = line[:-1] |
Update of /cvsroot/pywin32/pywin32/win32 In directory sc8-pr-cvs1:/tmp/cvs-serv8038 Modified Files: win32event.dsp win32evtlog.dsp win32file.dsp win32gui.dsp win32pipe.dsp win32process.dsp win32security.dsp win32service.dsp Log Message: Stop SWIG generating the .doc files we don't use. Index: win32event.dsp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/win32event.dsp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** win32event.dsp 31 Jul 2003 02:18:42 -0000 1.6 --- win32event.dsp 1 Dec 2003 11:04:03 -0000 1.7 *************** *** 103,107 **** "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build --- 103,107 ---- "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build *************** *** 115,119 **** "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build --- 115,119 ---- "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build Index: win32evtlog.dsp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/win32evtlog.dsp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** win32evtlog.dsp 27 Oct 2001 06:33:24 -0000 1.4 --- win32evtlog.dsp 1 Dec 2003 11:04:04 -0000 1.5 *************** *** 103,107 **** "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -c++ -o $(InputName)module.cpp $(InputName).i # End Custom Build --- 103,107 ---- "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -dnone -c++ -o $(InputName)module.cpp $(InputName).i # End Custom Build *************** *** 115,119 **** "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -c++ -o $(InputName)module.cpp $(InputName).i # End Custom Build --- 115,119 ---- "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -dnone -c++ -o $(InputName)module.cpp $(InputName).i # End Custom Build Index: win32file.dsp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/win32file.dsp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** win32file.dsp 31 Jul 2003 02:18:42 -0000 1.7 --- win32file.dsp 1 Dec 2003 11:04:04 -0000 1.8 *************** *** 103,107 **** "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build --- 103,107 ---- "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build *************** *** 115,119 **** "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build --- 115,119 ---- "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build Index: win32gui.dsp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/win32gui.dsp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** win32gui.dsp 31 Jul 2003 02:18:42 -0000 1.8 --- win32gui.dsp 1 Dec 2003 11:04:04 -0000 1.9 *************** *** 107,111 **** "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build --- 107,111 ---- "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build *************** *** 119,123 **** "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build --- 119,123 ---- "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build Index: win32pipe.dsp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/win32pipe.dsp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** win32pipe.dsp 28 Oct 2000 01:15:12 -0000 1.4 --- win32pipe.dsp 1 Dec 2003 11:04:04 -0000 1.5 *************** *** 106,111 **** "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build --- 106,111 ---- "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build *************** *** 118,123 **** "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build --- 118,123 ---- "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build Index: win32process.dsp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/win32process.dsp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** win32process.dsp 31 Jul 2003 02:18:42 -0000 1.5 --- win32process.dsp 1 Dec 2003 11:04:04 -0000 1.6 *************** *** 103,107 **** "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build --- 103,107 ---- "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build *************** *** 115,119 **** "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build --- 115,119 ---- "$(InputDir)\$(InputName)module_win32.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module_win32.cpp $(InputName).i # End Custom Build Index: win32security.dsp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/win32security.dsp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** win32security.dsp 28 Oct 2000 01:15:12 -0000 1.4 --- win32security.dsp 1 Dec 2003 11:04:05 -0000 1.5 *************** *** 103,108 **** "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build --- 103,108 ---- "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build *************** *** 115,120 **** "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build --- 115,120 ---- "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -dnone -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build Index: win32service.dsp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/win32service.dsp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** win32service.dsp 28 Oct 2000 01:15:12 -0000 1.3 --- win32service.dsp 1 Dec 2003 11:04:05 -0000 1.4 *************** *** 104,109 **** "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build --- 104,109 ---- "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -dnone -python -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build *************** *** 116,121 **** "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -python -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build --- 116,121 ---- "$(InputDir)\$(InputName)module.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" ! ..\swig.bat $(InputDir) -dnone -python -c++ -o $(InputName)module.cpp $(InputName).i ! # End Custom Build |
From: <mha...@us...> - 2003-12-01 10:57:56
|
Update of /cvsroot/pywin32/pywin32/win32/test In directory sc8-pr-cvs1:/tmp/cvs-serv6899 Modified Files: test_clipboard.py Log Message: Test string/unicode and global mem functions. Index: test_clipboard.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/test/test_clipboard.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_clipboard.py 29 Nov 2003 06:09:51 -0000 1.3 --- test_clipboard.py 1 Dec 2003 10:57:53 -0000 1.4 *************** *** 5,8 **** --- 5,12 ---- from win32clipboard import * import win32gui, win32con + import pywintypes + import array + + custom_format_name = "PythonClipboardTestFormat" class CrashingTestCase(unittest.TestCase): *************** *** 49,52 **** --- 53,95 ---- finally: CloseClipboard() + + class TestStrings(unittest.TestCase): + def setUp(self): + OpenClipboard() + def tearDown(self): + CloseClipboard() + def test_unicode(self): + val = unicode("test-\xe0\xf2", "mbcs") + SetClipboardData(win32con.CF_UNICODETEXT, val) + self.failUnlessEqual(GetClipboardData(win32con.CF_UNICODETEXT), val) + def test_string(self): + val = "test" + SetClipboardData(win32con.CF_TEXT, val) + self.failUnlessEqual(GetClipboardData(win32con.CF_TEXT), val) + + class TestGlobalMemory(unittest.TestCase): + def setUp(self): + OpenClipboard() + def tearDown(self): + CloseClipboard() + def test_mem(self): + val = "test" + SetClipboardData(win32con.CF_TEXT, val) + # Get the raw data - this will include the '\0' + raw_data = GetGlobalMemory(GetClipboardDataHandle(win32con.CF_TEXT)) + self.failUnlessEqual(val + '\0', raw_data) + def test_bad_mem(self): + self.failUnlessRaises(pywintypes.error, GetGlobalMemory, 0) + self.failUnlessRaises(pywintypes.error, GetGlobalMemory, 1) + self.failUnlessRaises(pywintypes.error, GetGlobalMemory, -1) + def test_custom_mem(self): + test_data = "hello\x00\xff" + test_buffer = array.array("c", test_data) + cf = RegisterClipboardFormat(custom_format_name) + self.failUnlessEqual(custom_format_name, GetClipboardFormatName(cf)) + SetClipboardData(cf, test_buffer) + hglobal = GetClipboardDataHandle(cf) + data = GetGlobalMemory(hglobal) + self.failUnlessEqual(data, test_data) if __name__ == '__main__': |
From: <mha...@us...> - 2003-12-01 10:48:02
|
Update of /cvsroot/pywin32/pywin32 In directory sc8-pr-cvs1:/tmp/cvs-serv5395 Added Files: setup_win32all.py Removed Files: setup_win32all_core.py Log Message: Rename setup_win32all_core.py to setup_win32all.py, as it now handles all win32all extensions, not just the core modules. --- NEW FILE: setup_win32all.py --- """distutils setup-script for win32all To build the win32all extensions, simply execute: python setup_win32all.py -q build These extensions require a number of libraries to build, some of which may require your to install special SDKs or toolkits. This script will attempt to build as many as it can, and at the end of the build, will report any extension modules that could not be built and why. Not being able to build the MAPI or ActiveScripting related projects is common. If you don't use these extensions, you can ignore these warnings; if you do use them, you must install the correct libraries. To install the win32all extensions, execute: python setup_win32all.py -q install This will install the built extensions into your site-packages directory, and create an appropriate .pth file, and should leave everything ready to use. There should be no need to modify the registry. To build or install debug (_d) versions of these extensions, pass the "--debug" flag to the build command - eg: python setup_win32all.py -q build --debug or to build and install a debug version: python setup_win32all.py -q build --debug install you must have built (or installed) a debug version of Python for this to work. """ # Thomas Heller, started in 2000 or so. # # Things known to be missing: # * Newer win32all.exes installed Pythonwin.exe next to python.exe. This # leaves it in the pythonwin directory, but it seems to work fine. # It may not for a non-admin Python install, where Pythonxx.dll is # not in the system32 directory. from distutils.core import setup, Extension, Command from distutils.command.install_lib import install_lib from distutils.command.build_ext import build_ext from distutils.dep_util import newer_group from distutils import log from distutils import dir_util, file_util from distutils.sysconfig import get_python_lib from distutils.filelist import FileList import os, string, sys import re # Python 2.2 has no True/False try: True; False except NameError: True=0==0 False=1==0 class WinExt (Extension): # Base class for all win32 extensions, with some predefined # library and include dirs, and predefined windows libraries. # Additionally a method to parse .def files into lists of exported # symbols, and to read def __init__ (self, name, sources=None, include_dirs=[], define_macros=None, undef_macros=None, library_dirs=[], libraries="", runtime_library_dirs=None, extra_objects=None, extra_compile_args=None, extra_link_args=None, export_symbols=None, export_symbol_file=None, dsp_file=None, pch_header=None ): assert dsp_file or sources, "Either dsp_file or sources must be specified" libary_dirs = library_dirs, include_dirs = ['com/win32com/src/include', 'win32/src'] + include_dirs libraries=libraries.split() if export_symbol_file: export_symbols = export_symbols or [] export_symbols.extend(self.parse_def_file(export_symbol_file)) if dsp_file: sources = sources or [] sources.extend(self.get_source_files(dsp_file)) self.pch_header = pch_header Extension.__init__ (self, name, sources, include_dirs, define_macros, undef_macros, library_dirs, libraries, runtime_library_dirs, extra_objects, extra_compile_args, extra_link_args, export_symbols) def parse_def_file(self, path): # Extract symbols to export from a def-file result = [] for line in open(path).readlines(): line = string.rstrip(line) if line and line[0] in string.whitespace: tokens = string.split(line) if not tokens[0][0] in string.letters: continue result.append(string.join(tokens, ',')) return result def get_source_files(self, dsp): result = [] dsp_path = os.path.dirname(dsp) for line in open(dsp, "r"): fields = line.strip().split("=", 2) if fields[0]=="SOURCE": if os.path.splitext(fields[1])[1].lower() in ['.cpp', '.c', '.i', '.rc', '.mc']: pathname = os.path.normpath(os.path.join(dsp_path, fields[1])) result.append(pathname) return result class WinExt_pythonwin(WinExt): def __init__ (self, name, **kw): if not kw.has_key("dsp_file"): kw["dsp_file"] = "pythonwin/" + name + ".dsp" kw.setdefault("extra_compile_args", []).extend( ['-D_AFXDLL', '-D_AFXEXT','-D_MBCS']) WinExt.__init__(self, name, **kw) def get_pywin32_dir(self): return "pythonwin" class WinExt_win32(WinExt): def __init__ (self, name, **kw): if not kw.has_key("dsp_file"): kw["dsp_file"] = "win32/" + name + ".dsp" WinExt.__init__(self, name, **kw) def get_pywin32_dir(self): return "win32" # Note this is used only for "win32com extensions", not pythoncom # itself - thus, output is "win32comext" class WinExt_win32com(WinExt): def __init__ (self, name, **kw): if not kw.has_key("dsp_file"): kw["dsp_file"] = "com/" + name + ".dsp" kw["libraries"] = kw.get("libraries", "") + " oleaut32 ole32" WinExt.__init__(self, name, **kw) def get_pywin32_dir(self): return "win32comext/" + self.name # 'win32com.mapi.exchange' and 'win32com.mapi.exchdapi' currently only # ones with this special requirement class WinExt_win32com_mapi(WinExt_win32com): def get_pywin32_dir(self): return "win32com/mapi" # A hacky extension class for pywintypesXX.dll and pythoncomXX.dll class WinExt_system32(WinExt): def get_pywin32_dir(self): return "pywin32_system32" ################################################################ class my_build_ext(build_ext): def finalize_options(self): build_ext.finalize_options(self) # The pywintypes library is created in the build_temp # directory, so we need to add this to library_dirs self.library_dirs.append(self.build_temp) self.mingw32 = (self.compiler == "mingw32") if self.mingw32: self.libraries.append("stdc++") def _why_cant_build_extension(self, ext): # Return None, or a reason it can't be built. common_dirs = self.compiler.library_dirs common_dirs += os.environ.get("LIB").split(os.pathsep) patched_libs = [] for lib in ext.libraries: if self.found_libraries.has_key(lib.lower()): found = self.found_libraries[lib.lower()] else: look_dirs = common_dirs + ext.library_dirs found = self.compiler.find_library_file(look_dirs, lib, self.debug) if not found: return "No library '%s'" % lib self.found_libraries[lib.lower()] = found patched_libs.append(os.path.splitext(os.path.basename(found))[0]) # We update the .libraries list with the resolved library name. # This is really only so "_d" works. ext.libraries = patched_libs return None # no reason - it can be built! def build_extensions(self): # Is there a better way than this? # Just one GUIDS.CPP and it gives trouble on mainwin too # Maybe I should just rename the file, but a case-only rename is likely to be # worse! if ".CPP" not in self.compiler.src_extensions: self.compiler._cpp_extensions.append(".CPP") self.compiler.src_extensions.append(".CPP") # First, sanity-check the 'extensions' list self.check_extensions_list(self.extensions) self.found_libraries = {} self.excluded_extensions = [] # list of (ext, why) # Here we hack a "pywin32" directory (one of 'win32', 'win32com', # 'pythonwin' etc), as distutils doesn't seem to like the concept # of multiple top-level directories. assert self.package is None for ext in self.extensions: try: self.package = ext.get_pywin32_dir() except AttributeError: raise RuntimeError, "Not a win32 package!" self.build_extension(ext) for ext in W32_exe_files: try: self.package = ext.get_pywin32_dir() except AttributeError: raise RuntimeError, "Not a win32 package!" self.build_exefile(ext) # Not sure how to make this completely generic, and there is no # need at this stage. path = 'pythonwin\\Scintilla' makefile = 'makefile_pythonwin' makeargs = ["QUIET=1"] if self.debug: makeargs.append("DEBUG=1") if not self.verbose: makeargs.append("/C") # nmake: /C Suppress output messages # We build the DLL into our own temp directory, then copy it to the # real directory - this avoids the generated .lib/.exp build_temp = os.path.abspath(os.path.join(self.build_temp, "scintilla")) dir_util.mkpath(build_temp, verbose=self.verbose, dry_run=self.dry_run) makeargs.append("SUB_DIR_O=%s" % build_temp) makeargs.append("SUB_DIR_BIN=%s" % build_temp) cwd = os.getcwd() os.chdir(path) try: cmd = ["nmake.exe", "/nologo", "/f", makefile] + makeargs self.spawn(cmd) finally: os.chdir(cwd) # The DLL goes in the Pythonwin directory. if self.debug: base_name = "scintilla_d.dll" else: base_name = "scintilla.dll" file_util.copy_file( os.path.join(self.build_temp, "scintilla", base_name), os.path.join(self.build_lib, "Pythonwin"), verbose = self.verbose, dry_run = self.dry_run) def build_exefile(self, ext): from types import ListType, TupleType sources = ext.sources if sources is None or type(sources) not in (ListType, TupleType): raise DistutilsSetupError, \ ("in 'ext_modules' option (extension '%s'), " + "'sources' must be present and must be " + "a list of source filenames") % ext.name sources = list(sources) log.info("building exe '%s'", ext.name) fullname = self.get_ext_fullname(ext.name) if self.inplace: # ignore build-lib -- put the compiled extension into # the source tree along with pure Python modules modpath = string.split(fullname, '.') package = string.join(modpath[0:-1], '.') base = modpath[-1] build_py = self.get_finalized_command('build_py') package_dir = build_py.get_package_dir(package) ext_filename = os.path.join(package_dir, self.get_ext_filename(base)) else: ext_filename = os.path.join(self.build_lib, self.get_ext_filename(fullname)) depends = sources + ext.depends if not (self.force or newer_group(depends, ext_filename, 'newer')): log.debug("skipping '%s' executable (up-to-date)", ext.name) return else: log.info("building '%s' executable", ext.name) # First, scan the sources for SWIG definition files (.i), run # SWIG on 'em to create .c files, and modify the sources list # accordingly. sources = self.swig_sources(sources) # Next, compile the source code to object files. # XXX not honouring 'define_macros' or 'undef_macros' -- the # CCompiler API needs to change to accommodate this, and I # want to do one thing at a time! # Two possible sources for extra compiler arguments: # - 'extra_compile_args' in Extension object # - CFLAGS environment variable (not particularly # elegant, but people seem to expect it and I # guess it's useful) # The environment variable should take precedence, and # any sensible compiler will give precedence to later # command line args. Hence we combine them in order: extra_args = ext.extra_compile_args or [] macros = ext.define_macros[:] for undef in ext.undef_macros: macros.append((undef,)) objects = self.compiler.compile(sources, output_dir=self.build_temp, macros=macros, include_dirs=ext.include_dirs, debug=self.debug, extra_postargs=extra_args, depends=ext.depends) # XXX -- this is a Vile HACK! # # The setup.py script for Python on Unix needs to be able to # get this list so it can perform all the clean up needed to # avoid keeping object files around when cleaning out a failed # build of an extension module. Since Distutils does not # track dependencies, we have to get rid of intermediates to # ensure all the intermediates will be properly re-built. # self._built_objects = objects[:] # Now link the object files together into a "shared object" -- # of course, first we have to figure out all the other things # that go into the mix. if ext.extra_objects: objects.extend(ext.extra_objects) extra_args = ext.extra_link_args or [] # Detect target language, if not provided language = ext.language or self.compiler.detect_language(sources) self.compiler.link( "executable", objects, ext_filename, libraries=self.get_libraries(ext), library_dirs=ext.library_dirs, runtime_library_dirs=ext.runtime_library_dirs, extra_postargs=extra_args, debug=self.debug, build_temp=self.build_temp, target_lang=language) def build_extension(self, ext): # It is well known that some of these extensions are difficult to # build, requiring various hard-to-track libraries etc. So we # check the extension list for the extra libraries explicitly # listed. We then search for this library the same way the C # compiler would - if we can't find a library, we exclude the # extension from the build. # Note we can't do this in advance, as some of the .lib files # we depend on may be built as part of the process - thus we can # only check an extension's lib files as we are building it. why = self._why_cant_build_extension(ext) if why is not None: self.excluded_extensions.append((ext, why)) return if not self.mingw32 and ext.pch_header: ext.extra_compile_args = ext.extra_compile_args or [] ext.extra_compile_args.append("/YX"+ext.pch_header) # some source files are compiled for different extensions # with special defines. So we cannot use a shared # directory for objects, we must use a special one for each extension. old_build_temp = self.build_temp self.swig_cpp = True try: build_ext.build_extension(self, ext) # XXX This has to be changed for mingw32 extra = self.debug and "_d.lib" or ".lib" if ext.name in ("pywintypes", "pythoncom"): # The import libraries are created as PyWinTypes23.lib, but # are expected to be pywintypes.lib. name1 = "%s%d%d%s" % (ext.name, sys.version_info[0], sys.version_info[1], extra) name2 = "%s%s" % (ext.name, extra) else: name1 = name2 = ext.name + extra # MSVCCompiler constructs the .lib file in the same directory # as the first source file's object file: # os.path.dirname(objects[0]) # but we want it in the (old) build_temp directory src = os.path.join(self.build_temp, os.path.dirname(ext.sources[0]), name1) dst = os.path.join(old_build_temp, name2) self.copy_file(src, dst)#, update=1) finally: self.build_temp = old_build_temp def get_ext_filename(self, name): # The pywintypes and pythoncom extensions have special names if name == "pywin32_system32.pywintypes": extra = self.debug and "_d.dll" or ".dll" return r"pywin32_system32\pywintypes%d%d%s" % (sys.version_info[0], sys.version_info[1], extra) elif name == "pywin32_system32.pythoncom": extra = self.debug and "_d.dll" or ".dll" return r"pywin32_system32\pythoncom%d%d%s" % (sys.version_info[0], sys.version_info[1], extra) elif name.endswith("win32.perfmondata"): extra = self.debug and "_d.dll" or ".dll" return r"win32\perfmondata" + extra elif name.endswith("win32.win32popenWin9x"): extra = self.debug and "_d.exe" or ".exe" return r"win32\win32popenWin9x" + extra elif name.endswith("pythonwin.Pythonwin"): extra = self.debug and "_d.exe" or ".exe" return r"pythonwin\Pythonwin" + extra return build_ext.get_ext_filename(self, name) def get_export_symbols(self, ext): if ext.name.endswith("perfmondata"): return ext.export_symbols return build_ext.get_export_symbols(self, ext) def find_swig (self): # We know where swig is os.environ["SWIG_LIB"] = os.path.abspath(r"swig\swig_lib") return os.path.abspath(r"swig\swig.exe") def swig_sources (self, sources): new_sources = [] swig_sources = [] swig_targets = {} # XXX this drops generated C/C++ files into the source tree, which # is fine for developers who want to distribute the generated # source -- but there should be an option to put SWIG output in # the temp dir. # XXX - further, the way the win32/wince SWIG modules #include the # real .cpp file prevents us generating the .cpp files in the temp dir. target_ext = '.cpp' for source in sources: (base, ext) = os.path.splitext(source) if ext == ".i": # SWIG interface file if os.path.split(base)[1] in swig_include_files: continue swig_sources.append(source) # Patch up the filenames for SWIG modules that also build # under WinCE - see defn of swig_wince_modules for details if os.path.basename(base) in swig_interface_parents: swig_targets[source] = base + target_ext elif os.path.basename(base) in swig_wince_modules: swig_targets[source] = base + 'module_win32' + target_ext else: swig_targets[source] = base + 'module' + target_ext else: new_sources.append(source) if not swig_sources: return new_sources swig = self.find_swig() for source in swig_sources: swig_cmd = [swig, "-python", "-c++"] swig_cmd.append("-dnone",) # we never use the .doc files. target = swig_targets[source] try: interface_parent = swig_interface_parents[ os.path.basename(os.path.splitext(source)[0])] except KeyError: # "normal" swig file - no special win32 issues. pass else: # Using win32 extensions to SWIG for generating COM classes. if interface_parent is not None: # generating a class, not a module. swig_cmd.append("-pythoncom") if interface_parent: # A class deriving from other than the default swig_cmd.extend( ["-com_interface_parent", interface_parent]) swig_cmd.extend(["-o", os.path.abspath(target), os.path.abspath(source)]) log.info("swigging %s to %s", source, target) out_dir = os.path.dirname(source) cwd = os.getcwd() os.chdir(out_dir) try: self.spawn(swig_cmd) finally: os.chdir(cwd) return new_sources ################################################################ pywintypes = WinExt_system32('pywintypes', dsp_file = r"win32\PyWinTypes.dsp", extra_compile_args = ['-DBUILD_PYWINTYPES'], libraries = "advapi32 user32 ole32 oleaut32", pch_header = "PyWinTypes.h", ) win32_extensions = [pywintypes] win32_extensions.append( WinExt_win32("perfmondata", libraries="advapi32", extra_compile_args=["-DUNICODE", "-D_UNICODE", "-DWINNT"], export_symbol_file = "win32/src/PerfMon/perfmondata.def", ), ) for name, lib_names, is_unicode in ( ("dbi", "", False), ("mmapfile", "", False), ("odbc", "odbc32 odbccp32 dbi", False), ("perfmon", "", True), ("timer", "user32", False), ("win2kras", "rasapi32", False), ("win32api", "user32 advapi32 shell32 version", False), ("win32file", "oleaut32", False), ("win32event", "user32", False), ("win32clipboard", "gdi32 user32 shell32", False), ("win32evtlog", "advapi32 oleaut32", False), # win32gui handled below ("win32help", "htmlhelp user32 advapi32", False), ("win32lz", "lz32", False), ("win32net", "netapi32", True), ("win32pdh", "", False), ("win32pipe", "", False), # win32popenWin9x later ("win32print", "winspool user32", False), ("win32process", "advapi32 user32", False), ("win32ras", "rasapi32 user32", False), ("win32security", "advapi32 user32", True), ("win32service", "advapi32 oleaut32", True), ("win32trace", "advapi32", False), ("win32wnet", "netapi32 mpr", False), ): extra_compile_args = [] if is_unicode: extra_compile_args = ['-DUNICODE', '-D_UNICODE', '-DWINNT'] ext = WinExt_win32(name, libraries=lib_names, extra_compile_args = extra_compile_args) win32_extensions.append(ext) # The few that need slightly special treatment win32_extensions += [ WinExt_win32("win32gui", libraries="gdi32 user32 comdlg32 comctl32 shell32", extra_compile_args=["-DWIN32GUI"] ), WinExt_win32('servicemanager', extra_compile_args = ['-DUNICODE', '-D_UNICODE', '-DWINNT', '-DPYSERVICE_BUILD_DLL'], libraries = "user32 ole32 advapi32 shell32", dsp_file = r"win32\Pythonservice servicemanager.dsp") ] # The COM modules. pythoncom = WinExt_system32('pythoncom', dsp_file=r"com\win32com.dsp", libraries = "oleaut32 ole32 user32", export_symbol_file = 'com/win32com/src/PythonCOM.def', extra_compile_args = ['-DBUILD_PYTHONCOM'], pch_header = "stdafx.h", ) com_extensions = [pythoncom] com_extensions += [ WinExt_win32com('adsi', libraries="ACTIVEDS ADSIID"), WinExt_win32com('axcontrol', pch_header="axcontrol_pch.h"), WinExt_win32com('axscript', dsp_file=r"com\Active Scripting.dsp", extra_compile_args = ['-DPY_BUILD_AXSCRIPT'], pch_header = "stdafx.h" ), WinExt_win32com('axdebug', dsp_file=r"com\Active Debugging.dsp", libraries="axscript msdbg", pch_header = "stdafx.h", ), WinExt_win32com('internet'), WinExt_win32com('mapi', libraries="mapi32", pch_header="PythonCOM.h"), WinExt_win32com_mapi('exchange', libraries="""MBLOGON ADDRLKUP mapi32 exchinst EDKCFG EDKUTILS EDKMAPI ACLCLS version""", extra_link_args=["/nodefaultlib:libc"]), WinExt_win32com_mapi('exchdapi', libraries="""DAPI ADDRLKUP exchinst EDKCFG EDKUTILS EDKMAPI mapi32 version""", extra_link_args=["/nodefaultlib:libc"]), WinExt_win32com('shell', libraries='shell32', pch_header="shell_pch.h") ] pythonwin_extensions = [ WinExt_pythonwin("win32ui", extra_compile_args = ['-DBUILD_PYW'], pch_header="stdafx.h"), WinExt_pythonwin("win32uiole", pch_header="stdafxole.h"), WinExt_pythonwin("dde", pch_header="stdafxdde.h"), ] W32_exe_files = [ WinExt_win32("win32popenWin9x", libraries = "user32"), WinExt_pythonwin("Pythonwin", extra_link_args=["/SUBSYSTEM:WINDOWS"]), ] # Special definitions for SWIG. swig_interface_parents = { # source file base, "base class" for generated COM support 'mapi': None, # not a class, but module 'PyIMailUser': 'IMAPIContainer', 'PyIABContainer': 'IMAPIContainer', 'PyIAddrBook': 'IMAPIProp', 'PyIAttach': 'IMAPIProp', 'PyIDistList': 'IMAPIProp', 'PyIMailUser': 'IMAPIContainer', 'PyIMAPIContainer': 'IMAPIProp', 'PyIMAPIFolder': 'IMAPIContainer', 'PyIMAPIProp': '', # '' == default base 'PyIMAPISession': '', 'PyIMAPITable': '', 'PyIMessage': 'IMAPIProp', 'PyIMsgServiceAdmin': '', 'PyIMsgStore': 'IMAPIProp', 'PyIProfAdmin': '', 'PyIProfSect': 'IMAPIProp', # ADSI 'adsi': None, # module 'PyIADsContainer': 'IDispatch', 'PyIADsUser': 'IDispatch', 'PyIDirectoryObject': '', } # A list of modules that can also be built for Windows CE. These generate # their .i to _win32.cpp or _wince.cpp. swig_wince_modules = "win32event win32file win32gui win32process".split() # .i files that are #included, and hence are not part of the build. Our .dsp # parser isn't smart enough to differentiate these. swig_include_files = "mapilib adsilib".split() # Helper to allow our script specifications to include wildcards. def expand_modules(module_dir): flist = FileList() flist.findall(module_dir) flist.include_pattern("*.py") return [os.path.splitext(name)[0] for name in flist.files] # NOTE: somewhat counter-intuitively, a result list a-la: # [('Lib/site-packages\\Pythonwin', ('Pythonwin/license.txt',)),] # will 'do the right thing' in terms of installing licence.txt into # 'Lib/site-packages/Pythonwin/licence.txt'. We exploit this to # get 'com/win32com/whatever' installed to 'win32com/whatever' def convert_data_files(files): base_dir = "Lib/site-packages" ret = [] for file in files: file = os.path.normpath(file) if file.find("*") >= 0: flist = FileList() flist.findall(os.path.dirname(file)) flist.include_pattern(os.path.basename(file)) # We never want CVS flist.exclude_pattern(re.compile(".*\\\\CVS\\\\"), is_regex=1) if not flist.files: raise RuntimeError, "No files match '%s'" % file files_use = flist.files else: if not os.path.isfile(file): raise RuntimeError, "No file '%s'" % file files_use = (file,) path_use = os.path.dirname(file) if path_use.startswith("com/") or path_use.startswith("com\\"): path_use = path_use[4:] path_use = os.path.join(base_dir, path_use) ret.append( (path_use, files_use)) return ret ################################################################ if len(sys.argv)==1: # distutils will print usage - print our docstring first. print __doc__ print "Standard usage information follows:" dist = setup(name="pywin32", version="version", description="Python for Window Extensions", long_description="", author="Mark Hammond (et al)", author_email = "mha...@us...", url="http://sourceforge.net/projects/pywin32/", license="PSA", cmdclass = { #'install_lib': my_install_lib, 'build_ext': my_build_ext, }, options = {"bdist_wininst": {"install_script": "pywin32_postinstall.py"}}, scripts = ["pywin32_postinstall.py"], ext_modules = win32_extensions + com_extensions + pythonwin_extensions, package_dir = {"win32com": "com/win32com", "win32comext": "com/win32comext", "Pythonwin": "Pythonwin"}, packages=['win32com', 'win32com.client', 'win32com.demos', 'win32com.makegw', 'win32com.server', 'win32com.servers', 'win32com.test', 'win32comext.axscript', 'win32comext.axscript.client', 'win32comext.axscript.server', 'win32comext.axdebug', 'win32comext.shell', 'win32comext.mapi', 'win32comext.internet', 'win32comext.axcontrol', 'Pythonwin.pywin', 'Pythonwin.pywin.debugger', 'Pythonwin.pywin.dialogs', 'Pythonwin.pywin.docking', 'Pythonwin.pywin.framework', 'Pythonwin.pywin.framework.editor', 'Pythonwin.pywin.framework.editor.color', 'Pythonwin.pywin.idle', 'Pythonwin.pywin.mfc', 'Pythonwin.pywin.scintilla', 'Pythonwin.pywin.tools', ], py_modules = expand_modules("win32\\lib"), data_files=convert_data_files([ 'pywin32.chm', 'pythonwin/pywin/*.cfg', 'pythonwin/license.txt', 'win32/license.txt', 'com/win32com/readme.htm', # win32com test utility files. 'com/win32com/test/*.txt', 'com/win32com/test/*.vbs', 'com/win32com/test/*.js', 'com/win32com/test/*.sct', 'com/win32com/test/*.xsl', # win32com docs 'com/win32com/HTML/*', 'com/win32com/HTML/image/*', # Active Scripting test and demos. 'com/win32comext/axscript/test/*.vbs', 'com/win32comext/axscript/test/*.pys', 'com/win32comext/axscript/demos/client/ie/*', 'com/win32comext/axscript/demos/client/wsh/*', 'com/win32comext/axscript/demos/client/asp/*', ]) + \ # And data files convert_data_files can't handle. [ ('Lib/site-packages\\win32com', ('com/License.txt',)), # pythoncom.py doesn't quite fit anywhere else. # Note we don't get an auto .pyc - but who cares? ('Lib/site-packages', ('com/pythoncom.py',)), ], ) # If we did any extension building, and report if we skipped any. if dist.command_obj.has_key('build_ext'): what_string = "built" if dist.command_obj.has_key('install'): # just to be purdy what_string += "/installed" # Print the list of extension modules we skipped building. excluded_extensions = dist.command_obj['build_ext'].excluded_extensions if excluded_extensions: print "*** NOTE: The following extensions were NOT %s:" % what_string for ext, why in excluded_extensions: print " %s: %s" % (ext.name, why) else: print "All extension modules %s OK" % (what_string,) # Custom script we run at the end of installing - this is the same script # run by bdist_wininst, but the standard 'install' command doesn't seem # to have such a concept. # This child process won't be able to install the system DLLs until our # process has terminated (as distutils imports win32api!), so we must use # some 'no wait' executor - spawn seems fine! We pass the PID of this # process so the child will wait for us. if not dist.dry_run and dist.command_obj.has_key('install'): # What executable to use? This one I guess. Maybe I could just import # as a module and execute? filename = os.path.join( os.path.dirname(sys.argv[0]), "pywin32_postinstall.py") if not os.path.isfile(filename): raise RuntimeError, "Can't find pywin32_postinstall.py" print "Executing post install script..." os.spawnl(os.P_NOWAIT, sys.executable, sys.executable, filename, "-quiet", "-wait", str(os.getpid()), "-install") --- setup_win32all_core.py DELETED --- |
From: <mha...@us...> - 2003-12-01 10:46:44
|
Update of /cvsroot/pywin32/pywin32 In directory sc8-pr-cvs1:/tmp/cvs-serv5225 Modified Files: setup_win32all_core.py Log Message: Add support for _d builds, and correct SWIG generation. Index: setup_win32all_core.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/setup_win32all_core.py,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** setup_win32all_core.py 29 Nov 2003 06:41:55 -0000 1.21 --- setup_win32all_core.py 1 Dec 2003 10:46:41 -0000 1.22 *************** *** 1,4 **** ! # distutils setup-script for win32all ! # # Thomas Heller, started in 2000 or so. # --- 1,29 ---- ! """distutils setup-script for win32all ! ! To build the win32all extensions, simply execute: ! python setup_win32all.py -q build ! ! These extensions require a number of libraries to build, some of which may ! require your to install special SDKs or toolkits. This script will attempt ! to build as many as it can, and at the end of the build, will report any ! extension modules that could not be built and why. Not being able to build ! the MAPI or ActiveScripting related projects is common. ! If you don't use these extensions, you can ignore these warnings; if you do ! use them, you must install the correct libraries. ! ! To install the win32all extensions, execute: ! python setup_win32all.py -q install ! ! This will install the built extensions into your site-packages directory, ! and create an appropriate .pth file, and should leave everything ready to use. ! There should be no need to modify the registry. ! ! To build or install debug (_d) versions of these extensions, pass the "--debug" ! flag to the build command - eg: ! python setup_win32all.py -q build --debug ! or to build and install a debug version: ! python setup_win32all.py -q build --debug install ! you must have built (or installed) a debug version of Python for this to work. ! """ # Thomas Heller, started in 2000 or so. # *************** *** 14,18 **** from distutils.dep_util import newer_group from distutils import log - from distutils import spawn from distutils import dir_util, file_util from distutils.sysconfig import get_python_lib --- 39,42 ---- *************** *** 154,166 **** common_dirs = self.compiler.library_dirs common_dirs += os.environ.get("LIB").split(os.pathsep) for lib in ext.libraries: if self.found_libraries.has_key(lib.lower()): ! continue ! for dir in common_dirs + ext.library_dirs: ! if os.path.isfile(os.path.join(dir, lib + ".lib")): ! self.found_libraries[lib.lower()] = True ! break else: ! return "No library '%s'" % lib def build_extensions(self): --- 178,196 ---- common_dirs = self.compiler.library_dirs common_dirs += os.environ.get("LIB").split(os.pathsep) + patched_libs = [] for lib in ext.libraries: if self.found_libraries.has_key(lib.lower()): ! found = self.found_libraries[lib.lower()] else: ! look_dirs = common_dirs + ext.library_dirs ! found = self.compiler.find_library_file(look_dirs, lib, self.debug) ! if not found: ! return "No library '%s'" % lib ! self.found_libraries[lib.lower()] = found ! patched_libs.append(os.path.splitext(os.path.basename(found))[0]) ! # We update the .libraries list with the resolved library name. ! # This is really only so "_d" works. ! ext.libraries = patched_libs ! return None # no reason - it can be built! def build_extensions(self): *************** *** 202,207 **** makefile = 'makefile_pythonwin' makeargs = ["QUIET=1"] ! if self.dry_run: ! makeargs.append("-n") # We build the DLL into our own temp directory, then copy it to the # real directory - this avoids the generated .lib/.exp --- 232,239 ---- makefile = 'makefile_pythonwin' makeargs = ["QUIET=1"] ! if self.debug: ! makeargs.append("DEBUG=1") ! if not self.verbose: ! makeargs.append("/C") # nmake: /C Suppress output messages # We build the DLL into our own temp directory, then copy it to the # real directory - this avoids the generated .lib/.exp *************** *** 215,226 **** try: cmd = ["nmake.exe", "/nologo", "/f", makefile] + makeargs ! # dry_run handled by 'make /n' ! spawn.spawn(cmd, verbose=self.verbose, dry_run=0) finally: os.chdir(cwd) # The DLL goes in the Pythonwin directory. file_util.copy_file( ! os.path.join(self.build_temp, "scintilla", "scintilla.dll"), os.path.join(self.build_lib, "Pythonwin"), verbose = self.verbose, dry_run = self.dry_run) --- 247,261 ---- try: cmd = ["nmake.exe", "/nologo", "/f", makefile] + makeargs ! self.spawn(cmd) finally: os.chdir(cwd) # The DLL goes in the Pythonwin directory. + if self.debug: + base_name = "scintilla_d.dll" + else: + base_name = "scintilla.dll" file_util.copy_file( ! os.path.join(self.build_temp, "scintilla", base_name), os.path.join(self.build_lib, "Pythonwin"), verbose = self.verbose, dry_run = self.dry_run) *************** *** 236,240 **** sources = list(sources) ! print "building exe %s" % ext.name fullname = self.get_ext_fullname(ext.name) --- 271,275 ---- sources = list(sources) ! log.info("building exe '%s'", ext.name) fullname = self.get_ext_fullname(ext.name) *************** *** 351,356 **** self.swig_cpp = True try: - self.build_temp = os.path.join(self.build_temp, ext.name) - build_ext.build_extension(self, ext) --- 386,389 ---- *************** *** 414,430 **** # source -- but there should be an option to put SWIG output in # the temp dir. target_ext = '.cpp' for source in sources: (base, ext) = os.path.splitext(source) if ext == ".i": # SWIG interface file ! # Seems the files SWIG creates are not compiled separately, ! # they are #included somewhere else. So we don't include ! # the generated wrapper in the new_sources list. swig_sources.append(source) ! # and win32all has it's own naming convention for the wrappers: ! if base.endswith("win32pipe") or base.endswith("win32security"): ! swig_targets[source] = base + 'module' + target_ext ! else: swig_targets[source] = base + 'module_win32' + target_ext else: new_sources.append(source) --- 447,467 ---- # source -- but there should be an option to put SWIG output in # the temp dir. + # XXX - further, the way the win32/wince SWIG modules #include the + # real .cpp file prevents us generating the .cpp files in the temp dir. target_ext = '.cpp' for source in sources: (base, ext) = os.path.splitext(source) if ext == ".i": # SWIG interface file ! if os.path.split(base)[1] in swig_include_files: ! continue swig_sources.append(source) ! # Patch up the filenames for SWIG modules that also build ! # under WinCE - see defn of swig_wince_modules for details ! if os.path.basename(base) in swig_interface_parents: ! swig_targets[source] = base + target_ext ! elif os.path.basename(base) in swig_wince_modules: swig_targets[source] = base + 'module_win32' + target_ext + else: + swig_targets[source] = base + 'module' + target_ext else: new_sources.append(source) *************** *** 434,445 **** swig = self.find_swig() - swig_cmd = [swig, "-python"] - if self.swig_cpp: - swig_cmd.append("-c++") for source in swig_sources: target = swig_targets[source] log.info("swigging %s to %s", source, target) ! self.spawn(swig_cmd + ["-o", target, source]) return new_sources --- 471,506 ---- swig = self.find_swig() for source in swig_sources: + swig_cmd = [swig, "-python", "-c++"] + swig_cmd.append("-dnone",) # we never use the .doc files. target = swig_targets[source] + try: + interface_parent = swig_interface_parents[ + os.path.basename(os.path.splitext(source)[0])] + except KeyError: + # "normal" swig file - no special win32 issues. + pass + else: + # Using win32 extensions to SWIG for generating COM classes. + if interface_parent is not None: + # generating a class, not a module. + swig_cmd.append("-pythoncom") + if interface_parent: + # A class deriving from other than the default + swig_cmd.extend( + ["-com_interface_parent", interface_parent]) + + swig_cmd.extend(["-o", + os.path.abspath(target), + os.path.abspath(source)]) log.info("swigging %s to %s", source, target) ! out_dir = os.path.dirname(source) ! cwd = os.getcwd() ! os.chdir(out_dir) ! try: ! self.spawn(swig_cmd) ! finally: ! os.chdir(cwd) return new_sources *************** *** 562,565 **** --- 623,662 ---- ] + # Special definitions for SWIG. + swig_interface_parents = { + # source file base, "base class" for generated COM support + 'mapi': None, # not a class, but module + 'PyIMailUser': 'IMAPIContainer', + 'PyIABContainer': 'IMAPIContainer', + 'PyIAddrBook': 'IMAPIProp', + 'PyIAttach': 'IMAPIProp', + 'PyIDistList': 'IMAPIProp', + 'PyIMailUser': 'IMAPIContainer', + 'PyIMAPIContainer': 'IMAPIProp', + 'PyIMAPIFolder': 'IMAPIContainer', + 'PyIMAPIProp': '', # '' == default base + 'PyIMAPISession': '', + 'PyIMAPITable': '', + 'PyIMessage': 'IMAPIProp', + 'PyIMsgServiceAdmin': '', + 'PyIMsgStore': 'IMAPIProp', + 'PyIProfAdmin': '', + 'PyIProfSect': 'IMAPIProp', + # ADSI + 'adsi': None, # module + 'PyIADsContainer': 'IDispatch', + 'PyIADsUser': 'IDispatch', + 'PyIDirectoryObject': '', + } + + # A list of modules that can also be built for Windows CE. These generate + # their .i to _win32.cpp or _wince.cpp. + swig_wince_modules = "win32event win32file win32gui win32process".split() + + # .i files that are #included, and hence are not part of the build. Our .dsp + # parser isn't smart enough to differentiate these. + swig_include_files = "mapilib adsilib".split() + + # Helper to allow our script specifications to include wildcards. def expand_modules(module_dir): flist = FileList() *************** *** 596,606 **** path_use = os.path.join(base_dir, path_use) ret.append( (path_use, files_use)) - #print "DataFiles:" - #for f in ret: - # print f return ret ################################################################ dist = setup(name="pywin32", --- 693,704 ---- path_use = os.path.join(base_dir, path_use) ret.append( (path_use, files_use)) return ret ################################################################ + if len(sys.argv)==1: + # distutils will print usage - print our docstring first. + print __doc__ + print "Standard usage information follows:" dist = setup(name="pywin32", *************** *** 616,620 **** }, options = {"bdist_wininst": {"install_script": "pywin32_postinstall.py"}}, ! scripts = ["pywin32_postinstall.py"], --- 714,718 ---- }, options = {"bdist_wininst": {"install_script": "pywin32_postinstall.py"}}, ! scripts = ["pywin32_postinstall.py"], |
From: <mha...@us...> - 2003-12-01 10:13:28
|
Update of /cvsroot/pywin32/pywin32 In directory sc8-pr-cvs1:/tmp/cvs-serv32034 Modified Files: pywin32_postinstall.py Log Message: Only install the .chm if it exists. Index: pywin32_postinstall.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/pywin32_postinstall.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** pywin32_postinstall.py 25 Nov 2003 13:24:37 -0000 1.2 --- pywin32_postinstall.py 1 Dec 2003 10:13:25 -0000 1.3 *************** *** 124,130 **** RegisterCOMObjects() # Register the .chm help file. ! SetPyKeyVal("Help\\Pythonwin Reference", ! None, ! os.path.join(lib_dir, "PyWin32.chm")) # Create the win32com\gen_py directory. make_dir = os.path.join(lib_dir, "win32com", "gen_py") --- 124,133 ---- RegisterCOMObjects() # Register the .chm help file. ! chm_file = os.path.join(lib_dir, "PyWin32.chm") ! if os.path.isfile(chm_file): ! SetPyKeyVal("Help\\Pythonwin Reference", None, chm_file) ! else: ! print "NOTE: PyWin32.chm can not be located, so has not " \ ! "been registered" # Create the win32com\gen_py directory. make_dir = os.path.join(lib_dir, "win32com", "gen_py") |
From: <mha...@us...> - 2003-12-01 08:23:05
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1:/tmp/cvs-serv11819 Modified Files: win32apimodule.cpp Log Message: GetProcAddress uses PyLong_FromVoidPtr() Index: win32apimodule.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32apimodule.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** win32apimodule.cpp 8 Nov 2003 12:28:58 -0000 1.32 --- win32apimodule.cpp 1 Dec 2003 08:23:02 -0000 1.33 *************** *** 1389,1393 **** return ReturnAPIError("GetProcAddress"); // @pyseeapi GetProcAddress ! return Py_BuildValue("i",(int)proc); } --- 1389,1393 ---- return ReturnAPIError("GetProcAddress"); // @pyseeapi GetProcAddress ! return PyLong_FromVoidPtr(proc); } |
From: <mha...@us...> - 2003-12-01 08:22:32
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1:/tmp/cvs-serv11683 Modified Files: win32clipboardmodule.cpp Log Message: Return raw binary data for all clipboard formats (other than those already with special handling). Add GetGlobalMemory so the data in a handle can be fetched manually. Index: win32clipboardmodule.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32clipboardmodule.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** win32clipboardmodule.cpp 29 Nov 2003 05:50:18 -0000 1.12 --- win32clipboardmodule.cpp 1 Dec 2003 08:22:28 -0000 1.13 *************** *** 331,335 **** } ! void * cData; DWORD size; switch (format) { --- 331,335 ---- } ! void * cData = NULL; DWORD size; switch (format) { *************** *** 365,376 **** } break; ! case CF_BITMAP: ! PyErr_SetString(PyExc_NotImplementedError, "GetClipboardData(CF_BITMAP) unimplemented"); ! return NULL; ! break; ! case CF_DIB: ! PyErr_SetString(PyExc_NotImplementedError, "GetClipboardData(CF_DIB) unimplemented"); ! return NULL; ! break; default: cData = GlobalLock(handle); --- 365,369 ---- } break; ! // All other formats simply return the data as a blob. default: cData = GlobalLock(handle); *************** *** 415,432 **** GlobalUnlock(handle); break; - case CF_ENHMETAFILE: - case CF_METAFILEPICT: - case CF_BITMAP: - case CF_DIB: - ret = PyString_FromStringAndSize((char *)cData, size); - free(cData); - break; default: ! ret = PyString_FromStringAndSize((char *)cData, size); GlobalUnlock(handle); break; } return ret; - // @comm An application can enumerate the available formats in advance by // using the EnumClipboardFormats function.<nl> --- 408,422 ---- GlobalUnlock(handle); break; default: ! assert(cData); ! if (!cData) { ! ret = Py_None; ! Py_INCREF(ret); ! } else ! ret = PyString_FromStringAndSize((char *)cData, size); GlobalUnlock(handle); break; } return ret; // @comm An application can enumerate the available formats in advance by // using the EnumClipboardFormats function.<nl> *************** *** 446,453 **** // @pyseeapi Standard Clipboard Formats ! // @rdesc If the function succeeds, the return value is either a Unicode object ! // (if format is CF_UNICODETEXT), otherwise a string object. Depending on ! // format (eg, CF_METAFILEPICT) the string may contain raw data bytes.<nl> ! // If the function fails, the standard win32api.error exception is raised. } --- 436,472 ---- // @pyseeapi Standard Clipboard Formats ! // @rdesc If the function fails, the standard win32api.error exception ! // is raised. If the function succeeds, the return value is as ! // described in the following table: ! // @flagh Format|Result type ! // @flag CF_HDROP|A tuple of Unicode filenames. ! // @flag CF_UNICODETEXT|A unicode object. ! // @flag CF_UNICODETEXT|A string object. ! // @flag CF_ENHMETAFILE|A string with binary data obtained from GetEnhMetaFileBits ! // @flag CF_METAFILEPICT|A string with binary data obtained from GetMetaFileBitsEx ! // @flag All other formats|A string with binary data obtained directly from the ! // global memory referenced by the handle. ! } ! ! //***************************************************************************** ! // ! // @pymethod string|win32clipboard|GetGlobalMemory|Returns the contents of the specified ! // global memory object. ! static PyObject * ! py_get_global_memory(PyObject* self, PyObject* args) ! { ! int iglobal; ! if (!PyArg_ParseTuple(args, "i", &iglobal)) ! return NULL; ! HGLOBAL hglobal = (HGLOBAL)iglobal; ! DWORD size = GlobalSize(hglobal); ! if (!size) ! return ReturnAPIError("GlobalSize"); ! void *p = GlobalLock(hglobal); ! if (!p) ! return ReturnAPIError("GlobalAlloc"); ! PyObject *ret = PyString_FromStringAndSize((char *)p, size); ! GlobalUnlock(hglobal); ! return ret; } *************** *** 1080,1083 **** --- 1099,1106 ---- // the clipboard viewer chain. {"GetClipboardViewer", py_get_clipboard_viewer, 1}, + + // @pymeth GetGlobalMemory|Returns the contents of the specified global + // memory object. + {"GetGlobalMemory", py_get_global_memory, 1}, // @pymeth GetOpenClipboardWindow|Retrieves the handle of the window that |
From: <mha...@us...> - 2003-11-29 07:03:11
|
Update of /cvsroot/pywin32/pywin32 In directory sc8-pr-cvs1:/tmp/cvs-serv27302 Modified Files: Python and Extensions.dsw Log Message: Remove wincerapi from the workspace. Index: Python and Extensions.dsw =================================================================== RCS file: /cvsroot/pywin32/pywin32/Python and Extensions.dsw,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Python and Extensions.dsw 10 Nov 2003 04:39:44 -0000 1.14 --- Python and Extensions.dsw 29 Nov 2003 07:03:08 -0000 1.15 *************** *** 250,256 **** End Project Dependency Begin Project Dependency - Project_Dep_Name wincerapi - End Project Dependency - Begin Project Dependency Project_Dep_Name win32clipboard End Project Dependency --- 250,253 ---- *************** *** 818,836 **** Project: "win32wnet"=.\win32\win32wnet.dsp - Package Owner=<4> - - Package=<5> - {{{ - }}} - - Package=<4> - {{{ - Begin Project Dependency - Project_Dep_Name PyWinTypes - End Project Dependency - }}} - - ############################################################################### - - Project: "wincerapi"=.\win32\wincerapi.dsp - Package Owner=<4> Package=<5> --- 815,818 ---- |
From: <mha...@us...> - 2003-11-29 06:56:18
|
Update of /cvsroot/pywin32/pywin32/Pythonwin/Scintilla In directory sc8-pr-cvs1:/tmp/cvs-serv26467 Modified Files: makefile_pythonwin Log Message: Allow the output directories to be specified on the command-line, which is what the distutils script does! Index: makefile_pythonwin =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/makefile_pythonwin,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** makefile_pythonwin 2 Aug 2002 12:53:10 -0000 1.3 --- makefile_pythonwin 29 Nov 2003 06:56:15 -0000 1.4 *************** *** 7,14 **** !IFDEF DEBUG DIR_O = ..\Build\Temp\Scintilla\Debug - SCINTILLA_DLL = ..\..\Build\Scintilla_d.dll !ELSE DIR_O = ..\Build\Temp\Scintilla\Release - SCINTILLA_DLL = ..\..\Build\Scintilla.dll !ENDIF --- 7,12 ---- *************** *** 18,23 **** --- 16,31 ---- # Relative to the subdirectory for the sub-makefile + !ifndef SUB_DIR_BIN SUB_DIR_BIN = ..\$(DIR_BIN) + !endif + !ifndef SUB_DIR_O SUB_DIR_O=..\$(DIR_O) + !endif + + !IFDEF DEBUG + SCINTILLA_DLL = $(SUB_DIR_BIN)\Scintilla_d.dll + !ELSE + SCINTILLA_DLL = $(SUB_DIR_BIN)\Scintilla.dll + !ENDIF all: ..\pywin\scintilla\scintillacon.py Scintilla |
From: <mha...@us...> - 2003-11-29 06:45:58
|
Update of /cvsroot/pywin32/pywin32/win32/Lib In directory sc8-pr-cvs1:/tmp/cvs-serv24852 Modified Files: win32serviceutil.py Log Message: Remove an extra '.exe' that appeared in an error message. Index: win32serviceutil.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/Lib/win32serviceutil.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** win32serviceutil.py 16 Oct 2003 05:30:55 -0000 1.11 --- win32serviceutil.py 29 Nov 2003 06:45:55 -0000 1.12 *************** *** 41,45 **** return win32api.SearchPath(None, exeName)[0] except win32api.error: ! msg = "%s is not correctly registered\nPlease locate and run %s.exe, and it will self-register\nThen run this service registration process again." % (exeName, exeName) raise error, msg --- 41,45 ---- return win32api.SearchPath(None, exeName)[0] except win32api.error: ! msg = "%s is not correctly registered\nPlease locate and run %s, and it will self-register\nThen run this service registration process again." % (exeName, exeName) raise error, msg |
From: <mha...@us...> - 2003-11-29 06:41:58
|
Update of /cvsroot/pywin32/pywin32 In directory sc8-pr-cvs1:/tmp/cvs-serv24298 Modified Files: setup_win32all_core.py Log Message: Build the scintilla DLL, and don't run post-install script for a dry-run. Index: setup_win32all_core.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/setup_win32all_core.py,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** setup_win32all_core.py 25 Nov 2003 13:24:36 -0000 1.20 --- setup_win32all_core.py 29 Nov 2003 06:41:55 -0000 1.21 *************** *** 4,9 **** # # Things known to be missing: ! # * Install of .exe/.dlls - most .exe files go next to python.exe ! # * "dbi" was built as .dll, as odbc depends on it. does it work? from distutils.core import setup, Extension, Command --- 4,11 ---- # # Things known to be missing: ! # * Newer win32all.exes installed Pythonwin.exe next to python.exe. This ! # leaves it in the pythonwin directory, but it seems to work fine. ! # It may not for a non-admin Python install, where Pythonxx.dll is ! # not in the system32 directory. from distutils.core import setup, Extension, Command *************** *** 12,15 **** --- 14,19 ---- from distutils.dep_util import newer_group from distutils import log + from distutils import spawn + from distutils import dir_util, file_util from distutils.sysconfig import get_python_lib from distutils.filelist import FileList *************** *** 175,180 **** self.excluded_extensions = [] # list of (ext, why) ! # Here we hack a "pywin32" directory into the mix. Distutils ! # doesn't seem to like the concept of multiple top-level directories. assert self.package is None for ext in self.extensions: --- 179,185 ---- self.excluded_extensions = [] # list of (ext, why) ! # Here we hack a "pywin32" directory (one of 'win32', 'win32com', ! # 'pythonwin' etc), as distutils doesn't seem to like the concept ! # of multiple top-level directories. assert self.package is None for ext in self.extensions: *************** *** 192,195 **** --- 197,229 ---- self.build_exefile(ext) + # Not sure how to make this completely generic, and there is no + # need at this stage. + path = 'pythonwin\\Scintilla' + makefile = 'makefile_pythonwin' + makeargs = ["QUIET=1"] + if self.dry_run: + makeargs.append("-n") + # We build the DLL into our own temp directory, then copy it to the + # real directory - this avoids the generated .lib/.exp + build_temp = os.path.abspath(os.path.join(self.build_temp, "scintilla")) + dir_util.mkpath(build_temp, verbose=self.verbose, dry_run=self.dry_run) + makeargs.append("SUB_DIR_O=%s" % build_temp) + makeargs.append("SUB_DIR_BIN=%s" % build_temp) + + cwd = os.getcwd() + os.chdir(path) + try: + cmd = ["nmake.exe", "/nologo", "/f", makefile] + makeargs + # dry_run handled by 'make /n' + spawn.spawn(cmd, verbose=self.verbose, dry_run=0) + finally: + os.chdir(cwd) + + # The DLL goes in the Pythonwin directory. + file_util.copy_file( + os.path.join(self.build_temp, "scintilla", "scintilla.dll"), + os.path.join(self.build_lib, "Pythonwin"), + verbose = self.verbose, dry_run = self.dry_run) + def build_exefile(self, ext): from types import ListType, TupleType *************** *** 676,680 **** # some 'no wait' executor - spawn seems fine! We pass the PID of this # process so the child will wait for us. ! if dist.command_obj.has_key('install'): # What executable to use? This one I guess. Maybe I could just import # as a module and execute? --- 710,714 ---- # some 'no wait' executor - spawn seems fine! We pass the PID of this # process so the child will wait for us. ! if not dist.dry_run and dist.command_obj.has_key('install'): # What executable to use? This one I guess. Maybe I could just import # as a module and execute? |
From: <mha...@us...> - 2003-11-29 06:38:08
|
Update of /cvsroot/pywin32/pywin32/Pythonwin/pywin/framework/editor/color In directory sc8-pr-cvs1:/tmp/cvs-serv23682 Modified Files: coloreditor.py Log Message: Remove lots of unused imports. Index: coloreditor.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/pywin/framework/editor/color/coloreditor.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** coloreditor.py 27 Sep 2002 05:15:53 -0000 1.10 --- coloreditor.py 29 Nov 2003 06:38:05 -0000 1.11 *************** *** 4,15 **** import win32con import win32api - import afxres - import regex - import regsub - import string import sys - import array - import struct - import traceback import pywin.scintilla.keycodes --- 4,8 ---- *************** *** 20,25 **** MSG_CHECK_EXTERNAL_FILE = win32con.WM_USER+1999 ## WARNING: Duplicated in document.py and editor.py - - from pywin.mfc import docview, window, dialog, afxres # Define a few common markers --- 13,16 ---- |
From: <mha...@us...> - 2003-11-29 06:37:43
|
Update of /cvsroot/pywin32/pywin32/Pythonwin/pywin/scintilla In directory sc8-pr-cvs1:/tmp/cvs-serv23586 Modified Files: IDLEenvironment.py Log Message: Don't mask ImportErrors loading the IDLE extensions, and report the details of the error in the message box. Index: IDLEenvironment.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/pywin/scintilla/IDLEenvironment.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** IDLEenvironment.py 2 Jul 2003 04:09:55 -0000 1.9 --- IDLEenvironment.py 29 Nov 2003 06:37:40 -0000 1.10 *************** *** 23,34 **** modname = "pywin.idle." + module __import__(modname) ! except ImportError: ! # See if I can import it directly (IDLE is probably on the path) ! modname = module ! try: ! __import__(modname) ! except ImportError: ! win32ui.MessageBox("The IDLE extension '%s' can not be located.\r\n\r\nPlease correct the installation and restart the application." % module) ! return None mod=sys.modules[modname] mod.TclError = TextError # A hack that can go soon! --- 23,32 ---- modname = "pywin.idle." + module __import__(modname) ! except ImportError, details: ! msg = "The IDLE extension '%s' can not be located.\r\n\r\n" \ ! "Please correct the installation and restart the" \ ! " application.\r\n\r\n%s" % (module, details) ! win32ui.MessageBox(msg) ! return None mod=sys.modules[modname] mod.TclError = TextError # A hack that can go soon! |
From: <mha...@us...> - 2003-11-29 06:09:54
|
Update of /cvsroot/pywin32/pywin32/win32/test In directory sc8-pr-cvs1:/tmp/cvs-serv19913 Modified Files: test_clipboard.py Log Message: Fold long line. Index: test_clipboard.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/test/test_clipboard.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test_clipboard.py 29 Nov 2003 05:50:57 -0000 1.2 --- test_clipboard.py 29 Nov 2003 06:09:51 -0000 1.3 *************** *** 16,21 **** EmptyClipboard() # This used to crash - now correctly raises type error. ! self.assertRaises(TypeError, ! SetClipboardData, 0, obj ) finally: CloseClipboard() --- 16,20 ---- EmptyClipboard() # This used to crash - now correctly raises type error. ! self.assertRaises(TypeError, SetClipboardData, 0, obj ) finally: CloseClipboard() |
From: <mha...@us...> - 2003-11-29 05:51:02
|
Update of /cvsroot/pywin32/pywin32/win32/test In directory sc8-pr-cvs1:/tmp/cvs-serv17365 Modified Files: test_clipboard.py Log Message: Test set and get of a bitmap handle on the clipboard. Index: test_clipboard.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/test/test_clipboard.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test_clipboard.py 2 Sep 2003 00:16:23 -0000 1.1 --- test_clipboard.py 29 Nov 2003 05:50:57 -0000 1.2 *************** *** 1,7 **** # General test module for win32api - please add some :) ! import unittest ! import win32clipboard class CrashingTestCase(unittest.TestCase): --- 1,8 ---- # General test module for win32api - please add some :) ! import sys, os import unittest ! from win32clipboard import * ! import win32gui, win32con class CrashingTestCase(unittest.TestCase): *************** *** 11,18 **** obj = crasher() ! win32clipboard.OpenClipboard() ! win32clipboard.EmptyClipboard() ! # This used to crash - now correctly raises type error. ! self.assertRaises(TypeError, win32clipboard.SetClipboardData, 0, obj ) if __name__ == '__main__': --- 12,53 ---- obj = crasher() ! OpenClipboard() ! try: ! EmptyClipboard() ! # This used to crash - now correctly raises type error. ! self.assertRaises(TypeError, ! SetClipboardData, 0, obj ) ! finally: ! CloseClipboard() ! ! class TestBitmap(unittest.TestCase): ! def setUp(self): ! self.bmp_handle = None ! try: ! this_file = __file__ ! except NameError: ! this_file = sys.argv[0] ! this_dir = os.path.dirname(__file__) ! self.bmp_name = os.path.join(os.path.abspath(this_dir), ! "..", "Demos", "images", "smiley.bmp") ! self.failUnless(os.path.isfile(self.bmp_name)) ! flags = win32con.LR_DEFAULTSIZE | win32con.LR_LOADFROMFILE ! self.bmp_handle = win32gui.LoadImage(0, self.bmp_name, ! win32con.IMAGE_BITMAP, ! 0, 0, flags) ! self.failUnless(self.bmp_handle, "Failed to get a bitmap handle") ! ! def tearDown(self): ! if self.bmp_handle: ! win32gui.DeleteObject(self.bmp_handle) ! ! def test_bitmap_roundtrip(self): ! OpenClipboard() ! try: ! SetClipboardData(win32con.CF_BITMAP, self.bmp_handle) ! got_handle = GetClipboardDataHandle(win32con.CF_BITMAP) ! self.failUnlessEqual(got_handle, self.bmp_handle) ! finally: ! CloseClipboard() if __name__ == '__main__': |
From: <mha...@us...> - 2003-11-29 05:50:21
|
Update of /cvsroot/pywin32/pywin32/win32/src In directory sc8-pr-cvs1:/tmp/cvs-serv17188 Modified Files: win32clipboardmodule.cpp Log Message: Prevent crash when using CF_DIB, and add new GetClipboardDataHandle() method to return the raw handle. Index: win32clipboardmodule.cpp =================================================================== RCS file: /cvsroot/pywin32/pywin32/win32/src/win32clipboardmodule.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** win32clipboardmodule.cpp 12 Jul 2003 13:07:22 -0000 1.11 --- win32clipboardmodule.cpp 29 Nov 2003 05:50:18 -0000 1.12 *************** *** 265,271 **** //***************************************************************************** // // @pymethod string/unicode|win32clipboard|GetClipboardData|The GetClipboardData function // retrieves data from the clipboard in a specified format. The clipboard ! // must have been opened previously. static PyObject * --- 265,300 ---- //***************************************************************************** // + // @pymethod int|win32clipboard|GetClipboardDataHandle|Retrieves data from the + // clipboard in a specified format, and returns an integer handle to the data. + // To get the data bytes, use the <om win32clipboard.GetClipboardData> function. + static PyObject * + py_get_clipboard_data_handle(PyObject* self, PyObject* args) + { + // @pyparm int|format|CF_TEXT|Specifies a clipboard format. For a description of + // the standard clipboard formats, see Standard Clipboard Formats. + int format = CF_TEXT; + if (!PyArg_ParseTuple(args, "|i:GetClipboardDataHandle:", &format)) + return NULL; + + if (!IsClipboardFormatAvailable(format)) + return PyErr_Format(PyExc_TypeError, + "The clipboard format %d is not available", format); + HANDLE handle; + Py_BEGIN_ALLOW_THREADS; + handle = GetClipboardData((UINT)format); + Py_END_ALLOW_THREADS; + if (!handle) + return ReturnAPIError("GetClipboardData"); + return PyLong_FromVoidPtr(handle); + } + + + //***************************************************************************** + // // @pymethod string/unicode|win32clipboard|GetClipboardData|The GetClipboardData function // retrieves data from the clipboard in a specified format. The clipboard ! // must have been opened previously. Note that not all data formats are supported, ! // and that the underlying handle can be retrieved with ! // <om win32clipboard.GetClipboardDataHandle> static PyObject * *************** *** 342,345 **** --- 371,375 ---- case CF_DIB: PyErr_SetString(PyExc_NotImplementedError, "GetClipboardData(CF_DIB) unimplemented"); + return NULL; break; default: *************** *** 1030,1033 **** --- 1060,1067 ---- // specified format. {"GetClipboardData", py_get_clipboard_data, 1}, + + // @pymeth GetClipboardDataHandle|Retrieves data from the clipboard in a + // specified format, returning the underlying integer handle. + {"GetClipboardDataHandle", py_get_clipboard_data_handle, 1}, // @pymeth GetClipboardFormatName|Retrieves from the clipboard the name |
From: <mha...@us...> - 2003-11-27 05:11:16
|
Update of /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/win32 In directory sc8-pr-cvs1:/tmp/cvs-serv16435 Removed Files: ExternalLexer.cxx Log Message: This file was moved in the scintilla tree. --- ExternalLexer.cxx DELETED --- |
From: <mha...@us...> - 2003-11-25 13:24:40
|
Update of /cvsroot/pywin32/pywin32 In directory sc8-pr-cvs1:/tmp/cvs-serv22652 Modified Files: setup_win32all_core.py pywin32_postinstall.py Log Message: Get most data files and .py files installed correctly. Post install file is called even for a standard 'install', and registers the help file, etc Only thing I know of that is left is the .exe installation (and I have no real idea how to approach this) Index: setup_win32all_core.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/setup_win32all_core.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** setup_win32all_core.py 12 Nov 2003 12:02:56 -0000 1.19 --- setup_win32all_core.py 25 Nov 2003 13:24:36 -0000 1.20 *************** *** 4,13 **** # # Things known to be missing: - # * Commented "data files" # * Install of .exe/.dlls - most .exe files go next to python.exe # * "dbi" was built as .dll, as odbc depends on it. does it work? - # * create win32com\gen_py directory post install. - # * Installing the 2 system DLLs to the system directory (just notice post- - # setup script does this - maybe do this on std "install" too? from distutils.core import setup, Extension, Command --- 4,9 ---- *************** *** 19,22 **** --- 15,19 ---- from distutils.filelist import FileList import os, string, sys + import re # Python 2.2 has no True/False *************** *** 135,151 **** class WinExt_system32(WinExt): def get_pywin32_dir(self): ! return "system32" ################################################################ - - class my_install_lib (install_lib): - # A special install_lib command, which will install into the windows - # system directory instead of Lib/site-packages - - # XXX Currently broken. Should only install pywintypes and pythoncom into sysdir - def finalize_options(self): - install_lib.finalize_options(self) - self.install_dir = os.getenv("windir") + '\\system32' - class my_build_ext(build_ext): --- 132,138 ---- class WinExt_system32(WinExt): def get_pywin32_dir(self): ! return "pywin32_system32" ################################################################ class my_build_ext(build_ext): *************** *** 358,367 **** def get_ext_filename(self, name): # The pywintypes and pythoncom extensions have special names ! if name == "system32.pywintypes": extra = self.debug and "_d.dll" or ".dll" ! return r"system32\pywintypes%d%d%s" % (sys.version_info[0], sys.version_info[1], extra) ! elif name == "system32.pythoncom": extra = self.debug and "_d.dll" or ".dll" ! return r"system32\pythoncom%d%d%s" % (sys.version_info[0], sys.version_info[1], extra) elif name.endswith("win32.perfmondata"): extra = self.debug and "_d.dll" or ".dll" --- 345,354 ---- def get_ext_filename(self, name): # The pywintypes and pythoncom extensions have special names ! if name == "pywin32_system32.pywintypes": extra = self.debug and "_d.dll" or ".dll" ! return r"pywin32_system32\pywintypes%d%d%s" % (sys.version_info[0], sys.version_info[1], extra) ! elif name == "pywin32_system32.pythoncom": extra = self.debug and "_d.dll" or ".dll" ! return r"pywin32_system32\pythoncom%d%d%s" % (sys.version_info[0], sys.version_info[1], extra) elif name.endswith("win32.perfmondata"): extra = self.debug and "_d.dll" or ".dll" *************** *** 541,570 **** ] ! # XXX - incomplete, but checking in to avoid conflicts with Thomas ;) # NOTE: somewhat counter-intuitively, a result list a-la: # [('Lib/site-packages\\Pythonwin', ('Pythonwin/license.txt',)),] # will 'do the right thing' in terms of installing licence.txt into ! # 'Lib/site-packages/Pythonwin/licence.txt'. I intent exploiting this to ! # get 'com/wincom/whatever' installed to 'win32com/whatever' def convert_data_files(files): ret = [] for file in files: if file.find("*") >= 0: ! continue ! flist = FileList(os.path.dirname(file)) ! if not flist.include_pattern(os.path.basename(file)): raise RuntimeError, "No files match '%s'" % file ! found = flist.files else: if not os.path.isfile(file): raise RuntimeError, "No file '%s'" % file ! path = os.path.join("Lib/site-packages", os.path.dirname(file)) ! ret.append( (path, (file,)) ) ! continue ! # xxx - incomplete, but semi-working, and going to bed :) ! # found = [file] ! ret.append( ("Lib/site-packages", found) ) ! ! print ret return ret --- 528,568 ---- ] ! def expand_modules(module_dir): ! flist = FileList() ! flist.findall(module_dir) ! flist.include_pattern("*.py") ! return [os.path.splitext(name)[0] for name in flist.files] ! # NOTE: somewhat counter-intuitively, a result list a-la: # [('Lib/site-packages\\Pythonwin', ('Pythonwin/license.txt',)),] # will 'do the right thing' in terms of installing licence.txt into ! # 'Lib/site-packages/Pythonwin/licence.txt'. We exploit this to ! # get 'com/win32com/whatever' installed to 'win32com/whatever' def convert_data_files(files): + base_dir = "Lib/site-packages" ret = [] for file in files: + file = os.path.normpath(file) if file.find("*") >= 0: ! flist = FileList() ! flist.findall(os.path.dirname(file)) ! flist.include_pattern(os.path.basename(file)) ! # We never want CVS ! flist.exclude_pattern(re.compile(".*\\\\CVS\\\\"), is_regex=1) ! if not flist.files: raise RuntimeError, "No files match '%s'" % file ! files_use = flist.files else: if not os.path.isfile(file): raise RuntimeError, "No file '%s'" % file ! files_use = (file,) ! path_use = os.path.dirname(file) ! if path_use.startswith("com/") or path_use.startswith("com\\"): ! path_use = path_use[4:] ! path_use = os.path.join(base_dir, path_use) ! ret.append( (path_use, files_use)) ! #print "DataFiles:" ! #for f in ret: ! # print f return ret *************** *** 589,614 **** ext_modules = win32_extensions + com_extensions + pythonwin_extensions, ! package_dir = {"win32": "win32", ! "win32com": "com/win32com", "win32comext": "com/win32comext", "Pythonwin": "Pythonwin"}, ! ! data_files=convert_data_files([ ! 'Pythonwin/pywin/*.cfg', ! 'pywin32.chm', ! 'Pythonwin/license.txt', ! 'win32/license.txt', ! # win32com readme (doesn't work for cvt_data_files) ! # win32com/license ! # win32com test - *.txt, *.py, *.vbs, *.js, *.sct, *.xsl ! # win32com HTML\* ! # win32com HTML\image\* ! # win32comext\axscript\test - *.py, *.vbs, *.pys ! # win32comext\axscript\demos\ie\*.* ! # win32comext\axscript\demos\wsh\*.* ! # win32comext\axscript\demos\asp\*.* ! ]), ! packages=['win32', ! 'win32com', 'win32com.client', 'win32com.demos', --- 587,594 ---- ext_modules = win32_extensions + com_extensions + pythonwin_extensions, ! package_dir = {"win32com": "com/win32com", "win32comext": "com/win32comext", "Pythonwin": "Pythonwin"}, ! packages=['win32com', 'win32com.client', 'win32com.demos', *************** *** 622,635 **** 'win32comext.axscript.server', - 'win32comext.axscript.demos', # XXX not a package - 'win32comext.axscript.demos.client', - 'win32comext.axscript.demos.client.asp', - 'win32comext.axscript.demos.client.ie', - 'win32comext.axscript.demos.client.wsh', - 'win32comext.axscript.test', # XXX not a package 'win32comext.axdebug', - 'win32comext.axscript', - 'win32comext.axscript.client', - 'win32comext.axscript.server', 'win32comext.shell', --- 602,606 ---- *************** *** 638,642 **** 'win32comext.axcontrol', - 'Pythonwin', 'Pythonwin.pywin', 'Pythonwin.pywin.debugger', --- 609,612 ---- *************** *** 651,656 **** 'Pythonwin.pywin.tools', ], ) ! # If we did any extension building... if dist.command_obj.has_key('build_ext'): what_string = "built" --- 621,659 ---- 'Pythonwin.pywin.tools', ], + + py_modules = expand_modules("win32\\lib"), + + data_files=convert_data_files([ + 'pywin32.chm', + 'pythonwin/pywin/*.cfg', + 'pythonwin/license.txt', + 'win32/license.txt', + 'com/win32com/readme.htm', + # win32com test utility files. + 'com/win32com/test/*.txt', + 'com/win32com/test/*.vbs', + 'com/win32com/test/*.js', + 'com/win32com/test/*.sct', + 'com/win32com/test/*.xsl', + # win32com docs + 'com/win32com/HTML/*', + 'com/win32com/HTML/image/*', + # Active Scripting test and demos. + 'com/win32comext/axscript/test/*.vbs', + 'com/win32comext/axscript/test/*.pys', + 'com/win32comext/axscript/demos/client/ie/*', + 'com/win32comext/axscript/demos/client/wsh/*', + 'com/win32comext/axscript/demos/client/asp/*', + ]) + \ + # And data files convert_data_files can't handle. + [ + ('Lib/site-packages\\win32com', ('com/License.txt',)), + # pythoncom.py doesn't quite fit anywhere else. + # Note we don't get an auto .pyc - but who cares? + ('Lib/site-packages', ('com/pythoncom.py',)), + ], ) ! ! # If we did any extension building, and report if we skipped any. if dist.command_obj.has_key('build_ext'): what_string = "built" *************** *** 665,666 **** --- 668,688 ---- else: print "All extension modules %s OK" % (what_string,) + + # Custom script we run at the end of installing - this is the same script + # run by bdist_wininst, but the standard 'install' command doesn't seem + # to have such a concept. + # This child process won't be able to install the system DLLs until our + # process has terminated (as distutils imports win32api!), so we must use + # some 'no wait' executor - spawn seems fine! We pass the PID of this + # process so the child will wait for us. + if dist.command_obj.has_key('install'): + # What executable to use? This one I guess. Maybe I could just import + # as a module and execute? + filename = os.path.join( + os.path.dirname(sys.argv[0]), "pywin32_postinstall.py") + if not os.path.isfile(filename): + raise RuntimeError, "Can't find pywin32_postinstall.py" + print "Executing post install script..." + os.spawnl(os.P_NOWAIT, sys.executable, + sys.executable, filename, + "-quiet", "-wait", str(os.getpid()), "-install") Index: pywin32_postinstall.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/pywin32_postinstall.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pywin32_postinstall.py 10 Nov 2003 20:47:18 -0000 1.1 --- pywin32_postinstall.py 25 Nov 2003 13:24:37 -0000 1.2 *************** *** 4,17 **** # and creates a pth file import os, sys, glob, shutil ! if sys.argv[1] == "-install": import distutils.sysconfig lib_dir = distutils.sysconfig.get_python_lib(plat_specific=1) fname = os.path.join(sys.prefix, "pywin32.pth") ! print "Creating PTH FILE %s" % fname pthfile = open(fname, "w") # Register the file with the uninstaller file_created(fname) ! for name in "win32 win32com Pythonwin".split(): # Create entries for the PTH file, and at the same time # add the directory to sys.path so we can load win32api below. --- 4,94 ---- # and creates a pth file import os, sys, glob, shutil + import _winreg ! com_modules = [ ! # module_name, class_names ! ("win32com.servers.interp", "Interpreter"), ! ("win32com.servers.dictionary", "DictionaryPolicy"), ! ] ! ! # Is this a 'silent' install - ie, avoid all dialogs. ! # Different than 'verbose' ! silent = 0 ! ! # Verbosity of output messages. ! verbose = 1 ! ! def file_created(file): ! pass ! ! def AbortRetryIgnore(desc, func, *args): ! import win32api, win32con ! while 1: ! try: ! return func(*args) ! except: ! if silent: ! # Running silent mode - just re-raise the error. ! raise ! exc_type, exc_val, tb = sys.exc_info() ! tb = None ! full_desc = "Error %s\n\n" \ ! "If you have any Python applications running, " \ ! "please close them now\nand select 'Retry'\n\n%s" \ ! % (desc, exc_val) ! rc = win32api.MessageBox(0, ! full_desc, ! "Installation Error", ! win32con.MB_ABORTRETRYIGNORE) ! if rc == win32con.IDABORT: ! raise ! elif rc == win32con.IDIGNORE: ! return None ! # else retry - around we go again. ! ! def SetPyKeyVal(key_name, value_name, value): ! ver_string = "%d.%d" % (sys.version_info[0], sys.version_info[1]) ! root_key_name = "Software\\Python\\PythonCore\\" + ver_string ! try: ! root_key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, root_key_name) ! except OSError: ! root_key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER_MACHINE, ! root_key_name) ! try: ! my_key = _winreg.CreateKey(root_key, key_name) ! try: ! _winreg.SetValueEx(my_key, value_name, 0, _winreg.REG_SZ, value) ! finally: ! my_key.Close() ! finally: ! root_key.Close() ! if verbose: ! print "-> %s\\%s[%s]=%r" % (root_key_name, key_name, value_name, value) ! ! def RegisterCOMObjects(register = 1): ! import win32com.server.register ! if register: ! func = win32com.server.register.RegisterClasses ! else: ! func = win32com.server.register.UnregisterClasses ! flags = {} ! if not verbose: ! flags['quiet']=1 ! for module, klass_name in com_modules: ! __import__(module) ! mod = sys.modules[module] ! klass = getattr(mod, klass_name) ! func(klass, **flags) ! ! def install(): import distutils.sysconfig lib_dir = distutils.sysconfig.get_python_lib(plat_specific=1) fname = os.path.join(sys.prefix, "pywin32.pth") ! if verbose: ! print "Creating .PTH file %s" % fname pthfile = open(fname, "w") # Register the file with the uninstaller file_created(fname) ! for name in "win32 win32\\lib Pythonwin".split(): # Create entries for the PTH file, and at the same time # add the directory to sys.path so we can load win32api below. *************** *** 20,37 **** sys.path.append(path) # To be able to import win32api, PyWinTypesxx.dll must be on the PATH ! # We must be carefull to use the one we just installed, not one already # in the system directory, otherwise we will not be able to copy the one # just installed into the system dir. ! os.environ["PATH"] = "%s;%s" % (os.path.join(lib_dir, "system32"), os.environ["PATH"]) import win32api # and now we can get the system directory: sysdir = win32api.GetSystemDirectory() # and copy some files over there ! for fname in glob.glob(os.path.join(lib_dir, "system32\\*.*")): base = os.path.basename(fname) dst = os.path.join(sysdir, base) ! print "Copy %s to %s" % (base, sysdir) ! shutil.copyfile(fname, dst) # Register the files with the uninstaller file_created(dst) ! --- 97,181 ---- sys.path.append(path) # To be able to import win32api, PyWinTypesxx.dll must be on the PATH ! # We must be careful to use the one we just installed, not one already # in the system directory, otherwise we will not be able to copy the one # just installed into the system dir. ! os.environ["PATH"] = "%s;%s" % (os.path.join(lib_dir, "pywin32_system32"), os.environ["PATH"]) ! # importing pywintypes explicitly before win32api means our one in sys.path ! # is found, rather than whatever Windows implicitly finds as a side-effect ! # of importing win32api. ! import pywintypes import win32api # and now we can get the system directory: sysdir = win32api.GetSystemDirectory() # and copy some files over there ! files = glob.glob(os.path.join(lib_dir, "pywin32_system32\\*.*")) ! if not files: ! raise RuntimeError, "No system files to copy!!" ! for fname in files: base = os.path.basename(fname) dst = os.path.join(sysdir, base) ! if verbose: ! print "Copy %s to %s" % (base, sysdir) ! AbortRetryIgnore("installing %s" % base, ! shutil.copyfile, fname, dst) # Register the files with the uninstaller file_created(dst) ! # Register our demo COM objects. ! RegisterCOMObjects() ! # Register the .chm help file. ! SetPyKeyVal("Help\\Pythonwin Reference", ! None, ! os.path.join(lib_dir, "PyWin32.chm")) ! # Create the win32com\gen_py directory. ! make_dir = os.path.join(lib_dir, "win32com", "gen_py") ! if not os.path.isdir(make_dir): ! if verbose: ! print "Creating directory", make_dir ! os.mkdir(make_dir) ! ! print "The pywin32 extensions were successfully installed." ! ! def usage(): ! msg = \ ! """%s: A post-install script for the pywin32 extensions. ! ! This should be run automatically after installation, but if it fails you ! can run it again with a '-install' parameter, to ensure the environment ! is setup correctly. ! ! Additional Options: ! -wait pid : Wait for the specified process to terminate before starting. ! -silent : Don't display the "Abort/Retry/Ignore" dialog for files in use. ! -quiet : Don't display progress messages. ! """ ! print msg.strip() % os.path.basename(sys.argv[0]) ! ! if __name__=='__main__': ! if len(sys.argv)==1: ! usage() ! sys.exit(1) ! ! arg_index = 1 ! while arg_index < len(sys.argv): ! arg = sys.argv[arg_index] ! # Hack for installing while we are in use. Just a simple wait so the ! # parent process can terminate. ! if arg == "-wait": ! arg_index += 1 ! pid = int(sys.argv[arg_index]) ! try: ! os.waitpid(pid, 0) ! except os.error: ! # child already dead ! pass ! elif arg == "-install": ! install() ! elif arg == "-silent": ! silent = 1 ! elif arg == "-quiet": ! verbose = 0 ! else: ! print "Unknown option:", arg ! usage() ! sys.exit(0) ! arg_index += 1 |
From: Mark H. <mha...@sk...> - 2003-11-25 11:15:17
|
I checked in a new version of scintilla, but am rejecting the checkin message due to the size. Please update the pythonwin directory tree. Mark. |
Update of /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/win32 In directory sc8-pr-cvs1:/tmp/cvs-serv12826/win32 Modified Files: PlatWin.cxx ScintRes.rc ScintillaWin.cxx scintilla.mak scintilla_vc6.mak Removed Files: ExternalLexer.h Log Message: New scintilla version. Index: PlatWin.cxx =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/win32/PlatWin.cxx,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** PlatWin.cxx 2 Aug 2002 12:53:14 -0000 1.11 --- PlatWin.cxx 25 Nov 2003 10:45:21 -0000 1.12 *************** *** 3,7 **** ** Implementation of platform facilities on Windows. **/ ! // Copyright 1998-2002 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. --- 3,7 ---- ** Implementation of platform facilities on Windows. **/ ! // Copyright 1998-2003 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. [...969 lines suppressed...] + // These are utility functions not really tied to a platform *************** *** 1044,1052 **** --- 1441,1454 ---- void Platform_Initialise(void *hInstance) { + OSVERSIONINFO osv = {sizeof(OSVERSIONINFO),0,0,0,0,""}; + ::GetVersionEx(&osv); + onNT = osv.dwPlatformId == VER_PLATFORM_WIN32_NT; ::InitializeCriticalSection(&crPlatformLock); hinstPlatformRes = reinterpret_cast<HINSTANCE>(hInstance); + ListBoxX_Register(); } void Platform_Finalise() { + ListBoxX_Unregister(); ::DeleteCriticalSection(&crPlatformLock); } Index: ScintRes.rc =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/win32/ScintRes.rc,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ScintRes.rc 2 Aug 2002 12:53:15 -0000 1.10 --- ScintRes.rc 25 Nov 2003 10:45:21 -0000 1.11 *************** *** 1,4 **** // Resource file for Scintilla ! // Copyright 1998-2002 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. --- 1,4 ---- // Resource file for Scintilla ! // Copyright 1998-2003 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. *************** *** 10,15 **** VS_VERSION_INFO VERSIONINFO ! FILEVERSION 1, 4, 7, 0 ! PRODUCTVERSION 1, 4, 7, 0 FILEFLAGSMASK 0x3fL FILEFLAGS 0 --- 10,15 ---- VS_VERSION_INFO VERSIONINFO ! FILEVERSION 1, 5, 6, 0 ! PRODUCTVERSION 1, 5, 6, 0 FILEFLAGSMASK 0x3fL FILEFLAGS 0 *************** *** 28,37 **** VALUE "CompanyName", "Neil Hodgson ne...@sc...\0" VALUE "FileDescription", "Scintilla.DLL - a Source Editing Component\0" ! VALUE "FileVersion", "1.47\0" VALUE "InternalName", "Scintilla\0" ! VALUE "LegalCopyright", "Copyright 1998-2002 by Neil Hodgson\0" VALUE "OriginalFilename", "Scintilla.DLL\0" VALUE "ProductName", "Scintilla\0" ! VALUE "ProductVersion", "1.47\0" END END --- 28,37 ---- VALUE "CompanyName", "Neil Hodgson ne...@sc...\0" VALUE "FileDescription", "Scintilla.DLL - a Source Editing Component\0" ! VALUE "FileVersion", "1.56\0" VALUE "InternalName", "Scintilla\0" ! VALUE "LegalCopyright", "Copyright 1998-2003 by Neil Hodgson\0" VALUE "OriginalFilename", "Scintilla.DLL\0" VALUE "ProductName", "Scintilla\0" ! VALUE "ProductVersion", "1.56\0" END END Index: ScintillaWin.cxx =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/win32/ScintillaWin.cxx,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** ScintillaWin.cxx 2 Aug 2002 12:53:15 -0000 1.13 --- ScintillaWin.cxx 25 Nov 2003 10:45:21 -0000 1.14 *************** *** 3,7 **** ** Windows specific subclass of ScintillaBase. **/ ! // Copyright 1998-2002 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. --- 3,7 ---- ** Windows specific subclass of ScintillaBase. **/ ! // Copyright 1998-2003 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. *************** *** 35,38 **** --- 35,39 ---- #include "KeyMap.h" #include "Indicator.h" + #include "XPM.h" #include "LineMarker.h" #include "Style.h" *************** *** 52,70 **** #endif ! // These undefinitions are required to work around differences between different versions ! // of the mingw headers, some of which define these twice, in both winuser.h and imm.h. ! #ifdef __MINGW_H ! #undef WM_IME_STARTCOMPOSITION ! #undef WM_IME_ENDCOMPOSITION ! #undef WM_IME_COMPOSITION ! #undef WM_IME_KEYLAST ! #undef WM_IME_SETCONTEXT ! #undef WM_IME_NOTIFY ! #undef WM_IME_CONTROL ! #undef WM_IME_COMPOSITIONFULL ! #undef WM_IME_SELECT ! #undef WM_IME_CHAR ! #undef WM_IME_KEYDOWN ! #undef WM_IME_KEYUP #endif --- 53,62 ---- #endif ! #ifndef WM_UNICHAR ! #define WM_UNICHAR 0x0109 ! #endif ! ! #ifndef UNICODE_NOCHAR ! #define UNICODE_NOCHAR 0xFFFF #endif *************** *** 85,88 **** --- 77,87 ---- #endif + #define SC_WIN_IDLE 5001 + + // Functions imported from PlatWin + extern bool IsNT(); + extern void Platform_Initialise(void *hInstance); + extern void Platform_Finalise(); + /** TOTAL_CONTROL ifdef surrounds code that will only work when ScintillaWin * is derived from ScintillaBase (all features) rather than directly from Editor *************** *** 141,145 **** class ScintillaWin : public ScintillaBase { ! bool lastKeyDownConsumed; --- 140,144 ---- class ScintillaWin : public ScintillaBase { ! bool lastKeyDownConsumed; *************** *** 175,182 **** --- 174,184 ---- HWND hWnd, UINT iMessage, WPARAM wParam, sptr_t lParam); + enum { invalidTimerID, standardTimerID, idleTimerID }; + virtual void StartDrag(); sptr_t WndPaint(uptr_t wParam); sptr_t HandleComposition(uptr_t wParam, sptr_t lParam); virtual sptr_t DefWndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam); + virtual bool SetIdle(bool on); virtual void SetTicking(bool on); virtual void SetMouseCapture(bool on); *************** *** 205,209 **** void GetIntelliMouseParameters(); ! void CopySelTextToClipboard(); void ScrollMessage(WPARAM wParam); void HorizontalScrollMessage(WPARAM wParam); --- 207,211 ---- void GetIntelliMouseParameters(); ! virtual void CopyToClipboard(const SelectionText &selectedText); void ScrollMessage(WPARAM wParam); void HorizontalScrollMessage(WPARAM wParam); *************** *** 286,289 **** --- 288,292 ---- ScintillaBase::Finalise(); SetTicking(false); + SetIdle(false); ::RevokeDragDrop(MainHWND()); ::OleUninitialize(); *************** *** 335,338 **** --- 338,349 ---- } + #ifndef VK_OEM_2 + static const VK_OEM_2=0xbf; + static const VK_OEM_3=0xc0; + static const VK_OEM_4=0xdb; + static const VK_OEM_5=0xdc; + static const VK_OEM_6=0xdd; + #endif + /** Map the key codes to their equivalent SCK_ form. */ static int KeyTranslate(int keyIn) { *************** *** 356,359 **** --- 367,375 ---- case VK_SUBTRACT: return SCK_SUBTRACT; case VK_DIVIDE: return SCK_DIVIDE; + case VK_OEM_2: return '/'; + case VK_OEM_3: return '`'; + case VK_OEM_4: return '['; + case VK_OEM_5: return '\\'; + case VK_OEM_6: return ']'; default: return keyIn; } *************** *** 377,381 **** ::BeginPaint(MainHWND(), pps); } ! AutoSurface surfaceWindow(pps->hdc, IsUnicodeMode()); if (surfaceWindow) { rcPaint = PRectangle(pps->rcPaint.left, pps->rcPaint.top, pps->rcPaint.right, pps->rcPaint.bottom); --- 393,397 ---- ::BeginPaint(MainHWND(), pps); } ! AutoSurface surfaceWindow(pps->hdc, this); if (surfaceWindow) { rcPaint = PRectangle(pps->rcPaint.left, pps->rcPaint.top, pps->rcPaint.right, pps->rcPaint.bottom); *************** *** 405,414 **** } - static BOOL IsNT() { - OSVERSIONINFO osv = {sizeof(OSVERSIONINFO),0,0,0,0,""}; - ::GetVersionEx(&osv); - return osv.dwPlatformId == VER_PLATFORM_WIN32_NT; - } - sptr_t ScintillaWin::HandleComposition(uptr_t wParam, sptr_t lParam) { #ifdef __DMC__ --- 421,424 ---- *************** *** 482,485 **** --- 492,496 ---- case WM_CUT: return SCI_CUT; case WM_GETTEXT: return SCI_GETTEXT; + case WM_SETTEXT: return SCI_SETTEXT; case WM_GETTEXTLENGTH: return SCI_GETTEXTLENGTH; case WM_PASTE: return SCI_PASTE; *************** *** 573,577 **** case WM_TIMER: ! Tick(); break; --- 584,618 ---- case WM_TIMER: ! if (wParam == standardTimerID && timer.ticking) { ! Tick(); ! } else if (wParam == idleTimerID && idler.state) { ! SendMessage(MainHWND(), SC_WIN_IDLE, 0, 1); ! } else { ! return 1; ! } ! break; ! ! case SC_WIN_IDLE: ! // wParam=dwTickCountInitial, or 0 to initialize. lParam=bSkipUserInputTest ! if (idler.state) { ! if (lParam || (WAIT_TIMEOUT==MsgWaitForMultipleObjects(0,0,0,0, QS_INPUT|QS_HOTKEY))) { ! if (Idle()) { ! // User input was given priority above, but all events do get a turn. Other ! // messages, notifications, etc. will get interleaved with the idle messages. ! ! // However, some things like WM_PAINT are a lower priority, and will not fire ! // when there's a message posted. So, several times a second, we stop and let ! // the low priority events have a turn (after which the timer will fire again). ! ! DWORD dwCurrent = GetTickCount(); ! DWORD dwStart = wParam ? wParam : dwCurrent; ! ! if (dwCurrent >= dwStart && dwCurrent > 200 && dwCurrent - 200 < dwStart) ! PostMessage(MainHWND(), SC_WIN_IDLE, dwStart, 0); ! } else { ! SetIdle(false); ! } ! } ! } break; *************** *** 585,590 **** // Platform::IsKeyDown(VK_MENU)); ButtonDown(Point::FromLong(lParam), ::GetMessageTime(), ! (wParam & MK_SHIFT) != 0, ! (wParam & MK_CONTROL) != 0, Platform::IsKeyDown(VK_MENU)); ::SetFocus(MainHWND()); --- 626,631 ---- // Platform::IsKeyDown(VK_MENU)); ButtonDown(Point::FromLong(lParam), ::GetMessageTime(), ! (wParam & MK_SHIFT) != 0, ! (wParam & MK_CONTROL) != 0, Platform::IsKeyDown(VK_MENU)); ::SetFocus(MainHWND()); *************** *** 596,601 **** case WM_LBUTTONUP: ! ButtonUp(Point::FromLong(lParam), ! ::GetMessageTime(), (wParam & MK_CONTROL) != 0); break; --- 637,642 ---- case WM_LBUTTONUP: ! ButtonUp(Point::FromLong(lParam), ! ::GetMessageTime(), (wParam & MK_CONTROL) != 0); break; *************** *** 614,617 **** --- 655,660 ---- } else if (PointInSelection(Point(pt.x, pt.y))) { DisplayCursor(Window::cursorArrow); + } else if (PointIsHotspot(Point(pt.x, pt.y))) { + DisplayCursor(Window::cursorHand); } else { DisplayCursor(Window::cursorText); *************** *** 626,629 **** --- 669,678 ---- if (!iscntrl(wParam&0xff) || !lastKeyDownConsumed) { if (IsUnicodeMode()) { + // For a wide character version of the window: + //char utfval[4]; + //wchar_t wcs[2] = {wParam, 0}; + //unsigned int len = UTF8Length(wcs, 1); + //UTF8FromUCS2(wcs, 1, utfval, len); + //AddCharUTF(utfval, len); AddCharBytes(static_cast<char>(wParam & 0xff)); } else { *************** *** 633,636 **** --- 682,703 ---- return 1; + case WM_UNICHAR: + if (wParam == UNICODE_NOCHAR) { + return 1; + } else if (lastKeyDownConsumed) { + return 1; + } else { + if (IsUnicodeMode()) { + char utfval[4]; + wchar_t wcs[2] = {wParam, 0}; + unsigned int len = UTF8Length(wcs, 1); + UTF8FromUCS2(wcs, 1, utfval, len); + AddCharUTF(utfval, len); + return 1; + } else { + return 0; + } + } + case WM_SYSKEYDOWN: case WM_KEYDOWN: { *************** *** 665,670 **** return DLGC_HASSETSEL | DLGC_WANTALLKEYS; ! case WM_KILLFOCUS: ! SetFocusState(false); //RealizeWindowPalette(true); break; --- 732,744 ---- return DLGC_HASSETSEL | DLGC_WANTALLKEYS; ! case WM_KILLFOCUS: { ! HWND wOther = reinterpret_cast<HWND>(wParam); ! HWND wThis = reinterpret_cast<HWND>(wMain.GetID()); ! HWND wCT = reinterpret_cast<HWND>(ct.wCallTip.GetID()); ! if (!wParam || ! !(::IsChild(wThis,wOther) || (wOther == wCT))) { ! SetFocusState(false); ! } ! } //RealizeWindowPalette(true); break; *************** *** 704,708 **** case WM_IME_CHAR: { ! AddCharBytes(HIBYTE(wParam), LOBYTE(wParam)); return 0; } --- 778,785 ---- case WM_IME_CHAR: { ! if (HIBYTE(wParam) == '\0') ! AddChar(LOBYTE(wParam)); ! else ! AddCharBytes(HIBYTE(wParam), LOBYTE(wParam)); return 0; } *************** *** 741,744 **** --- 818,822 ---- // These are not handled in Scintilla and its faster to dispatch them here. // Also moves time out to here so profile doesn't count lots of empty message calls. + case WM_MOVE: case WM_MOUSEACTIVATE: *************** *** 826,829 **** --- 904,913 ---- break; + #ifdef SCI_LEXER + case SCI_LOADLEXERLIBRARY: + LexerManager::GetInstance()->Load(reinterpret_cast<const char*>(lParam)); + break; + #endif + default: return ScintillaBase::WndProc(iMessage, wParam, lParam); *************** *** 840,844 **** timer.ticking = on; if (timer.ticking) { ! timer.tickerID = reinterpret_cast<TickerID>(::SetTimer(MainHWND(), 1, timer.tickSize, NULL)); } else { ::KillTimer(MainHWND(), reinterpret_cast<uptr_t>(timer.tickerID)); --- 924,929 ---- timer.ticking = on; if (timer.ticking) { ! timer.tickerID = ::SetTimer(MainHWND(), standardTimerID, timer.tickSize, NULL) ! ? reinterpret_cast<TickerID>(standardTimerID) : 0; } else { ::KillTimer(MainHWND(), reinterpret_cast<uptr_t>(timer.tickerID)); *************** *** 849,852 **** --- 934,954 ---- } + bool ScintillaWin::SetIdle(bool on) { + // On Win32 the Idler is implemented as a Timer on the Scintilla window. This + // takes advantage of the fact that WM_TIMER messages are very low priority, + // and are only posted when the message queue is empty, i.e. during idle time. + if (idler.state != on) { + if (on) { + idler.idlerID = ::SetTimer(MainHWND(), idleTimerID, 10, NULL) + ? reinterpret_cast<IdlerID>(idleTimerID) : 0; + } else { + ::KillTimer(MainHWND(), reinterpret_cast<uptr_t>(idler.idlerID)); + idler.idlerID = 0; + } + idler.state = idler.idlerID != 0; + } + return idler.state; + } + void ScintillaWin::SetMouseCapture(bool on) { if (mouseDownCaptures) { *************** *** 901,906 **** sci.fMask = SIF_PAGE | SIF_RANGE; ::GetScrollInfo(MainHWND(), SB_VERT, &sci); ! if ((sci.nMin != 0) || ! (sci.nMax != nMax) || (sci.nPage != static_cast<unsigned int>(nPage)) || (sci.nPos != 0)) { --- 1003,1011 ---- sci.fMask = SIF_PAGE | SIF_RANGE; ::GetScrollInfo(MainHWND(), SB_VERT, &sci); ! int vertEndPreferred = nMax; ! if (!verticalScrollBarVisible) ! vertEndPreferred = 0; ! if ((sci.nMin != 0) || ! (sci.nMax != vertEndPreferred) || (sci.nPage != static_cast<unsigned int>(nPage)) || (sci.nPos != 0)) { *************** *** 909,913 **** sci.fMask = SIF_PAGE | SIF_RANGE; sci.nMin = 0; ! sci.nMax = nMax; sci.nPage = nPage; sci.nPos = 0; --- 1014,1018 ---- sci.fMask = SIF_PAGE | SIF_RANGE; sci.nMin = 0; ! sci.nMax = vertEndPreferred; sci.nPage = nPage; sci.nPos = 0; *************** *** 926,930 **** sci.fMask = SIF_PAGE | SIF_RANGE; ::GetScrollInfo(MainHWND(), SB_HORZ, &sci); ! if ((sci.nMin != 0) || (sci.nMax != horizEndPreferred) || (sci.nPage != pageWidth) || --- 1031,1035 ---- sci.fMask = SIF_PAGE | SIF_RANGE; ::GetScrollInfo(MainHWND(), SB_HORZ, &sci); ! if ((sci.nMin != 0) || (sci.nMax != horizEndPreferred) || (sci.nPage != pageWidth) || *************** *** 981,991 **** //Platform::DebugPrintf("Copy\n"); if (currentPos != anchor) { ! ::OpenClipboard(MainHWND()); ! ::EmptyClipboard(); ! CopySelTextToClipboard(); ! if (selType == selRectangle) { ! ::SetClipboardData(cfColumnSelect, 0); ! } ! ::CloseClipboard(); } } --- 1086,1092 ---- //Platform::DebugPrintf("Copy\n"); if (currentPos != anchor) { ! SelectionText selectedText; ! CopySelectionRange(&selectedText); ! CopyToClipboard(selectedText); } } *************** *** 1061,1070 **** void ScintillaWin::CreateCallTipWindow(PRectangle) { #ifdef TOTAL_CONTROL ! ct.wCallTip = ::CreateWindow(callClassName, "ACallTip", ! WS_VISIBLE | WS_CHILD, 100, 100, 150, 20, ! MainHWND(), reinterpret_cast<HMENU>(idCallTip), ! GetWindowInstance(MainHWND()), ! &ct); ! ct.wDraw = ct.wCallTip; #endif } --- 1162,1173 ---- void ScintillaWin::CreateCallTipWindow(PRectangle) { #ifdef TOTAL_CONTROL ! if (!ct.wCallTip.Created()) { ! ct.wCallTip = ::CreateWindow(callClassName, "ACallTip", ! WS_POPUP, 100, 100, 150, 20, ! MainHWND(), 0, ! GetWindowInstance(MainHWND()), ! this); ! ct.wDraw = ct.wCallTip; ! } #endif } *************** *** 1174,1184 **** static void *vtFormatEnumerator[] = { ! FormatEnumerator_QueryInterface, ! FormatEnumerator_AddRef, ! FormatEnumerator_Release, ! FormatEnumerator_Next, ! FormatEnumerator_Skip, ! FormatEnumerator_Reset, ! FormatEnumerator_Clone }; --- 1277,1287 ---- static void *vtFormatEnumerator[] = { ! (void *)(FormatEnumerator_QueryInterface), ! (void *)(FormatEnumerator_AddRef), ! (void *)(FormatEnumerator_Release), ! (void *)(FormatEnumerator_Next), ! (void *)(FormatEnumerator_Skip), ! (void *)(FormatEnumerator_Reset), ! (void *)(FormatEnumerator_Clone) }; *************** *** 1217,1225 **** static void *vtDropSource[] = { ! DropSource_QueryInterface, ! DropSource_AddRef, ! DropSource_Release, ! DropSource_QueryContinueDrag, ! DropSource_GiveFeedback }; --- 1320,1328 ---- static void *vtDropSource[] = { ! (void *)(DropSource_QueryInterface), ! (void *)(DropSource_AddRef), ! (void *)(DropSource_Release), ! (void *)(DropSource_QueryContinueDrag), ! (void *)(DropSource_GiveFeedback) }; *************** *** 1329,1344 **** static void *vtDataObject[] = { ! DataObject_QueryInterface, ! DataObject_AddRef, ! DataObject_Release, ! DataObject_GetData, ! DataObject_GetDataHere, ! DataObject_QueryGetData, ! DataObject_GetCanonicalFormatEtc, ! DataObject_SetData, ! DataObject_EnumFormatEtc, ! DataObject_DAdvise, ! DataObject_DUnadvise, ! DataObject_EnumDAdvise }; --- 1432,1447 ---- static void *vtDataObject[] = { ! (void *)(DataObject_QueryInterface), ! (void *)(DataObject_AddRef), ! (void *)(DataObject_Release), ! (void *)(DataObject_GetData), ! (void *)(DataObject_GetDataHere), ! (void *)(DataObject_QueryGetData), ! (void *)(DataObject_GetCanonicalFormatEtc), ! (void *)(DataObject_SetData), ! (void *)(DataObject_EnumFormatEtc), ! (void *)(DataObject_DAdvise), ! (void *)(DataObject_DUnadvise), ! (void *)(DataObject_EnumDAdvise) }; *************** *** 1377,1387 **** static void *vtDropTarget[] = { ! DropTarget_QueryInterface, ! DropTarget_AddRef, ! DropTarget_Release, ! DropTarget_DragEnter, ! DropTarget_DragOver, ! DropTarget_DragLeave, ! DropTarget_Drop }; --- 1480,1490 ---- static void *vtDropTarget[] = { ! (void *)(DropTarget_QueryInterface), ! (void *)(DropTarget_AddRef), ! (void *)(DropTarget_Release), ! (void *)(DropTarget_DragEnter), ! (void *)(DropTarget_DragOver), ! (void *)(DropTarget_DragLeave), ! (void *)(DropTarget_Drop) }; *************** *** 1418,1422 **** if (sizeZoomed <= 2) // Hangs if sizeZoomed <= 1 sizeZoomed = 2; ! AutoSurface surface(IsUnicodeMode()); int deviceHeight = sizeZoomed; if (surface) { --- 1521,1525 ---- if (sizeZoomed <= 2) // Hangs if sizeZoomed <= 1 sizeZoomed = 2; ! AutoSurface surface(this); int deviceHeight = sizeZoomed; if (surface) { *************** *** 1477,1492 **** } ! void ScintillaWin::CopySelTextToClipboard() { ! SelectionText selectedText; ! CopySelectionRange(&selectedText); ! if (selectedText.len == 0) ! return; HGLOBAL hand = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, ! selectedText.len + 1); if (hand) { char *ptr = static_cast<char *>(::GlobalLock(hand)); memcpy(ptr, selectedText.s, selectedText.len); - ptr[selectedText.len] = '\0'; ::GlobalUnlock(hand); } --- 1580,1592 ---- } ! void ScintillaWin::CopyToClipboard(const SelectionText &selectedText) { ! ::OpenClipboard(MainHWND()); ! ::EmptyClipboard(); HGLOBAL hand = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, ! selectedText.len); if (hand) { char *ptr = static_cast<char *>(::GlobalLock(hand)); memcpy(ptr, selectedText.s, selectedText.len); ::GlobalUnlock(hand); } *************** *** 1496,1508 **** int uchars = UCS2Length(selectedText.s, selectedText.len); HGLOBAL uhand = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, ! 2 * (uchars + 1)); if (uhand) { wchar_t *uptr = static_cast<wchar_t *>(::GlobalLock(uhand)); UCS2FromUTF8(selectedText.s, selectedText.len, uptr, uchars); - uptr[uchars] = 0; ::GlobalUnlock(uhand); } ::SetClipboardData(CF_UNICODETEXT, uhand); } } --- 1596,1613 ---- int uchars = UCS2Length(selectedText.s, selectedText.len); HGLOBAL uhand = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, ! 2 * (uchars)); if (uhand) { wchar_t *uptr = static_cast<wchar_t *>(::GlobalLock(uhand)); UCS2FromUTF8(selectedText.s, selectedText.len, uptr, uchars); ::GlobalUnlock(uhand); } ::SetClipboardData(CF_UNICODETEXT, uhand); } + + if (selectedText.rectangular) { + ::SetClipboardData(cfColumnSelect, 0); + } + + ::CloseClipboard(); } *************** *** 1579,1583 **** RefreshStyleData(); HDC hdc = ::GetDC(MainHWND()); ! AutoSurface surfaceWindow(hdc, IsUnicodeMode()); if (surfaceWindow) { int changes = surfaceWindow->SetPalette(&palette, inBackGround); --- 1684,1688 ---- RefreshStyleData(); HDC hdc = ::GetDC(MainHWND()); ! AutoSurface surfaceWindow(hdc, this); if (surfaceWindow) { int changes = surfaceWindow->SetPalette(&palette, inBackGround); *************** *** 1598,1602 **** paintingAllText = true; HDC hdc = ::GetDC(MainHWND()); ! AutoSurface surfaceWindow(hdc, IsUnicodeMode()); if (surfaceWindow) { Paint(surfaceWindow, rcPaint); --- 1703,1707 ---- paintingAllText = true; HDC hdc = ::GetDC(MainHWND()); ! AutoSurface surfaceWindow(hdc, this); if (surfaceWindow) { Paint(surfaceWindow, rcPaint); *************** *** 1789,1800 **** if (pFEIn->cfFormat == CF_UNICODETEXT) { int uchars = UCS2Length(drag.s, drag.len); ! hand = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, 2 * (uchars + 1)); if (hand) { wchar_t *uptr = static_cast<wchar_t *>(::GlobalLock(hand)); UCS2FromUTF8(drag.s, drag.len, uptr, uchars); - uptr[uchars] = 0; } } else { ! hand = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, drag.len + 1); if (hand) { char *ptr = static_cast<char *>(::GlobalLock(hand)); --- 1894,1904 ---- if (pFEIn->cfFormat == CF_UNICODETEXT) { int uchars = UCS2Length(drag.s, drag.len); ! hand = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, 2 * (uchars)); if (hand) { wchar_t *uptr = static_cast<wchar_t *>(::GlobalLock(hand)); UCS2FromUTF8(drag.s, drag.len, uptr, uchars); } } else { ! hand = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, drag.len); if (hand) { char *ptr = static_cast<char *>(::GlobalLock(hand)); *************** *** 1802,1806 **** ptr[i] = drag.s[i]; } - ptr[drag.len] = '\0'; } } --- 1906,1909 ---- *************** *** 1856,1860 **** // Register the CallTip class WNDCLASSEX wndclassc; ! wndclassc.cbSize = sizeof(wndclass); wndclassc.style = CS_GLOBALCLASS | CS_HREDRAW | CS_VREDRAW; wndclassc.cbClsExtra = 0; --- 1959,1963 ---- // Register the CallTip class WNDCLASSEX wndclassc; ! wndclassc.cbSize = sizeof(wndclassc); wndclassc.style = CS_GLOBALCLASS | CS_HREDRAW | CS_VREDRAW; wndclassc.cbClsExtra = 0; *************** *** 1868,1872 **** wndclassc.lpszClassName = callClassName; wndclassc.hIconSm = 0; ! result = ::RegisterClassEx(&wndclassc) != 0; } --- 1971,1975 ---- wndclassc.lpszClassName = callClassName; wndclassc.hIconSm = 0; ! result = ::RegisterClassEx(&wndclassc) != 0; } *************** *** 1903,1909 **** // Find C++ object associated with window. ! CallTip *ctp = reinterpret_cast<CallTip *>(PointerFromWindow(hWnd)); // ctp will be zero if WM_CREATE not seen yet ! if (ctp == 0) { if (iMessage == WM_CREATE) { // Associate CallTip object with window --- 2006,2012 ---- // Find C++ object associated with window. ! ScintillaWin *sciThis = reinterpret_cast<ScintillaWin *>(PointerFromWindow(hWnd)); // ctp will be zero if WM_CREATE not seen yet ! if (sciThis == 0) { if (iMessage == WM_CREATE) { // Associate CallTip object with window *************** *** 1921,1931 **** PAINTSTRUCT ps; ::BeginPaint(hWnd, &ps); ! AutoSurface surfaceWindow(ps.hdc, ctp->unicodeMode); if (surfaceWindow) { ! ctp->PaintCT(surfaceWindow); surfaceWindow->Release(); } ::EndPaint(hWnd, &ps); return 0; } else { return ::DefWindowProc(hWnd, iMessage, wParam, lParam); --- 2024,2056 ---- PAINTSTRUCT ps; ::BeginPaint(hWnd, &ps); ! Surface *surfaceWindow = Surface::Allocate(); if (surfaceWindow) { ! surfaceWindow->Init(ps.hdc, hWnd); ! surfaceWindow->SetUnicodeMode(SC_CP_UTF8 == sciThis->ct.codePage); ! surfaceWindow->SetDBCSMode(sciThis->ct.codePage); ! sciThis->ct.PaintCT(surfaceWindow); surfaceWindow->Release(); + delete surfaceWindow; } ::EndPaint(hWnd, &ps); return 0; + } else if ((iMessage == WM_NCLBUTTONDOWN) || (iMessage == WM_NCLBUTTONDBLCLK)) { + POINT pt; + pt.x = static_cast<short>(LOWORD(lParam)); + pt.y = static_cast<short>(HIWORD(lParam)); + ScreenToClient(hWnd, &pt); + sciThis->ct.MouseClick(Point(pt.x, pt.y)); + sciThis->CallTipClick(); + return 0; + } else if (iMessage == WM_LBUTTONDOWN) { + // This does not fire due to the hit test code + sciThis->ct.MouseClick(Point::FromLong(lParam)); + sciThis->CallTipClick(); + return 0; + } else if (iMessage == WM_SETCURSOR) { + ::SetCursor(::LoadCursor(NULL,IDC_ARROW)); + return 0; + } else if (iMessage == WM_NCHITTEST) { + return HTCAPTION; } else { return ::DefWindowProc(hWnd, iMessage, wParam, lParam); *************** *** 1972,1978 **** } - extern void Platform_Initialise(void *hInstance); - extern void Platform_Finalise(); - // This function is externally visible so it can be called from container when building statically. // Must be called once only. --- 2097,2100 ---- *************** *** 1982,1987 **** #ifdef SCI_LEXER Scintilla_LinkLexers(); - LexerManager *lexMan = LexerManager::GetInstance(); - lexMan->Load(); #endif return result; --- 2104,2107 ---- Index: scintilla.mak =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/win32/scintilla.mak,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** scintilla.mak 2 Aug 2002 12:53:15 -0000 1.5 --- scintilla.mak 25 Nov 2003 10:45:21 -0000 1.6 *************** *** 1,4 **** # Make file for Scintilla on Windows Visual C++ and Borland C++ version ! # Copyright 1998-2002 by Neil Hodgson <ne...@sc...> # The License.txt file describes the conditions under which this software may be distributed. # This makefile is for using Visual C++ with nmake or Borland C++ with make depending on --- 1,4 ---- # Make file for Scintilla on Windows Visual C++ and Borland C++ version ! # Copyright 1998-2003 by Neil Hodgson <ne...@sc...> # The License.txt file describes the conditions under which this software may be distributed. # This makefile is for using Visual C++ with nmake or Borland C++ with make depending on *************** *** 84,88 **** clean: ! -del /q $(DIR_O)\*.obj $(DIR_O)\*.pdb $(COMPONENT) $(LEXCOMPONENT) $(DIR_O)\*.res $(DIR_BIN)\*.map SOBJS=\ --- 84,89 ---- clean: ! -del /q $(DIR_O)\*.obj $(DIR_O)\*.pdb $(COMPONENT) $(LEXCOMPONENT) \ ! $(DIR_O)\*.res $(DIR_BIN)\*.map $(DIR_BIN)\*.exp $(DIR_BIN)\*.pdb $(DIR_BIN)\*.lib SOBJS=\ *************** *** 103,107 **** $(DIR_O)\Style.obj \ $(DIR_O)\UniConversion.obj \ ! $(DIR_O)\ViewStyle.obj #++Autogenerated -- run src/LexGen.py to regenerate --- 104,109 ---- $(DIR_O)\Style.obj \ $(DIR_O)\UniConversion.obj \ ! $(DIR_O)\ViewStyle.obj \ ! $(DIR_O)\XPM.obj #++Autogenerated -- run src/LexGen.py to regenerate *************** *** 109,130 **** --- 111,150 ---- LEXOBJS=\ $(DIR_O)\LexAda.obj \ + $(DIR_O)\LexAsm.obj \ $(DIR_O)\LexAVE.obj \ $(DIR_O)\LexBaan.obj \ $(DIR_O)\LexBullant.obj \ + $(DIR_O)\LexCLW.obj \ $(DIR_O)\LexConf.obj \ $(DIR_O)\LexCPP.obj \ $(DIR_O)\LexCrontab.obj \ + $(DIR_O)\LexCSS.obj \ $(DIR_O)\LexEiffel.obj \ + $(DIR_O)\LexErlang.obj \ + $(DIR_O)\LexEScript.obj \ + $(DIR_O)\LexForth.obj \ + $(DIR_O)\LexFortran.obj \ $(DIR_O)\LexHTML.obj \ $(DIR_O)\LexLisp.obj \ + $(DIR_O)\LexLout.obj \ $(DIR_O)\LexLua.obj \ $(DIR_O)\LexMatlab.obj \ + $(DIR_O)\LexMetapost.obj \ + $(DIR_O)\LexMMIXAL.obj \ + $(DIR_O)\LexMPT.obj \ + $(DIR_O)\LexNsis.obj \ $(DIR_O)\LexOthers.obj \ $(DIR_O)\LexPascal.obj \ + $(DIR_O)\LexPB.obj \ $(DIR_O)\LexPerl.obj \ + $(DIR_O)\LexPOV.obj \ + $(DIR_O)\LexPS.obj \ $(DIR_O)\LexPython.obj \ $(DIR_O)\LexRuby.obj \ + $(DIR_O)\LexScriptol.obj \ $(DIR_O)\LexSQL.obj \ + $(DIR_O)\LexTeX.obj \ $(DIR_O)\LexVB.obj \ + $(DIR_O)\LexYAML.obj \ #--Autogenerated -- end of automatically generated section *************** *** 152,155 **** --- 172,176 ---- $(DIR_O)\UniConversion.obj \ $(DIR_O)\ViewStyle.obj \ + $(DIR_O)\XPM.obj \ $(LEXOBJS) *************** *** 219,227 **** ../src/CellBuffer.h ../src/KeyMap.h ../src/Indicator.h \ ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ ! ../src/Document.h ../src/Editor.h ! $(DIR_O)\ExternalLexer.obj: ExternalLexer.cxx ../include/Platform.h \ ../include/SciLexer.h ../include/PropSet.h ../include/SString.h \ ../include/Accessor.h ../src/DocumentAccessor.h ../include/KeyWords.h \ ! ExternalLexer.h $(DIR_O)\Indicator.obj: ../src/Indicator.cxx ../include/Platform.h \ ../include/Scintilla.h ../src/Indicator.h --- 240,248 ---- ../src/CellBuffer.h ../src/KeyMap.h ../src/Indicator.h \ ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ ! ../src/Document.h ../src/Editor.h ../src/XPM.h ! $(DIR_O)\ExternalLexer.obj: ../src/ExternalLexer.cxx ../include/Platform.h \ ../include/SciLexer.h ../include/PropSet.h ../include/SString.h \ ../include/Accessor.h ../src/DocumentAccessor.h ../include/KeyWords.h \ ! ../src/ExternalLexer.h $(DIR_O)\Indicator.obj: ../src/Indicator.cxx ../include/Platform.h \ ../include/Scintilla.h ../src/Indicator.h *************** *** 237,240 **** --- 258,263 ---- $(DIR_O)\LexAda.obj: ..\src\LexAda.cxx $(LEX_HEADERS) + $(DIR_O)\LexAsm.obj: ..\src\LexAsm.cxx $(LEX_HEADERS) + $(DIR_O)\LexAVE.obj: ..\src\LexAVE.cxx $(LEX_HEADERS) *************** *** 243,246 **** --- 266,271 ---- $(DIR_O)\LexBullant.obj: ..\src\LexBullant.cxx $(LEX_HEADERS) + $(DIR_O)\LexCLW.obj: ..\src\LexCLW.cxx $(LEX_HEADERS) + $(DIR_O)\LexConf.obj: ..\src\LexConf.cxx $(LEX_HEADERS) *************** *** 249,283 **** $(DIR_O)\LexCrontab.obj: ..\src\LexCrontab.cxx $(LEX_HEADERS) $(DIR_O)\LexEiffel.obj: ..\src\LexEiffel.cxx $(LEX_HEADERS) $(DIR_O)\LexHTML.obj: ..\src\LexHTML.cxx $(LEX_HEADERS) $(DIR_O)\LexLisp.obj: ..\src\LexLisp.cxx $(LEX_HEADERS) $(DIR_O)\LexLua.obj: ..\src\LexLua.cxx $(LEX_HEADERS) $(DIR_O)\LexMatlab.obj: ..\src\LexMatlab.cxx $(LEX_HEADERS) $(DIR_O)\LexOthers.obj: ..\src\LexOthers.cxx $(LEX_HEADERS) $(DIR_O)\LexPascal.obj: ..\src\LexPascal.cxx $(LEX_HEADERS) $(DIR_O)\LexPerl.obj: ..\src\LexPerl.cxx $(LEX_HEADERS) $(DIR_O)\LexPython.obj: ..\src\LexPython.cxx $(LEX_HEADERS) $(DIR_O)\LexRuby.obj: ..\src\LexRuby.cxx $(LEX_HEADERS) $(DIR_O)\LexSQL.obj: ..\src\LexSQL.cxx $(LEX_HEADERS) $(DIR_O)\LexVB.obj: ..\src\LexVB.cxx $(LEX_HEADERS) #--Autogenerated -- end of automatically generated section $(DIR_O)\LineMarker.obj: ../src/LineMarker.cxx ../include/Platform.h \ ! ../include/Scintilla.h ../src/LineMarker.h $(DIR_O)\PlatWin.obj: PlatWin.cxx ../include/Platform.h PlatformRes.h \ ! ../src/UniConversion.h $(DIR_O)\PropSet.obj: ../src/PropSet.cxx ../include/Platform.h \ ../include/PropSet.h ../include/SString.h --- 274,340 ---- $(DIR_O)\LexCrontab.obj: ..\src\LexCrontab.cxx $(LEX_HEADERS) + $(DIR_O)\LexCSS.obj: ..\src\LexCSS.cxx $(LEX_HEADERS) + $(DIR_O)\LexEiffel.obj: ..\src\LexEiffel.cxx $(LEX_HEADERS) + $(DIR_O)\LexErlang.obj: ..\src\LexErlang.cxx $(LEX_HEADERS) + + $(DIR_O)\LexEScript.obj: ..\src\LexEScript.cxx $(LEX_HEADERS) + + $(DIR_O)\LexForth.obj: ..\src\LexForth.cxx $(LEX_HEADERS) + + $(DIR_O)\LexFortran.obj: ..\src\LexFortran.cxx $(LEX_HEADERS) + $(DIR_O)\LexHTML.obj: ..\src\LexHTML.cxx $(LEX_HEADERS) $(DIR_O)\LexLisp.obj: ..\src\LexLisp.cxx $(LEX_HEADERS) + $(DIR_O)\LexLout.obj: ..\src\LexLout.cxx $(LEX_HEADERS) + $(DIR_O)\LexLua.obj: ..\src\LexLua.cxx $(LEX_HEADERS) $(DIR_O)\LexMatlab.obj: ..\src\LexMatlab.cxx $(LEX_HEADERS) + $(DIR_O)\LexMetapost.obj: ..\src\LexMetapost.cxx $(LEX_HEADERS) + + $(DIR_O)\LexMMIXAL.obj: ..\src\LexMMIXAL.cxx $(LEX_HEADERS) + + $(DIR_O)\LexMPT.obj: ..\src\LexMPT.cxx $(LEX_HEADERS) + + $(DIR_O)\LexNsis.obj: ..\src\LexNsis.cxx $(LEX_HEADERS) + $(DIR_O)\LexOthers.obj: ..\src\LexOthers.cxx $(LEX_HEADERS) $(DIR_O)\LexPascal.obj: ..\src\LexPascal.cxx $(LEX_HEADERS) + $(DIR_O)\LexPB.obj: ..\src\LexPB.cxx $(LEX_HEADERS) + $(DIR_O)\LexPerl.obj: ..\src\LexPerl.cxx $(LEX_HEADERS) + $(DIR_O)\LexPOV.obj: ..\src\LexPOV.cxx $(LEX_HEADERS) + + $(DIR_O)\LexPS.obj: ..\src\LexPS.cxx $(LEX_HEADERS) + $(DIR_O)\LexPython.obj: ..\src\LexPython.cxx $(LEX_HEADERS) $(DIR_O)\LexRuby.obj: ..\src\LexRuby.cxx $(LEX_HEADERS) + $(DIR_O)\LexScriptol.obj: ..\src\LexScriptol.cxx $(LEX_HEADERS) + $(DIR_O)\LexSQL.obj: ..\src\LexSQL.cxx $(LEX_HEADERS) + $(DIR_O)\LexTeX.obj: ..\src\LexTeX.cxx $(LEX_HEADERS) + $(DIR_O)\LexVB.obj: ..\src\LexVB.cxx $(LEX_HEADERS) + $(DIR_O)\LexYAML.obj: ..\src\LexYAML.cxx $(LEX_HEADERS) + #--Autogenerated -- end of automatically generated section $(DIR_O)\LineMarker.obj: ../src/LineMarker.cxx ../include/Platform.h \ ! ../include/Scintilla.h ../src/LineMarker.h ../src/XPM.h $(DIR_O)\PlatWin.obj: PlatWin.cxx ../include/Platform.h PlatformRes.h \ ! ../src/UniConversion.h ../src/XPM.h $(DIR_O)\PropSet.obj: ../src/PropSet.cxx ../include/Platform.h \ ../include/PropSet.h ../include/SString.h *************** *** 289,298 **** ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ ../src/AutoComplete.h ../src/Document.h ../src/Editor.h \ ! ../src/ScintillaBase.h $(DIR_O)\ScintillaBaseL.obj: ..\src\ScintillaBase.cxx ..\include\Platform.h ..\include\Scintilla.h ..\include\SciLexer.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ ..\src\LineMarker.h ..\src\Style.h ..\src\AutoComplete.h ..\src\ViewStyle.h ..\src\Document.h ..\src\Editor.h \ ! ..\src\ScintillaBase.h ..\include\PropSet.h \ ! ..\include\SString.h ..\include\Accessor.h ..\src\DocumentAccessor.h ..\include\KeyWords.h $(DIR_O)\ScintillaWin.obj: ScintillaWin.cxx ../include/Platform.h \ ../include/Scintilla.h ../include/SString.h ../src/ContractionState.h \ --- 346,355 ---- ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ ../src/AutoComplete.h ../src/Document.h ../src/Editor.h \ ! ../src/ScintillaBase.h ../src/XPM.h $(DIR_O)\ScintillaBaseL.obj: ..\src\ScintillaBase.cxx ..\include\Platform.h ..\include\Scintilla.h ..\include\SciLexer.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ ..\src\LineMarker.h ..\src\Style.h ..\src\AutoComplete.h ..\src\ViewStyle.h ..\src\Document.h ..\src\Editor.h \ ! ..\src\ScintillaBase.h ..\include\PropSet.h ..\include\SString.h ..\include\Accessor.h \ ! ..\src\DocumentAccessor.h ..\include\KeyWords.h ../src/XPM.h $(DIR_O)\ScintillaWin.obj: ScintillaWin.cxx ../include/Platform.h \ ../include/Scintilla.h ../include/SString.h ../src/ContractionState.h \ *************** *** 300,309 **** ../src/Indicator.h ../src/LineMarker.h ../src/Style.h \ ../src/AutoComplete.h ../src/ViewStyle.h ../src/Document.h \ ! ../src/Editor.h ../src/ScintillaBase.h ../src/UniConversion.h $(DIR_O)\ScintillaWinL.obj: ScintillaWin.cxx ..\include\Platform.h ..\include\Scintilla.h ..\include\SciLexer.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ ..\src\LineMarker.h ..\src\Style.h ..\src\AutoComplete.h ..\src\ViewStyle.h ..\src\Document.h ..\src\Editor.h \ ..\src\ScintillaBase.h ..\include\PropSet.h \ ! ..\include\SString.h ..\include\Accessor.h ..\include\KeyWords.h ..\src\UniConversion.h $(DIR_O)\ScintillaWinS.obj: ScintillaWin.cxx ..\include\Platform.h ..\include\Scintilla.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ --- 357,366 ---- ../src/Indicator.h ../src/LineMarker.h ../src/Style.h \ ../src/AutoComplete.h ../src/ViewStyle.h ../src/Document.h \ ! ../src/Editor.h ../src/ScintillaBase.h ../src/UniConversion.h ../src/XPM.h $(DIR_O)\ScintillaWinL.obj: ScintillaWin.cxx ..\include\Platform.h ..\include\Scintilla.h ..\include\SciLexer.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ ..\src\LineMarker.h ..\src\Style.h ..\src\AutoComplete.h ..\src\ViewStyle.h ..\src\Document.h ..\src\Editor.h \ ..\src\ScintillaBase.h ..\include\PropSet.h \ ! ..\include\SString.h ..\include\Accessor.h ..\include\KeyWords.h ..\src\UniConversion.h ../src/XPM.h $(DIR_O)\ScintillaWinS.obj: ScintillaWin.cxx ..\include\Platform.h ..\include\Scintilla.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ *************** *** 318,323 **** $(DIR_O)\ViewStyle.obj: ../src/ViewStyle.cxx ../include/Platform.h \ ../include/Scintilla.h ../src/Indicator.h ../src/LineMarker.h \ ! ../src/Style.h ../src/ViewStyle.h $(DIR_O)\WindowAccessor.obj: ../src/WindowAccessor.cxx ../include/Platform.h \ ../include/PropSet.h ../include/SString.h ../include/Accessor.h \ ../include/WindowAccessor.h ../include/Scintilla.h --- 375,381 ---- $(DIR_O)\ViewStyle.obj: ../src/ViewStyle.cxx ../include/Platform.h \ ../include/Scintilla.h ../src/Indicator.h ../src/LineMarker.h \ ! ../src/Style.h ../src/ViewStyle.h ../src/XPM.h $(DIR_O)\WindowAccessor.obj: ../src/WindowAccessor.cxx ../include/Platform.h \ ../include/PropSet.h ../include/SString.h ../include/Accessor.h \ ../include/WindowAccessor.h ../include/Scintilla.h + $(DIR_O)\XPM.obj: ../src/XPM.cxx ../include/Platform.h ../src/XPM.h Index: scintilla_vc6.mak =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/win32/scintilla_vc6.mak,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** scintilla_vc6.mak 2 Aug 2002 12:53:15 -0000 1.1 --- scintilla_vc6.mak 25 Nov 2003 10:45:21 -0000 1.2 *************** *** 86,90 **** clean: ! -del /q $(DIR_O)\*.obj $(DIR_O)\*.pdb $(COMPONENT) $(LEXCOMPONENT) $(DIR_O)\*.res $(DIR_BIN)\*.map SOBJS=\ --- 86,91 ---- clean: ! -del /q $(DIR_O)\*.obj $(DIR_O)\*.pdb $(COMPONENT) $(LEXCOMPONENT) \ ! $(DIR_O)\*.res $(DIR_BIN)\*.map $(DIR_BIN)\*.exp $(DIR_BIN)\*.pdb $(DIR_BIN)\*.lib SOBJS=\ *************** *** 105,109 **** $(DIR_O)\Style.obj \ $(DIR_O)\UniConversion.obj \ ! $(DIR_O)\ViewStyle.obj #++Autogenerated -- run src/LexGen.py to regenerate --- 106,111 ---- $(DIR_O)\Style.obj \ $(DIR_O)\UniConversion.obj \ ! $(DIR_O)\ViewStyle.obj \ ! $(DIR_O)\XPM.obj #++Autogenerated -- run src/LexGen.py to regenerate *************** *** 111,132 **** --- 113,152 ---- LEXOBJS=\ $(DIR_O)\LexAda.obj \ + $(DIR_O)\LexAsm.obj \ $(DIR_O)\LexAVE.obj \ $(DIR_O)\LexBaan.obj \ $(DIR_O)\LexBullant.obj \ + $(DIR_O)\LexCLW.obj \ $(DIR_O)\LexConf.obj \ $(DIR_O)\LexCPP.obj \ $(DIR_O)\LexCrontab.obj \ + $(DIR_O)\LexCSS.obj \ $(DIR_O)\LexEiffel.obj \ + $(DIR_O)\LexErlang.obj \ + $(DIR_O)\LexEScript.obj \ + $(DIR_O)\LexForth.obj \ + $(DIR_O)\LexFortran.obj \ $(DIR_O)\LexHTML.obj \ $(DIR_O)\LexLisp.obj \ + $(DIR_O)\LexLout.obj \ $(DIR_O)\LexLua.obj \ $(DIR_O)\LexMatlab.obj \ + $(DIR_O)\LexMetapost.obj \ + $(DIR_O)\LexMMIXAL.obj \ + $(DIR_O)\LexMPT.obj \ + $(DIR_O)\LexNsis.obj \ $(DIR_O)\LexOthers.obj \ $(DIR_O)\LexPascal.obj \ + $(DIR_O)\LexPB.obj \ $(DIR_O)\LexPerl.obj \ + $(DIR_O)\LexPOV.obj \ + $(DIR_O)\LexPS.obj \ $(DIR_O)\LexPython.obj \ $(DIR_O)\LexRuby.obj \ + $(DIR_O)\LexScriptol.obj \ $(DIR_O)\LexSQL.obj \ + $(DIR_O)\LexTeX.obj \ $(DIR_O)\LexVB.obj \ + $(DIR_O)\LexYAML.obj \ #--Autogenerated -- end of automatically generated section *************** *** 154,157 **** --- 174,178 ---- $(DIR_O)\UniConversion.obj \ $(DIR_O)\ViewStyle.obj \ + $(DIR_O)\XPM.obj \ $(LEXOBJS) *************** *** 221,229 **** ../src/CellBuffer.h ../src/KeyMap.h ../src/Indicator.h \ ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ ! ../src/Document.h ../src/Editor.h ! $(DIR_O)\ExternalLexer.obj: ExternalLexer.cxx ../include/Platform.h \ ../include/SciLexer.h ../include/PropSet.h ../include/SString.h \ ../include/Accessor.h ../src/DocumentAccessor.h ../include/KeyWords.h \ ! ExternalLexer.h $(DIR_O)\Indicator.obj: ../src/Indicator.cxx ../include/Platform.h \ ../include/Scintilla.h ../src/Indicator.h --- 242,250 ---- ../src/CellBuffer.h ../src/KeyMap.h ../src/Indicator.h \ ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ ! ../src/Document.h ../src/Editor.h ../src/XPM.h ! $(DIR_O)\ExternalLexer.obj: ../src/ExternalLexer.cxx ../include/Platform.h \ ../include/SciLexer.h ../include/PropSet.h ../include/SString.h \ ../include/Accessor.h ../src/DocumentAccessor.h ../include/KeyWords.h \ ! ../src/ExternalLexer.h $(DIR_O)\Indicator.obj: ../src/Indicator.cxx ../include/Platform.h \ ../include/Scintilla.h ../src/Indicator.h *************** *** 239,242 **** --- 260,265 ---- $(DIR_O)\LexAda.obj: ..\src\LexAda.cxx $(LEX_HEADERS) + $(DIR_O)\LexAsm.obj: ..\src\LexAsm.cxx $(LEX_HEADERS) + $(DIR_O)\LexAVE.obj: ..\src\LexAVE.cxx $(LEX_HEADERS) *************** *** 245,248 **** --- 268,273 ---- $(DIR_O)\LexBullant.obj: ..\src\LexBullant.cxx $(LEX_HEADERS) + $(DIR_O)\LexCLW.obj: ..\src\LexCLW.cxx $(LEX_HEADERS) + $(DIR_O)\LexConf.obj: ..\src\LexConf.cxx $(LEX_HEADERS) *************** *** 251,285 **** $(DIR_O)\LexCrontab.obj: ..\src\LexCrontab.cxx $(LEX_HEADERS) $(DIR_O)\LexEiffel.obj: ..\src\LexEiffel.cxx $(LEX_HEADERS) $(DIR_O)\LexHTML.obj: ..\src\LexHTML.cxx $(LEX_HEADERS) $(DIR_O)\LexLisp.obj: ..\src\LexLisp.cxx $(LEX_HEADERS) $(DIR_O)\LexLua.obj: ..\src\LexLua.cxx $(LEX_HEADERS) $(DIR_O)\LexMatlab.obj: ..\src\LexMatlab.cxx $(LEX_HEADERS) $(DIR_O)\LexOthers.obj: ..\src\LexOthers.cxx $(LEX_HEADERS) $(DIR_O)\LexPascal.obj: ..\src\LexPascal.cxx $(LEX_HEADERS) $(DIR_O)\LexPerl.obj: ..\src\LexPerl.cxx $(LEX_HEADERS) $(DIR_O)\LexPython.obj: ..\src\LexPython.cxx $(LEX_HEADERS) $(DIR_O)\LexRuby.obj: ..\src\LexRuby.cxx $(LEX_HEADERS) $(DIR_O)\LexSQL.obj: ..\src\LexSQL.cxx $(LEX_HEADERS) $(DIR_O)\LexVB.obj: ..\src\LexVB.cxx $(LEX_HEADERS) #--Autogenerated -- end of automatically generated section $(DIR_O)\LineMarker.obj: ../src/LineMarker.cxx ../include/Platform.h \ ! ../include/Scintilla.h ../src/LineMarker.h $(DIR_O)\PlatWin.obj: PlatWin.cxx ../include/Platform.h PlatformRes.h \ ! ../src/UniConversion.h $(DIR_O)\PropSet.obj: ../src/PropSet.cxx ../include/Platform.h \ ../include/PropSet.h ../include/SString.h --- 276,342 ---- $(DIR_O)\LexCrontab.obj: ..\src\LexCrontab.cxx $(LEX_HEADERS) + $(DIR_O)\LexCSS.obj: ..\src\LexCSS.cxx $(LEX_HEADERS) + $(DIR_O)\LexEiffel.obj: ..\src\LexEiffel.cxx $(LEX_HEADERS) + $(DIR_O)\LexErlang.obj: ..\src\LexErlang.cxx $(LEX_HEADERS) + + $(DIR_O)\LexEScript.obj: ..\src\LexEScript.cxx $(LEX_HEADERS) + + $(DIR_O)\LexForth.obj: ..\src\LexForth.cxx $(LEX_HEADERS) + + $(DIR_O)\LexFortran.obj: ..\src\LexFortran.cxx $(LEX_HEADERS) + $(DIR_O)\LexHTML.obj: ..\src\LexHTML.cxx $(LEX_HEADERS) $(DIR_O)\LexLisp.obj: ..\src\LexLisp.cxx $(LEX_HEADERS) + $(DIR_O)\LexLout.obj: ..\src\LexLout.cxx $(LEX_HEADERS) + $(DIR_O)\LexLua.obj: ..\src\LexLua.cxx $(LEX_HEADERS) $(DIR_O)\LexMatlab.obj: ..\src\LexMatlab.cxx $(LEX_HEADERS) + $(DIR_O)\LexMetapost.obj: ..\src\LexMetapost.cxx $(LEX_HEADERS) + + $(DIR_O)\LexMMIXAL.obj: ..\src\LexMMIXAL.cxx $(LEX_HEADERS) + + $(DIR_O)\LexMPT.obj: ..\src\LexMPT.cxx $(LEX_HEADERS) + + $(DIR_O)\LexNsis.obj: ..\src\LexNsis.cxx $(LEX_HEADERS) + $(DIR_O)\LexOthers.obj: ..\src\LexOthers.cxx $(LEX_HEADERS) $(DIR_O)\LexPascal.obj: ..\src\LexPascal.cxx $(LEX_HEADERS) + $(DIR_O)\LexPB.obj: ..\src\LexPB.cxx $(LEX_HEADERS) + $(DIR_O)\LexPerl.obj: ..\src\LexPerl.cxx $(LEX_HEADERS) + $(DIR_O)\LexPOV.obj: ..\src\LexPOV.cxx $(LEX_HEADERS) + + $(DIR_O)\LexPS.obj: ..\src\LexPS.cxx $(LEX_HEADERS) + $(DIR_O)\LexPython.obj: ..\src\LexPython.cxx $(LEX_HEADERS) $(DIR_O)\LexRuby.obj: ..\src\LexRuby.cxx $(LEX_HEADERS) + $(DIR_O)\LexScriptol.obj: ..\src\LexScriptol.cxx $(LEX_HEADERS) + $(DIR_O)\LexSQL.obj: ..\src\LexSQL.cxx $(LEX_HEADERS) + $(DIR_O)\LexTeX.obj: ..\src\LexTeX.cxx $(LEX_HEADERS) + $(DIR_O)\LexVB.obj: ..\src\LexVB.cxx $(LEX_HEADERS) + $(DIR_O)\LexYAML.obj: ..\src\LexYAML.cxx $(LEX_HEADERS) + #--Autogenerated -- end of automatically generated section $(DIR_O)\LineMarker.obj: ../src/LineMarker.cxx ../include/Platform.h \ ! ../include/Scintilla.h ../src/LineMarker.h ../src/XPM.h $(DIR_O)\PlatWin.obj: PlatWin.cxx ../include/Platform.h PlatformRes.h \ ! ../src/UniConversion.h ../src/XPM.h $(DIR_O)\PropSet.obj: ../src/PropSet.cxx ../include/Platform.h \ ../include/PropSet.h ../include/SString.h *************** *** 291,300 **** ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ ../src/AutoComplete.h ../src/Document.h ../src/Editor.h \ ! ../src/ScintillaBase.h $(DIR_O)\ScintillaBaseL.obj: ..\src\ScintillaBase.cxx ..\include\Platform.h ..\include\Scintilla.h ..\include\SciLexer.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ ..\src\LineMarker.h ..\src\Style.h ..\src\AutoComplete.h ..\src\ViewStyle.h ..\src\Document.h ..\src\Editor.h \ ! ..\src\ScintillaBase.h ..\include\PropSet.h \ ! ..\include\SString.h ..\include\Accessor.h ..\src\DocumentAccessor.h ..\include\KeyWords.h $(DIR_O)\ScintillaWin.obj: ScintillaWin.cxx ../include/Platform.h \ ../include/Scintilla.h ../include/SString.h ../src/ContractionState.h \ --- 348,357 ---- ../src/LineMarker.h ../src/Style.h ../src/ViewStyle.h \ ../src/AutoComplete.h ../src/Document.h ../src/Editor.h \ ! ../src/ScintillaBase.h ../src/XPM.h $(DIR_O)\ScintillaBaseL.obj: ..\src\ScintillaBase.cxx ..\include\Platform.h ..\include\Scintilla.h ..\include\SciLexer.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ ..\src\LineMarker.h ..\src\Style.h ..\src\AutoComplete.h ..\src\ViewStyle.h ..\src\Document.h ..\src\Editor.h \ ! ..\src\ScintillaBase.h ..\include\PropSet.h ..\include\SString.h ..\include\Accessor.h \ ! ..\src\DocumentAccessor.h ..\include\KeyWords.h ../src/XPM.h $(DIR_O)\ScintillaWin.obj: ScintillaWin.cxx ../include/Platform.h \ ../include/Scintilla.h ../include/SString.h ../src/ContractionState.h \ *************** *** 302,311 **** ../src/Indicator.h ../src/LineMarker.h ../src/Style.h \ ../src/AutoComplete.h ../src/ViewStyle.h ../src/Document.h \ ! ../src/Editor.h ../src/ScintillaBase.h ../src/UniConversion.h $(DIR_O)\ScintillaWinL.obj: ScintillaWin.cxx ..\include\Platform.h ..\include\Scintilla.h ..\include\SciLexer.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ ..\src\LineMarker.h ..\src\Style.h ..\src\AutoComplete.h ..\src\ViewStyle.h ..\src\Document.h ..\src\Editor.h \ ..\src\ScintillaBase.h ..\include\PropSet.h \ ! ..\include\SString.h ..\include\Accessor.h ..\include\KeyWords.h ..\src\UniConversion.h $(DIR_O)\ScintillaWinS.obj: ScintillaWin.cxx ..\include\Platform.h ..\include\Scintilla.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ --- 359,368 ---- ../src/Indicator.h ../src/LineMarker.h ../src/Style.h \ ../src/AutoComplete.h ../src/ViewStyle.h ../src/Document.h \ ! ../src/Editor.h ../src/ScintillaBase.h ../src/UniConversion.h ../src/XPM.h $(DIR_O)\ScintillaWinL.obj: ScintillaWin.cxx ..\include\Platform.h ..\include\Scintilla.h ..\include\SciLexer.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ ..\src\LineMarker.h ..\src\Style.h ..\src\AutoComplete.h ..\src\ViewStyle.h ..\src\Document.h ..\src\Editor.h \ ..\src\ScintillaBase.h ..\include\PropSet.h \ ! ..\include\SString.h ..\include\Accessor.h ..\include\KeyWords.h ..\src\UniConversion.h ../src/XPM.h $(DIR_O)\ScintillaWinS.obj: ScintillaWin.cxx ..\include\Platform.h ..\include\Scintilla.h \ ..\src\ContractionState.h ..\src\CellBuffer.h ..\src\CallTip.h ..\src\KeyMap.h ..\src\Indicator.h \ *************** *** 320,325 **** $(DIR_O)\ViewStyle.obj: ../src/ViewStyle.cxx ../include/Platform.h \ ../include/Scintilla.h ../src/Indicator.h ../src/LineMarker.h \ ! ../src/Style.h ../src/ViewStyle.h $(DIR_O)\WindowAccessor.obj: ../src/WindowAccessor.cxx ../include/Platform.h \ ../include/PropSet.h ../include/SString.h ../include/Accessor.h \ ! ../include/WindowAccessor.h ../include/Scintilla.h \ No newline at end of file --- 377,383 ---- $(DIR_O)\ViewStyle.obj: ../src/ViewStyle.cxx ../include/Platform.h \ ../include/Scintilla.h ../src/Indicator.h ../src/LineMarker.h \ ! ../src/Style.h ../src/ViewStyle.h ../src/XPM.h $(DIR_O)\WindowAccessor.obj: ../src/WindowAccessor.cxx ../include/Platform.h \ ../include/PropSet.h ../include/SString.h ../include/Accessor.h \ ! ../include/WindowAccessor.h ../include/Scintilla.h ! $(DIR_O)\XPM.obj: ../src/XPM.cxx ../include/Platform.h ../src/XPM.h --- ExternalLexer.h DELETED --- |
From: <mha...@us...> - 2003-11-25 11:01:29
|
Update of /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/include In directory sc8-pr-cvs1:/tmp/cvs-serv12826/include Modified Files: Platform.h PropSet.h SString.h SciLexer.h Scintilla.h Log Message: New scintilla version. Index: Platform.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/include/Platform.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Platform.h 2 Aug 2002 12:53:10 -0000 1.10 --- Platform.h 25 Nov 2003 10:45:20 -0000 1.11 *************** *** 4,8 **** ** Implemented in PlatGTK.cxx for GTK+/Linux, PlatWin.cxx for Windows, and PlatWX.cxx for wxWindows. **/ ! // Copyright 1998-2002 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. --- 4,8 ---- ** Implemented in PlatGTK.cxx for GTK+/Linux, PlatWin.cxx for Windows, and PlatWX.cxx for wxWindows. **/ ! // Copyright 1998-2003 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. *************** *** 53,56 **** --- 53,58 ---- typedef void *MenuID; typedef void *TickerID; + typedef void *Function; + typedef void *IdlerID; /** *************** *** 105,108 **** --- 107,116 ---- (bottom > other.top) && (top < other.bottom); } + void Move(int xDelta, int yDelta) { + left += xDelta; + top += yDelta; + right += xDelta; + bottom += yDelta; + } int Width() { return right - left; } int Height() { return bottom - top; } *************** *** 111,121 **** /** * In some circumstances, including Win32 in paletted mode and GTK+, each colour ! * must be allocated before use. The desired colours are held in the ColourDesired class, * and after allocation the allocation entry is stored in the ColourAllocated class. In other ! * circumstances, such as Win32 in true colour mode, the allocation process just copies * the RGB values from the desired to the allocated class. * As each desired colour requires allocation before it can be used, the ColourPair class * holds both a ColourDesired and a ColourAllocated ! * The Palette class is responsible for managing the palette of colours which contains a * list of ColourPair objects and performs the allocation. */ --- 119,129 ---- /** * In some circumstances, including Win32 in paletted mode and GTK+, each colour ! * must be allocated before use. The desired colours are held in the ColourDesired class, * and after allocation the allocation entry is stored in the ColourAllocated class. In other ! * circumstances, such as Win32 in true colour mode, the allocation process just copies * the RGB values from the desired to the allocated class. * As each desired colour requires allocation before it can be used, the ColourPair class * holds both a ColourDesired and a ColourAllocated ! * The Palette class is responsible for managing the palette of colours which contains a * list of ColourPair objects and performs the allocation. */ *************** *** 130,158 **** co = lcol; } ! ColourDesired(unsigned int red, unsigned int green, unsigned int blue) { ! co = red | (green << 8) | (blue << 16); } ! bool operator==(const ColourDesired &other) const { return co == other.co; } ! void Set(long lcol) { co = lcol; } ! long AsLong() const { return co; } ! unsigned int GetRed() { return co & 0xff; } ! unsigned int GetGreen() { return (co >> 8) & 0xff; } ! unsigned int GetBlue() { return (co >> 16) & 0xff; --- 138,191 ---- co = lcol; } ! ColourDesired(unsigned int red, unsigned int green, unsigned int blue) { ! Set(red, green, blue); } ! bool operator==(const ColourDesired &other) const { return co == other.co; } ! void Set(long lcol) { co = lcol; } ! ! void Set(unsigned int red, unsigned int green, unsigned int blue) { ! co = red | (green << 8) | (blue << 16); ! } ! ! static inline unsigned int ValueOfHex(const char ch) { ! if (ch >= '0' && ch <= '9') ! return ch - '0'; ! else if (ch >= 'A' && ch <= 'F') ! return ch - 'A' + 10; ! else if (ch >= 'a' && ch <= 'f') ! return ch - 'a' + 10; ! else ! return 0; ! } ! ! void Set(const char *val) { ! if (*val == '#') { ! val++; ! } ! unsigned int r = ValueOfHex(val[0]) * 16 + ValueOfHex(val[1]); ! unsigned int g = ValueOfHex(val[2]) * 16 + ValueOfHex(val[3]); ! unsigned int b = ValueOfHex(val[4]) * 16 + ValueOfHex(val[5]); ! Set(r, g, b); ! } ! long AsLong() const { return co; } ! unsigned int GetRed() { return co & 0xff; } ! unsigned int GetGreen() { return (co >> 8) & 0xff; } ! unsigned int GetBlue() { return (co >> 16) & 0xff; *************** *** 165,169 **** class ColourAllocated { long coAllocated; ! public: --- 198,202 ---- class ColourAllocated { long coAllocated; ! public: *************** *** 171,179 **** coAllocated = lcol; } ! void Set(long lcol) { coAllocated = lcol; } ! long AsLong() const { return coAllocated; --- 204,212 ---- coAllocated = lcol; } ! void Set(long lcol) { coAllocated = lcol; } ! long AsLong() const { return coAllocated; *************** *** 192,195 **** --- 225,231 ---- allocated.Set(desired.AsLong()); } + void Copy() { + allocated.Set(desired.AsLong()); + } }; *************** *** 266,272 **** static Surface *Allocate(); ! virtual void Init()=0; ! virtual void Init(SurfaceID sid)=0; ! virtual void InitPixMap(int width, int height, Surface *surface_)=0; virtual void Release()=0; --- 302,308 ---- static Surface *Allocate(); ! virtual void Init(WindowID wid)=0; ! virtual void Init(SurfaceID sid, WindowID wid)=0; ! virtual void InitPixMap(int width, int height, Surface *surface_, WindowID wid)=0; virtual void Release()=0; *************** *** 287,290 **** --- 323,327 ---- virtual void DrawTextNoClip(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore, ColourAllocated back)=0; virtual void DrawTextClipped(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore, ColourAllocated back)=0; + virtual void DrawTextTransparent(PRectangle rc, Font &font_, int ybase, const char *s, int len, ColourAllocated fore)=0; virtual void MeasureWidths(Font &font_, const char *s, int len, int *positions)=0; virtual int WidthText(Font &font_, const char *s, int len)=0; *************** *** 302,305 **** --- 339,343 ---- virtual void SetUnicodeMode(bool unicodeMode_)=0; + virtual void SetDBCSMode(int codePage)=0; }; *************** *** 324,329 **** return *this; } ! WindowID GetID() { return id; } ! bool Created() { return id != 0; } void Destroy(); bool HasFocus(); --- 362,367 ---- return *this; } ! WindowID GetID() const { return id; } ! bool Created() const { return id != 0; } void Destroy(); bool HasFocus(); *************** *** 336,340 **** void InvalidateRectangle(PRectangle rc); virtual void SetFont(Font &font); ! enum Cursor { cursorInvalid, cursorText, cursorArrow, cursorUp, cursorWait, cursorHoriz, cursorVert, cursorReverseArrow }; void SetCursor(Cursor curs); void SetTitle(const char *s); --- 374,378 ---- void InvalidateRectangle(PRectangle rc); virtual void SetFont(Font &font); ! enum Cursor { cursorInvalid, cursorText, cursorArrow, cursorUp, cursorWait, cursorHoriz, cursorVert, cursorReverseArrow, cursorHand }; void SetCursor(Cursor curs); void SetTitle(const char *s); *************** *** 348,383 **** class ListBox : public Window { - private: - #if PLAT_GTK - WindowID list; - WindowID scroller; - int current; - #endif - int desiredVisibleRows; - unsigned int maxItemCharacters; - unsigned int aveCharWidth; - public: - CallBackAction doubleClickAction; - void *doubleClickActionData; public: ListBox(); virtual ~ListBox(); ! void Create(Window &parent, int ctrlID); ! virtual void SetFont(Font &font); ! void SetAverageCharWidth(int width); ! void SetVisibleRows(int rows); ! PRectangle GetDesiredRect(); ! void Clear(); ! void Append(char *s); ! int Length(); ! void Select(int n); ! int GetSelection(); ! int Find(const char *prefix); ! void GetValue(int n, char *value, int len); ! void Sort(); ! void SetDoubleClickAction(CallBackAction action, void *data) { ! doubleClickAction = action; ! doubleClickActionData = data; ! } }; --- 386,410 ---- class ListBox : public Window { public: ListBox(); virtual ~ListBox(); ! static ListBox *Allocate(); ! ! virtual void SetFont(Font &font)=0; ! virtual void Create(Window &parent, int ctrlID, int lineHeight_, bool unicodeMode_)=0; ! virtual void SetAverageCharWidth(int width)=0; ! virtual void SetVisibleRows(int rows)=0; ! virtual PRectangle GetDesiredRect()=0; ! virtual int CaretFromEdge()=0; ! virtual void Clear()=0; ! virtual void Append(char *s, int type = -1)=0; ! virtual int Length()=0; ! virtual void Select(int n)=0; ! virtual int GetSelection()=0; ! virtual int Find(const char *prefix)=0; ! virtual void GetValue(int n, char *value, int len)=0; ! virtual void RegisterImage(int type, const char *xpm_data)=0; ! virtual void ClearRegisteredImages()=0; ! virtual void SetDoubleClickAction(CallBackAction, void *)=0; }; *************** *** 404,407 **** --- 431,451 ---- /** + * Dynamic Library (DLL/SO/...) loading + */ + class DynamicLibrary { + public: + virtual ~DynamicLibrary() {}; + + /// @return Pointer to function "name", or NULL on failure. + virtual Function FindFunction(const char *name) = 0; + + /// @return true if the library was loaded successfully. + virtual bool IsValid() = 0; + + /// @return An instance of a DynamicLibrary subclass with "modulePath" loaded. + static DynamicLibrary *Load(const char *modulePath); + }; + + /** * Platform class used to retrieve system wide parameters such as double click speed * and chrome colour. Not a creatable object, more of a module with several functions. *************** *** 421,424 **** --- 465,469 ---- static int DefaultFontSize(); static unsigned int DoubleClickTime(); + static bool MouseButtonBounce(); static void DebugDisplay(const char *s); static bool IsKeyDown(int key); *************** *** 428,431 **** --- 473,478 ---- WindowID w, unsigned int msg, unsigned long wParam=0, void *lParam=0); static bool IsDBCSLeadByte(int codePage, char ch); + static int DBCSCharLength(int codePage, const char *s); + static int DBCSCharMaxLength(); // These are utility functions not really tied to a platform Index: PropSet.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/include/PropSet.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** PropSet.h 2 Aug 2002 12:53:10 -0000 1.9 --- PropSet.h 25 Nov 2003 10:45:20 -0000 1.10 *************** *** 25,33 **** */ class PropSet { ! private: enum { hashRoots=31 }; Property *props[hashRoots]; Property *enumnext; int enumhash; public: PropSet *superPS; --- 25,43 ---- */ class PropSet { ! protected: enum { hashRoots=31 }; Property *props[hashRoots]; Property *enumnext; int enumhash; + static unsigned int HashString(const char *s, size_t len) { + unsigned int ret = 0; + while (len--) { + ret <<= 4; + ret ^= *s; + s++; + } + return ret; + } + static bool IncludesVar(const char *value, const char *key); public: PropSet *superPS; *************** *** 39,43 **** SString Get(const char *key); SString GetExpanded(const char *key); ! SString Expand(const char *withVars); int GetInt(const char *key, int defaultValue=0); SString GetWild(const char *keybase, const char *filename); --- 49,53 ---- SString Get(const char *key); SString GetExpanded(const char *key); ! SString Expand(const char *withVars, int maxExpands=100); int GetInt(const char *key, int defaultValue=0); SString GetWild(const char *keybase, const char *filename); *************** *** 61,65 **** bool sorted; int starts[256]; ! WordList(bool onlyLineEnds_ = false) : words(0), wordsNoCase(0), list(0), len(0), onlyLineEnds(onlyLineEnds_), sorted(false) {} ~WordList() { Clear(); } --- 71,75 ---- bool sorted; int starts[256]; ! WordList(bool onlyLineEnds_ = false) : words(0), wordsNoCase(0), list(0), len(0), onlyLineEnds(onlyLineEnds_), sorted(false) {} ~WordList() { Clear(); } *************** *** 71,77 **** void SetFromAllocated(); bool InList(const char *s); ! const char *GetNearestWord(const char *wordStart, int searchLen = -1, ! bool ignoreCase = false, SString wordCharacters=""); ! char *GetNearestWords(const char *wordStart, int searchLen=-1, bool ignoreCase=false, char otherSeparator='\0'); }; --- 81,87 ---- void SetFromAllocated(); bool InList(const char *s); ! const char *GetNearestWord(const char *wordStart, int searchLen = -1, ! bool ignoreCase = false, SString wordCharacters="", int wordIndex = -1); ! char *GetNearestWords(const char *wordStart, int searchLen=-1, bool ignoreCase=false, char otherSeparator='\0'); }; Index: SString.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/include/SString.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** SString.h 2 Aug 2002 12:53:10 -0000 1.3 --- SString.h 25 Nov 2003 10:45:20 -0000 1.4 *************** *** 239,243 **** } SString &operator+=(const SString &sOther) { ! return append(sOther.s, sOther.sSize); } SString &operator+=(char ch) { --- 239,243 ---- } SString &operator+=(const SString &sOther) { ! return append(sOther.s, sOther.sLen); } SString &operator+=(char ch) { Index: SciLexer.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/include/SciLexer.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** SciLexer.h 2 Aug 2002 12:53:10 -0000 1.10 --- SciLexer.h 25 Nov 2003 10:45:20 -0000 1.11 *************** *** 49,52 **** --- 49,72 ---- #define SCLEX_MATLAB 32 #define SCLEX_SCRIPTOL 33 + #define SCLEX_ASM 34 + #define SCLEX_CPPNOCASE 35 + #define SCLEX_FORTRAN 36 + #define SCLEX_F77 37 + #define SCLEX_CSS 38 + #define SCLEX_POV 39 + #define SCLEX_LOUT 40 + #define SCLEX_ESCRIPT 41 + #define SCLEX_PS 42 + #define SCLEX_NSIS 43 + #define SCLEX_MMIXAL 44 + #define SCLEX_CLW 45 + #define SCLEX_CLWNOCASE 46 + #define SCLEX_LOT 47 + #define SCLEX_YAML 48 + #define SCLEX_TEX 49 + #define SCLEX_METAPOST 50 + #define SCLEX_POWERBASIC 51 + #define SCLEX_FORTH 52 + #define SCLEX_ERLANG 53 #define SCLEX_AUTOMATIC 1000 #define SCE_P_DEFAULT 0 *************** *** 83,86 **** --- 103,107 ---- #define SCE_C_COMMENTDOCKEYWORD 17 #define SCE_C_COMMENTDOCKEYWORDERROR 18 + #define SCE_C_GLOBALCLASS 19 #define SCE_H_DEFAULT 0 #define SCE_H_TAG 1 *************** *** 260,263 **** --- 281,286 ---- #define SCE_LUA_WORD5 16 #define SCE_LUA_WORD6 17 + #define SCE_LUA_WORD7 18 + #define SCE_LUA_WORD8 19 #define SCE_ERR_DEFAULT 0 #define SCE_ERR_PYTHON 1 *************** *** 274,277 **** --- 297,303 ---- #define SCE_ERR_DIFF_DELETION 12 #define SCE_ERR_DIFF_MESSAGE 13 + #define SCE_ERR_PHP 14 + #define SCE_ERR_ELF 15 + #define SCE_ERR_IFC 16 #define SCE_BAT_DEFAULT 0 #define SCE_BAT_COMMENT 1 *************** *** 310,315 **** #define SCE_AVE_NUMBER 2 #define SCE_AVE_WORD 3 - #define SCE_AVE_KEYWORD 4 - #define SCE_AVE_STATEMENT 5 #define SCE_AVE_STRING 6 #define SCE_AVE_ENUM 7 --- 336,339 ---- *************** *** 317,329 **** #define SCE_AVE_IDENTIFIER 9 #define SCE_AVE_OPERATOR 10 #define SCE_ADA_DEFAULT 0 ! #define SCE_ADA_COMMENT 1 ! #define SCE_ADA_NUMBER 2 ! #define SCE_ADA_WORD 3 ! #define SCE_ADA_STRING 4 #define SCE_ADA_CHARACTER 5 ! #define SCE_ADA_OPERATOR 6 ! #define SCE_ADA_IDENTIFIER 7 #define SCE_ADA_STRINGEOL 8 #define SCE_BAAN_DEFAULT 0 #define SCE_BAAN_COMMENT 1 --- 341,362 ---- #define SCE_AVE_IDENTIFIER 9 #define SCE_AVE_OPERATOR 10 + #define SCE_AVE_WORD1 11 + #define SCE_AVE_WORD2 12 + #define SCE_AVE_WORD3 13 + #define SCE_AVE_WORD4 14 + #define SCE_AVE_WORD5 15 + #define SCE_AVE_WORD6 16 #define SCE_ADA_DEFAULT 0 ! #define SCE_ADA_WORD 1 ! #define SCE_ADA_IDENTIFIER 2 ! #define SCE_ADA_NUMBER 3 ! #define SCE_ADA_DELIMITER 4 #define SCE_ADA_CHARACTER 5 ! #define SCE_ADA_CHARACTEREOL 6 ! #define SCE_ADA_STRING 7 #define SCE_ADA_STRINGEOL 8 + #define SCE_ADA_LABEL 9 + #define SCE_ADA_COMMENTLINE 10 + #define SCE_ADA_ILLEGAL 11 #define SCE_BAAN_DEFAULT 0 #define SCE_BAAN_COMMENT 1 *************** *** 365,368 **** --- 398,413 ---- #define SCE_NNCRONTAB_ENVIRONMENT 9 #define SCE_NNCRONTAB_IDENTIFIER 10 + #define SCE_FORTH_DEFAULT 0 + #define SCE_FORTH_COMMENT 1 + #define SCE_FORTH_COMMENT_ML 2 + #define SCE_FORTH_IDENTIFIER 3 + #define SCE_FORTH_CONTROL 4 + #define SCE_FORTH_KEYWORD 5 + #define SCE_FORTH_DEFWORD 6 + #define SCE_FORTH_PREWORD1 7 + #define SCE_FORTH_PREWORD2 8 + #define SCE_FORTH_NUMBER 9 + #define SCE_FORTH_STRING 10 + #define SCE_FORTH_LOCALE 11 #define SCE_MATLAB_DEFAULT 0 #define SCE_MATLAB_COMMENT 1 *************** *** 374,396 **** #define SCE_MATLAB_IDENTIFIER 7 #define SCE_SCRIPTOL_DEFAULT 0 ! #define SCE_SCRIPTOL_COMMENT 1 #define SCE_SCRIPTOL_COMMENTLINE 2 ! #define SCE_SCRIPTOL_COMMENTDOC 3 ! #define SCE_SCRIPTOL_NUMBER 4 ! #define SCE_SCRIPTOL_WORD 5 ! #define SCE_SCRIPTOL_STRING 6 ! #define SCE_SCRIPTOL_CHARACTER 7 ! #define SCE_SCRIPTOL_UUID 8 ! #define SCE_SCRIPTOL_PREPROCESSOR 9 ! #define SCE_SCRIPTOL_OPERATOR 10 ! #define SCE_SCRIPTOL_IDENTIFIER 11 ! #define SCE_SCRIPTOL_STRINGEOL 12 ! #define SCE_SCRIPTOL_VERBATIM 13 ! #define SCE_SCRIPTOL_REGEX 14 ! #define SCE_SCRIPTOL_COMMENTLINEDOC 15 ! #define SCE_SCRIPTOL_WORD2 16 ! #define SCE_SCRIPTOL_COMMENTDOCKEYWORD 17 ! #define SCE_SCRIPTOL_COMMENTDOCKEYWORDERROR 18 ! #define SCE_SCRIPTOL_COMMENTBASIC 19 //--Autogenerated -- end of section automatically generated from Scintilla.iface --- 419,629 ---- #define SCE_MATLAB_IDENTIFIER 7 #define SCE_SCRIPTOL_DEFAULT 0 ! #define SCE_SCRIPTOL_WHITE 1 #define SCE_SCRIPTOL_COMMENTLINE 2 ! #define SCE_SCRIPTOL_PERSISTENT 3 ! #define SCE_SCRIPTOL_CSTYLE 4 ! #define SCE_SCRIPTOL_COMMENTBLOCK 5 ! #define SCE_SCRIPTOL_NUMBER 6 ! #define SCE_SCRIPTOL_STRING 7 ! #define SCE_SCRIPTOL_CHARACTER 8 ! #define SCE_SCRIPTOL_STRINGEOL 9 ! #define SCE_SCRIPTOL_KEYWORD 10 ! #define SCE_SCRIPTOL_OPERATOR 11 ! #define SCE_SCRIPTOL_IDENTIFIER 12 ! #define SCE_SCRIPTOL_TRIPLE 13 ! #define SCE_SCRIPTOL_CLASSNAME 14 ! #define SCE_SCRIPTOL_PREPROCESSOR 15 ! #define SCE_ASM_DEFAULT 0 ! #define SCE_ASM_COMMENT 1 ! #define SCE_ASM_NUMBER 2 ! #define SCE_ASM_STRING 3 ! #define SCE_ASM_OPERATOR 4 ! #define SCE_ASM_IDENTIFIER 5 ! #define SCE_ASM_CPUINSTRUCTION 6 ! #define SCE_ASM_MATHINSTRUCTION 7 ! #define SCE_ASM_REGISTER 8 ! #define SCE_ASM_DIRECTIVE 9 ! #define SCE_ASM_DIRECTIVEOPERAND 10 ! #define SCE_ASM_COMMENTBLOCK 11 ! #define SCE_ASM_CHARACTER 12 ! #define SCE_ASM_STRINGEOL 13 ! #define SCE_ASM_EXTINSTRUCTION 14 ! #define SCE_F_DEFAULT 0 ! #define SCE_F_COMMENT 1 ! #define SCE_F_NUMBER 2 ! #define SCE_F_STRING1 3 ! #define SCE_F_STRING2 4 ! #define SCE_F_STRINGEOL 5 ! #define SCE_F_OPERATOR 6 ! #define SCE_F_IDENTIFIER 7 ! #define SCE_F_WORD 8 ! #define SCE_F_WORD2 9 ! #define SCE_F_WORD3 10 ! #define SCE_F_PREPROCESSOR 11 ! #define SCE_F_OPERATOR2 12 ! #define SCE_F_LABEL 13 ! #define SCE_F_CONTINUATION 14 ! #define SCE_CSS_DEFAULT 0 ! #define SCE_CSS_TAG 1 ! #define SCE_CSS_CLASS 2 ! #define SCE_CSS_PSEUDOCLASS 3 ! #define SCE_CSS_UNKNOWN_PSEUDOCLASS 4 ! #define SCE_CSS_OPERATOR 5 ! #define SCE_CSS_IDENTIFIER 6 ! #define SCE_CSS_UNKNOWN_IDENTIFIER 7 ! #define SCE_CSS_VALUE 8 ! #define SCE_CSS_COMMENT 9 ! #define SCE_CSS_ID 10 ! #define SCE_CSS_IMPORTANT 11 ! #define SCE_CSS_DIRECTIVE 12 ! #define SCE_CSS_DOUBLESTRING 13 ! #define SCE_CSS_SINGLESTRING 14 ! #define SCE_POV_DEFAULT 0 ! #define SCE_POV_COMMENT 1 ! #define SCE_POV_COMMENTLINE 2 ! #define SCE_POV_NUMBER 3 ! #define SCE_POV_OPERATOR 4 ! #define SCE_POV_IDENTIFIER 5 ! #define SCE_POV_STRING 6 ! #define SCE_POV_STRINGEOL 7 ! #define SCE_POV_DIRECTIVE 8 ! #define SCE_POV_BADDIRECTIVE 9 ! #define SCE_POV_WORD2 10 ! #define SCE_POV_WORD3 11 ! #define SCE_POV_WORD4 12 ! #define SCE_POV_WORD5 13 ! #define SCE_POV_WORD6 14 ! #define SCE_POV_WORD7 15 ! #define SCE_POV_WORD8 16 ! #define SCE_LOUT_DEFAULT 0 ! #define SCE_LOUT_COMMENT 1 ! #define SCE_LOUT_NUMBER 2 ! #define SCE_LOUT_WORD 3 ! #define SCE_LOUT_WORD2 4 ! #define SCE_LOUT_WORD3 5 ! #define SCE_LOUT_WORD4 6 ! #define SCE_LOUT_STRING 7 ! #define SCE_LOUT_OPERATOR 8 ! #define SCE_LOUT_IDENTIFIER 9 ! #define SCE_LOUT_STRINGEOL 10 ! #define SCE_ESCRIPT_DEFAULT 0 ! #define SCE_ESCRIPT_COMMENT 1 ! #define SCE_ESCRIPT_COMMENTLINE 2 ! #define SCE_ESCRIPT_COMMENTDOC 3 ! #define SCE_ESCRIPT_NUMBER 4 ! #define SCE_ESCRIPT_WORD 5 ! #define SCE_ESCRIPT_STRING 6 ! #define SCE_ESCRIPT_OPERATOR 7 ! #define SCE_ESCRIPT_IDENTIFIER 8 ! #define SCE_ESCRIPT_BRACE 9 ! #define SCE_ESCRIPT_WORD2 10 ! #define SCE_ESCRIPT_WORD3 11 ! #define SCE_PS_DEFAULT 0 ! #define SCE_PS_COMMENT 1 ! #define SCE_PS_DSC_COMMENT 2 ! #define SCE_PS_DSC_VALUE 3 ! #define SCE_PS_NUMBER 4 ! #define SCE_PS_NAME 5 ! #define SCE_PS_KEYWORD 6 ! #define SCE_PS_LITERAL 7 ! #define SCE_PS_IMMEVAL 8 ! #define SCE_PS_PAREN_ARRAY 9 ! #define SCE_PS_PAREN_DICT 10 ! #define SCE_PS_PAREN_PROC 11 ! #define SCE_PS_TEXT 12 ! #define SCE_PS_HEXSTRING 13 ! #define SCE_PS_BASE85STRING 14 ! #define SCE_PS_BADSTRINGCHAR 15 ! #define SCE_NSIS_DEFAULT 0 ! #define SCE_NSIS_COMMENT 1 ! #define SCE_NSIS_STRINGDQ 2 ! #define SCE_NSIS_STRINGLQ 3 ! #define SCE_NSIS_STRINGRQ 4 ! #define SCE_NSIS_FUNCTION 5 ! #define SCE_NSIS_VARIABLE 6 ! #define SCE_NSIS_LABEL 7 ! #define SCE_NSIS_USERDEFINED 8 ! #define SCE_NSIS_SECTIONDEF 9 ! #define SCE_NSIS_SUBSECTIONDEF 10 ! #define SCE_NSIS_IFDEFINEDEF 11 ! #define SCE_NSIS_MACRODEF 12 ! #define SCE_NSIS_STRINGVAR 13 ! #define SCE_MMIXAL_LEADWS 0 ! #define SCE_MMIXAL_COMMENT 1 ! #define SCE_MMIXAL_LABEL 2 ! #define SCE_MMIXAL_OPCODE 3 ! #define SCE_MMIXAL_OPCODE_PRE 4 ! #define SCE_MMIXAL_OPCODE_VALID 5 ! #define SCE_MMIXAL_OPCODE_UNKNOWN 6 ! #define SCE_MMIXAL_OPCODE_POST 7 ! #define SCE_MMIXAL_OPERANDS 8 ! #define SCE_MMIXAL_NUMBER 9 ! #define SCE_MMIXAL_REF 10 ! #define SCE_MMIXAL_CHAR 11 ! #define SCE_MMIXAL_STRING 12 ! #define SCE_MMIXAL_REGISTER 13 ! #define SCE_MMIXAL_HEX 14 ! #define SCE_MMIXAL_OPERATOR 15 ! #define SCE_MMIXAL_SYMBOL 16 ! #define SCE_MMIXAL_INCLUDE 17 ! #define SCE_CLW_DEFAULT 0 ! #define SCE_CLW_LABEL 1 ! #define SCE_CLW_COMMENT 2 ! #define SCE_CLW_STRING 3 ! #define SCE_CLW_USER_IDENTIFIER 4 ! #define SCE_CLW_INTEGER_CONSTANT 5 ! #define SCE_CLW_REAL_CONSTANT 6 ! #define SCE_CLW_PICTURE_STRING 7 ! #define SCE_CLW_KEYWORD 8 ! #define SCE_CLW_COMPILER_DIRECTIVE 9 ! #define SCE_CLW_BUILTIN_PROCEDURES_FUNCTION 10 ! #define SCE_CLW_STRUCTURE_DATA_TYPE 11 ! #define SCE_CLW_ATTRIBUTE 12 ! #define SCE_CLW_STANDARD_EQUATE 13 ! #define SCE_CLW_ERROR 14 ! #define SCE_LOT_DEFAULT 0 ! #define SCE_LOT_HEADER 1 ! #define SCE_LOT_BREAK 2 ! #define SCE_LOT_SET 3 ! #define SCE_LOT_PASS 4 ! #define SCE_LOT_FAIL 5 ! #define SCE_LOT_ABORT 6 ! #define SCE_YAML_DEFAULT 0 ! #define SCE_YAML_COMMENT 1 ! #define SCE_YAML_IDENTIFIER 2 ! #define SCE_YAML_KEYWORD 3 ! #define SCE_YAML_NUMBER 4 ! #define SCE_YAML_REFERENCE 5 ! #define SCE_YAML_DOCUMENT 6 ! #define SCE_YAML_TEXT 7 ! #define SCE_YAML_ERROR 8 ! #define SCE_TEX_DEFAULT 0 ! #define SCE_TEX_SPECIAL 1 ! #define SCE_TEX_GROUP 2 ! #define SCE_TEX_SYMBOL 3 ! #define SCE_TEX_COMMAND 4 ! #define SCE_TEX_TEXT 5 ! #define SCE_METAPOST_DEFAULT 0 ! #define SCE_METAPOST_SPECIAL 1 ! #define SCE_METAPOST_GROUP 2 ! #define SCE_METAPOST_SYMBOL 3 ! #define SCE_METAPOST_COMMAND 4 ! #define SCE_METAPOST_TEXT 5 ! #define SCE_METAPOST_EXTRA 6 ! #define SCE_ERLANG_DEFAULT 0 ! #define SCE_ERLANG_COMMENT 1 ! #define SCE_ERLANG_VARIABLE 2 ! #define SCE_ERLANG_NUMBER 3 ! #define SCE_ERLANG_KEYWORD 4 ! #define SCE_ERLANG_STRING 5 ! #define SCE_ERLANG_OPERATOR 6 ! #define SCE_ERLANG_ATOM 7 ! #define SCE_ERLANG_FUNCTION_NAME 8 ! #define SCE_ERLANG_CHARACTER 9 ! #define SCE_ERLANG_MACRO 10 ! #define SCE_ERLANG_RECORD 11 ! #define SCE_ERLANG_SEPARATOR 12 ! #define SCE_ERLANG_NODE_NAME 13 ! #define SCE_ERLANG_UNKNOWN 31 //--Autogenerated -- end of section automatically generated from Scintilla.iface Index: Scintilla.h =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/include/Scintilla.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Scintilla.h 4 Oct 2002 12:50:02 -0000 1.13 --- Scintilla.h 25 Nov 2003 10:45:20 -0000 1.14 *************** *** 3,7 **** ** Interface to the edit control. **/ ! // Copyright 1998-2002 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. --- 3,7 ---- ** Interface to the edit control. **/ ! // Copyright 1998-2003 by Neil Hodgson <ne...@sc...> // The License.txt file describes the conditions under which this software may be distributed. *************** *** 84,87 **** --- 84,88 ---- #define SCI_GETTABWIDTH 2121 #define SC_CP_UTF8 65001 + #define SC_CP_DBCS 1 #define SCI_SETCODEPAGE 2037 #define SCI_SETUSEPALETTE 2039 *************** *** 112,115 **** --- 113,117 ---- #define SC_MARK_DOTDOTDOT 23 #define SC_MARK_ARROWS 24 + #define SC_MARK_PIXMAP 25 #define SC_MARK_CHARACTER 10000 #define SC_MARKNUM_FOLDEREND 25 *************** *** 130,133 **** --- 132,136 ---- #define SCI_MARKERNEXT 2047 #define SCI_MARKERPREVIOUS 2048 + #define SCI_MARKERDEFINEPIXMAP 2049 #define SC_MARGIN_SYMBOL 0 #define SC_MARGIN_NUMBER 1 *************** *** 182,185 **** --- 185,189 ---- #define SCI_STYLESETCASE 2060 #define SCI_STYLESETCHARACTERSET 2066 + #define SCI_STYLESETHOTSPOT 2409 #define SCI_SETSELFORE 2067 #define SCI_SETSELBACK 2068 *************** *** 201,204 **** --- 205,210 ---- #define INDIC_DIAGONAL 3 #define INDIC_STRIKE 4 + #define INDIC_HIDDEN 5 + #define INDIC_BOX 6 #define INDIC0_MASK 0x20 #define INDIC1_MASK 0x40 *************** *** 242,245 **** --- 248,255 ---- #define SCI_AUTOCSETDROPRESTOFWORD 2270 #define SCI_AUTOCGETDROPRESTOFWORD 2271 + #define SCI_REGISTERIMAGE 2405 + #define SCI_CLEARREGISTEREDIMAGES 2408 + #define SCI_AUTOCGETTYPESEPARATOR 2285 + #define SCI_AUTOCSETTYPESEPARATOR 2286 #define SCI_SETINDENT 2122 #define SCI_GETINDENT 2123 *************** *** 279,282 **** --- 289,293 ---- #define SCFIND_WORDSTART 0x00100000 #define SCFIND_REGEXP 0x00200000 + #define SCFIND_POSIX 0x00400000 #define SCI_FINDTEXT 2150 #define SCI_FORMATRANGE 2151 *************** *** 334,337 **** --- 345,350 ---- #define SCI_CALLTIPSETHLT 2204 #define SCI_CALLTIPSETBACK 2205 + #define SCI_CALLTIPSETFORE 2206 + #define SCI_CALLTIPSETFOREHLT 2207 #define SCI_VISIBLEFROMDOCLINE 2220 #define SCI_DOCLINEFROMVISIBLE 2221 *************** *** 339,342 **** --- 352,359 ---- #define SC_FOLDLEVELWHITEFLAG 0x1000 #define SC_FOLDLEVELHEADERFLAG 0x2000 + #define SC_FOLDLEVELBOXHEADERFLAG 0x4000 + #define SC_FOLDLEVELBOXFOOTERFLAG 0x8000 + #define SC_FOLDLEVELCONTRACTED 0x10000 + #define SC_FOLDLEVELUNINDENT 0x20000 #define SC_FOLDLEVELNUMBERMASK 0x0FFF #define SCI_SETFOLDLEVEL 2222 *************** *** 351,354 **** --- 368,377 ---- #define SCI_TOGGLEFOLD 2231 #define SCI_ENSUREVISIBLE 2232 + #define SC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 + #define SC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 + #define SC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 + #define SC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 + #define SC_FOLDFLAG_LEVELNUMBERS 0x0040 + #define SC_FOLDFLAG_BOX 0x0001 #define SCI_SETFOLDFLAGS 2233 #define SCI_ENSUREVISIBLEENFORCEPOLICY 2234 *************** *** 378,381 **** --- 401,414 ---- #define SCI_GETENDATLASTLINE 2278 #define SCI_TEXTHEIGHT 2279 + #define SCI_SETVSCROLLBAR 2280 + #define SCI_GETVSCROLLBAR 2281 + #define SCI_APPENDTEXT 2282 + #define SCI_GETTWOPHASEDRAW 2283 + #define SCI_SETTWOPHASEDRAW 2284 + #define SCI_TARGETFROMSELECTION 2287 + #define SCI_LINESJOIN 2288 + #define SCI_LINESSPLIT 2289 + #define SCI_SETFOLDMARGINCOLOUR 2290 + #define SCI_SETFOLDMARGINHICOLOUR 2291 #define SCI_LINEDOWN 2300 #define SCI_LINEDOWNEXTEND 2301 *************** *** 418,421 **** --- 451,455 ---- #define SCI_LINEDELETE 2338 #define SCI_LINETRANSPOSE 2339 + #define SCI_LINEDUPLICATE 2404 #define SCI_LOWERCASE 2340 #define SCI_UPPERCASE 2341 *************** *** 427,430 **** --- 461,471 ---- #define SCI_LINEENDDISPLAY 2347 #define SCI_LINEENDDISPLAYEXTEND 2348 + #define SCI_HOMEWRAP 2349 + #define SCI_HOMEWRAPEXTEND 2450 + #define SCI_LINEENDWRAP 2451 + #define SCI_LINEENDWRAPEXTEND 2452 + #define SCI_VCHOMEWRAP 2453 + #define SCI_VCHOMEWRAPEXTEND 2454 + #define SCI_LINECOPY 2455 #define SCI_MOVECARETINSIDEVIEW 2401 #define SCI_LINELENGTH 2350 *************** *** 465,469 **** #define SCI_GETMOUSEDOWNCAPTURES 2385 #define SC_CURSORNORMAL -1 ! #define SC_CURSORWAIT 3 #define SCI_SETCURSOR 2386 #define SCI_GETCURSOR 2387 --- 506,510 ---- #define SCI_GETMOUSEDOWNCAPTURES 2385 #define SC_CURSORNORMAL -1 ! #define SC_CURSORWAIT 4 #define SCI_SETCURSOR 2386 #define SCI_GETCURSOR 2387 *************** *** 481,484 **** --- 522,526 ---- #define SCI_SETXOFFSET 2397 #define SCI_GETXOFFSET 2398 + #define SCI_CHOOSECARETX 2399 #define SCI_GRABFOCUS 2400 #define CARET_SLOP 0x01 *************** *** 488,491 **** --- 530,573 ---- #define SCI_SETXCARETPOLICY 2402 #define SCI_SETYCARETPOLICY 2403 + #define SCI_SETPRINTWRAPMODE 2406 + #define SCI_GETPRINTWRAPMODE 2407 + #define SCI_SETHOTSPOTACTIVEFORE 2410 + #define SCI_SETHOTSPOTACTIVEBACK 2411 + #define SCI_SETHOTSPOTACTIVEUNDERLINE 2412 + #define SCI_SETHOTSPOTSINGLELINE 2421 + #define SCI_PARADOWN 2413 + #define SCI_PARADOWNEXTEND 2414 + #define SCI_PARAUP 2415 + #define SCI_PARAUPEXTEND 2416 + #define SCI_POSITIONBEFORE 2417 + #define SCI_POSITIONAFTER 2418 + #define SCI_COPYRANGE 2419 + #define SCI_COPYTEXT 2420 + #define SC_SEL_STREAM 0 + #define SC_SEL_RECTANGLE 1 + #define SC_SEL_LINES 2 + #define SCI_SETSELECTIONMODE 2422 + #define SCI_GETSELECTIONMODE 2423 + #define SCI_GETLINESELSTARTPOSITION 2424 + #define SCI_GETLINESELENDPOSITION 2425 + #define SCI_LINEDOWNRECTEXTEND 2426 + #define SCI_LINEUPRECTEXTEND 2427 + #define SCI_CHARLEFTRECTEXTEND 2428 + #define SCI_CHARRIGHTRECTEXTEND 2429 + #define SCI_HOMERECTEXTEND 2430 + #define SCI_VCHOMERECTEXTEND 2431 + #define SCI_LINEENDRECTEXTEND 2432 + #define SCI_PAGEUPRECTEXTEND 2433 + #define SCI_PAGEDOWNRECTEXTEND 2434 + #define SCI_STUTTEREDPAGEUP 2435 + #define SCI_STUTTEREDPAGEUPEXTEND 2436 + #define SCI_STUTTEREDPAGEDOWN 2437 + #define SCI_STUTTEREDPAGEDOWNEXTEND 2438 + #define SCI_WORDLEFTEND 2439 + #define SCI_WORDLEFTENDEXTEND 2440 + #define SCI_WORDRIGHTEND 2441 + #define SCI_WORDRIGHTENDEXTEND 2442 + #define SCI_SETWHITESPACECHARS 2443 + #define SCI_SETCHARSDEFAULT 2444 #define SCI_STARTRECORD 3001 #define SCI_STOPRECORD 3002 *************** *** 494,499 **** --- 576,583 ---- #define SCI_COLOURISE 4003 #define SCI_SETPROPERTY 4004 + #define KEYWORDSET_MAX 8 #define SCI_SETKEYWORDS 4005 #define SCI_SETLEXERLANGUAGE 4006 + #define SCI_LOADLEXERLIBRARY 4007 #define SC_MOD_INSERTTEXT 0x1 #define SC_MOD_DELETETEXT 0x2 *************** *** 549,552 **** --- 633,639 ---- #define SCN_DWELLEND 2017 #define SCN_ZOOM 2018 + #define SCN_HOTSPOTCLICK 2019 + #define SCN_HOTSPOTDOUBLECLICK 2020 + #define SCN_CALLTIPCLICK 2021 //--Autogenerated -- end of section automatically generated from Scintilla.iface |
From: <mha...@us...> - 2003-11-25 11:01:29
|
Update of /cvsroot/pywin32/pywin32/Pythonwin/Scintilla In directory sc8-pr-cvs1:/tmp/cvs-serv12826 Modified Files: License.txt README Log Message: New scintilla version. Index: License.txt =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/License.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** License.txt 15 Apr 2002 15:11:50 -0000 1.3 --- License.txt 25 Nov 2003 10:45:20 -0000 1.4 *************** *** 1,5 **** License for Scintilla and SciTE ! Copyright 1998-2002 by Neil Hodgson <ne...@sc...> All Rights Reserved --- 1,5 ---- License for Scintilla and SciTE ! Copyright 1998-2003 by Neil Hodgson <ne...@sc...> All Rights Reserved Index: README =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/Scintilla/README,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** README 2 Aug 2002 12:53:10 -0000 1.8 --- README 25 Nov 2003 10:45:20 -0000 1.9 *************** *** 7,11 **** *** GTK+/Linux version *** ! You must first have GTK+ 1.2x and GCC (2.8 or better) installed. GTK+ 1.0x will not work and when it did it was very slow. Other C++ compilers may work but may require tweaking the make file. --- 7,11 ---- *** GTK+/Linux version *** ! You must first have GTK+ 1.2 or later and GCC (3.1 or better) installed. GTK+ 1.0x will not work and when it did it was very slow. Other C++ compilers may work but may require tweaking the make file. *************** *** 15,19 **** make cd ../.. ! To build and install SciTE, use the makefile located in the scite/gtk directory cd scite/gtk --- 15,19 ---- make cd ../.. ! To build and install SciTE, use the makefile located in the scite/gtk directory cd scite/gtk *************** *** 22,46 **** This installs SciTE into $prefix/bin. The value of $prefix is determined from ! the location of Gnome if it is installed. This is usually /usr if installed ! with Linux or /usr/local if built from source. If Gnome is not installed ! /usr/bin is used as the prefix. The prefix can be overridden on the command ! line like "make prefix=/opt" but the same value should be used for both make ! and make install as this location is compiled into the executable. The global properties file is installed at $prefix/share/scite/SciTEGlobal.properties. The language specific properties files are also installed into this directory. ! If Gnome is installed then a .desktop file and icon are installed into the ! correct Gnome places so that SciTE will be in the Gnome Applications menu. ! ! To build Scintilla for GTK+ 2, define GTK2 on the make command line: ! make GTK2=1 ! SciTE does not support GTK+ 2. To remove SciTE make uninstall ! To clean the object files which may be needed to change $prefix make clean ! The current make file only supports static linking between SciTE and Scintilla. --- 22,43 ---- This installs SciTE into $prefix/bin. The value of $prefix is determined from ! the location of Gnome if it is installed. This is usually /usr if installed ! with Linux or /usr/local if built from source. If Gnome is not installed ! /usr/bin is used as the prefix. The prefix can be overridden on the command ! line like "make prefix=/opt" but the same value should be used for both make ! and make install as this location is compiled into the executable. The global properties file is installed at $prefix/share/scite/SciTEGlobal.properties. The language specific properties files are also installed into this directory. ! To build Scintilla for GTK+ 1 rather than the default GTK+ 2, define GTK1 on ! the make command line: ! make GTK1=1 To remove SciTE make uninstall ! To clean the object files which may be needed to change $prefix make clean ! The current make file only supports static linking between SciTE and Scintilla. *************** *** 48,67 **** *** Windows version *** ! A C++ compiler is required. Mingw32 GCC 2.95.3 is the compiler used ! for most development although Visual C++ and Borland C++ are also supported. ! For older versions of Borland make such as version 5.02, add the -l option. To build Scintilla, make in the scintilla/win32 directory cd scintilla\win32 ! GCC: make ! VC++: nmake -f scintilla.mak Borland: make -fscintilla.mak cd ..\.. ! To build SciTE, use the makefiles located in the scite/win32 directory cd scite\win32 ! GCC: make ! VC++: nmake -f scite.mak Borland: make -fscite.mak ! An executable SciTE will now be in scite\bin. \ No newline at end of file --- 45,69 ---- *** Windows version *** ! A C++ compiler is required. Visual Studio .NET 2003 is the development system ! used for most development although Mingw32 3.1 and Borland C++ are also ! supported. ! For older versions of Borland make such as version 5.02, add the -l option. To build Scintilla, make in the scintilla/win32 directory cd scintilla\win32 ! GCC: mingw32-make ! VS .NET: nmake -f scintilla.mak ! VC++ 6: nmake -f scintilla_vc6.mak Borland: make -fscintilla.mak cd ..\.. ! To build SciTE, use the makefiles located in the scite/win32 directory cd scite\win32 ! GCC: mingw32-make ! VS .NET: nmake -f scite.mak Borland: make -fscite.mak ! An executable SciTE will now be in scite\bin. ! ! The Visual C++ 6.0 project (.dsp) files are no longer supported but are left ! in the download for people that are prepared to update them. |
From: <mha...@us...> - 2003-11-25 11:01:28
|
Update of /cvsroot/pywin32/pywin32/Pythonwin/pywin/scintilla In directory sc8-pr-cvs1:/tmp/cvs-serv13376 Modified Files: scintillacon.py Log Message: New scintilla version. Index: scintillacon.py =================================================================== RCS file: /cvsroot/pywin32/pywin32/Pythonwin/pywin/scintilla/scintillacon.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** scintillacon.py 2 Jul 2003 04:10:18 -0000 1.15 --- scintillacon.py 25 Nov 2003 10:46:07 -0000 1.16 *************** *** 58,61 **** --- 58,62 ---- SCI_GETTABWIDTH = 2121 SC_CP_UTF8 = 65001 + SC_CP_DBCS = 1 SCI_SETCODEPAGE = 2037 SCI_SETUSEPALETTE = 2039 *************** *** 86,89 **** --- 87,91 ---- SC_MARK_DOTDOTDOT = 23 SC_MARK_ARROWS = 24 + SC_MARK_PIXMAP = 25 SC_MARK_CHARACTER = 10000 SC_MARKNUM_FOLDEREND = 25 *************** *** 104,107 **** --- 106,110 ---- SCI_MARKERNEXT = 2047 SCI_MARKERPREVIOUS = 2048 + SCI_MARKERDEFINEPIXMAP = 2049 SC_MARGIN_SYMBOL = 0 SC_MARGIN_NUMBER = 1 *************** *** 156,159 **** --- 159,163 ---- SCI_STYLESETCASE = 2060 SCI_STYLESETCHARACTERSET = 2066 + SCI_STYLESETHOTSPOT = 2409 SCI_SETSELFORE = 2067 SCI_SETSELBACK = 2068 *************** *** 175,178 **** --- 179,184 ---- INDIC_DIAGONAL = 3 INDIC_STRIKE = 4 + INDIC_HIDDEN = 5 + INDIC_BOX = 6 INDIC0_MASK = 0x20 INDIC1_MASK = 0x40 *************** *** 216,219 **** --- 222,229 ---- SCI_AUTOCSETDROPRESTOFWORD = 2270 SCI_AUTOCGETDROPRESTOFWORD = 2271 + SCI_REGISTERIMAGE = 2405 + SCI_CLEARREGISTEREDIMAGES = 2408 + SCI_AUTOCGETTYPESEPARATOR = 2285 + SCI_AUTOCSETTYPESEPARATOR = 2286 SCI_SETINDENT = 2122 SCI_GETINDENT = 2123 *************** *** 253,256 **** --- 263,267 ---- SCFIND_WORDSTART = 0x00100000 SCFIND_REGEXP = 0x00200000 + SCFIND_POSIX = 0x00400000 SCI_FINDTEXT = 2150 SCI_FORMATRANGE = 2151 *************** *** 308,311 **** --- 319,324 ---- SCI_CALLTIPSETHLT = 2204 SCI_CALLTIPSETBACK = 2205 + SCI_CALLTIPSETFORE = 2206 + SCI_CALLTIPSETFOREHLT = 2207 SCI_VISIBLEFROMDOCLINE = 2220 SCI_DOCLINEFROMVISIBLE = 2221 *************** *** 313,316 **** --- 326,333 ---- SC_FOLDLEVELWHITEFLAG = 0x1000 SC_FOLDLEVELHEADERFLAG = 0x2000 + SC_FOLDLEVELBOXHEADERFLAG = 0x4000 + SC_FOLDLEVELBOXFOOTERFLAG = 0x8000 + SC_FOLDLEVELCONTRACTED = 0x10000 + SC_FOLDLEVELUNINDENT = 0x20000 SC_FOLDLEVELNUMBERMASK = 0x0FFF SCI_SETFOLDLEVEL = 2222 *************** *** 325,328 **** --- 342,351 ---- SCI_TOGGLEFOLD = 2231 SCI_ENSUREVISIBLE = 2232 + SC_FOLDFLAG_LINEBEFORE_EXPANDED = 0x0002 + SC_FOLDFLAG_LINEBEFORE_CONTRACTED = 0x0004 + SC_FOLDFLAG_LINEAFTER_EXPANDED = 0x0008 + SC_FOLDFLAG_LINEAFTER_CONTRACTED = 0x0010 + SC_FOLDFLAG_LEVELNUMBERS = 0x0040 + SC_FOLDFLAG_BOX = 0x0001 SCI_SETFOLDFLAGS = 2233 SCI_ENSUREVISIBLEENFORCEPOLICY = 2234 *************** *** 352,355 **** --- 375,388 ---- SCI_GETENDATLASTLINE = 2278 SCI_TEXTHEIGHT = 2279 + SCI_SETVSCROLLBAR = 2280 + SCI_GETVSCROLLBAR = 2281 + SCI_APPENDTEXT = 2282 + SCI_GETTWOPHASEDRAW = 2283 + SCI_SETTWOPHASEDRAW = 2284 + SCI_TARGETFROMSELECTION = 2287 + SCI_LINESJOIN = 2288 + SCI_LINESSPLIT = 2289 + SCI_SETFOLDMARGINCOLOUR = 2290 + SCI_SETFOLDMARGINHICOLOUR = 2291 SCI_LINEDOWN = 2300 SCI_LINEDOWNEXTEND = 2301 *************** *** 392,395 **** --- 425,429 ---- SCI_LINEDELETE = 2338 SCI_LINETRANSPOSE = 2339 + SCI_LINEDUPLICATE = 2404 SCI_LOWERCASE = 2340 SCI_UPPERCASE = 2341 *************** *** 401,404 **** --- 435,445 ---- SCI_LINEENDDISPLAY = 2347 SCI_LINEENDDISPLAYEXTEND = 2348 + SCI_HOMEWRAP = 2349 + SCI_HOMEWRAPEXTEND = 2450 + SCI_LINEENDWRAP = 2451 + SCI_LINEENDWRAPEXTEND = 2452 + SCI_VCHOMEWRAP = 2453 + SCI_VCHOMEWRAPEXTEND = 2454 + SCI_LINECOPY = 2455 SCI_MOVECARETINSIDEVIEW = 2401 SCI_LINELENGTH = 2350 *************** *** 439,443 **** SCI_GETMOUSEDOWNCAPTURES = 2385 SC_CURSORNORMAL = -1 ! SC_CURSORWAIT = 3 SCI_SETCURSOR = 2386 SCI_GETCURSOR = 2387 --- 480,484 ---- SCI_GETMOUSEDOWNCAPTURES = 2385 SC_CURSORNORMAL = -1 ! SC_CURSORWAIT = 4 SCI_SETCURSOR = 2386 SCI_GETCURSOR = 2387 *************** *** 455,458 **** --- 496,500 ---- SCI_SETXOFFSET = 2397 SCI_GETXOFFSET = 2398 + SCI_CHOOSECARETX = 2399 SCI_GRABFOCUS = 2400 CARET_SLOP = 0x01 *************** *** 462,465 **** --- 504,547 ---- SCI_SETXCARETPOLICY = 2402 SCI_SETYCARETPOLICY = 2403 + SCI_SETPRINTWRAPMODE = 2406 + SCI_GETPRINTWRAPMODE = 2407 + SCI_SETHOTSPOTACTIVEFORE = 2410 + SCI_SETHOTSPOTACTIVEBACK = 2411 + SCI_SETHOTSPOTACTIVEUNDERLINE = 2412 + SCI_SETHOTSPOTSINGLELINE = 2421 + SCI_PARADOWN = 2413 + SCI_PARADOWNEXTEND = 2414 + SCI_PARAUP = 2415 + SCI_PARAUPEXTEND = 2416 + SCI_POSITIONBEFORE = 2417 + SCI_POSITIONAFTER = 2418 + SCI_COPYRANGE = 2419 + SCI_COPYTEXT = 2420 + SC_SEL_STREAM = 0 + SC_SEL_RECTANGLE = 1 + SC_SEL_LINES = 2 + SCI_SETSELECTIONMODE = 2422 + SCI_GETSELECTIONMODE = 2423 + SCI_GETLINESELSTARTPOSITION = 2424 + SCI_GETLINESELENDPOSITION = 2425 + SCI_LINEDOWNRECTEXTEND = 2426 + SCI_LINEUPRECTEXTEND = 2427 + SCI_CHARLEFTRECTEXTEND = 2428 + SCI_CHARRIGHTRECTEXTEND = 2429 + SCI_HOMERECTEXTEND = 2430 + SCI_VCHOMERECTEXTEND = 2431 + SCI_LINEENDRECTEXTEND = 2432 + SCI_PAGEUPRECTEXTEND = 2433 + SCI_PAGEDOWNRECTEXTEND = 2434 + SCI_STUTTEREDPAGEUP = 2435 + SCI_STUTTEREDPAGEUPEXTEND = 2436 + SCI_STUTTEREDPAGEDOWN = 2437 + SCI_STUTTEREDPAGEDOWNEXTEND = 2438 + SCI_WORDLEFTEND = 2439 + SCI_WORDLEFTENDEXTEND = 2440 + SCI_WORDRIGHTEND = 2441 + SCI_WORDRIGHTENDEXTEND = 2442 + SCI_SETWHITESPACECHARS = 2443 + SCI_SETCHARSDEFAULT = 2444 SCI_STARTRECORD = 3001 SCI_STOPRECORD = 3002 *************** *** 468,473 **** --- 550,557 ---- SCI_COLOURISE = 4003 SCI_SETPROPERTY = 4004 + KEYWORDSET_MAX = 8 SCI_SETKEYWORDS = 4005 SCI_SETLEXERLANGUAGE = 4006 + SCI_LOADLEXERLIBRARY = 4007 SC_MOD_INSERTTEXT = 0x1 SC_MOD_DELETETEXT = 0x2 *************** *** 523,526 **** --- 607,613 ---- SCN_DWELLEND = 2017 SCN_ZOOM = 2018 + SCN_HOTSPOTCLICK = 2019 + SCN_HOTSPOTDOUBLECLICK = 2020 + SCN_CALLTIPCLICK = 2021 SCI_SETCARETPOLICY = 2369 CARET_CENTER = 0x02 *************** *** 564,567 **** --- 651,674 ---- SCLEX_MATLAB = 32 SCLEX_SCRIPTOL = 33 + SCLEX_ASM = 34 + SCLEX_CPPNOCASE = 35 + SCLEX_FORTRAN = 36 + SCLEX_F77 = 37 + SCLEX_CSS = 38 + SCLEX_POV = 39 + SCLEX_LOUT = 40 + SCLEX_ESCRIPT = 41 + SCLEX_PS = 42 + SCLEX_NSIS = 43 + SCLEX_MMIXAL = 44 + SCLEX_CLW = 45 + SCLEX_CLWNOCASE = 46 + SCLEX_LOT = 47 + SCLEX_YAML = 48 + SCLEX_TEX = 49 + SCLEX_METAPOST = 50 + SCLEX_POWERBASIC = 51 + SCLEX_FORTH = 52 + SCLEX_ERLANG = 53 SCLEX_AUTOMATIC = 1000 SCE_P_DEFAULT = 0 *************** *** 598,601 **** --- 705,709 ---- SCE_C_COMMENTDOCKEYWORD = 17 SCE_C_COMMENTDOCKEYWORDERROR = 18 + SCE_C_GLOBALCLASS = 19 SCE_H_DEFAULT = 0 SCE_H_TAG = 1 *************** *** 775,778 **** --- 883,888 ---- SCE_LUA_WORD5 = 16 SCE_LUA_WORD6 = 17 + SCE_LUA_WORD7 = 18 + SCE_LUA_WORD8 = 19 SCE_ERR_DEFAULT = 0 SCE_ERR_PYTHON = 1 *************** *** 789,792 **** --- 899,905 ---- SCE_ERR_DIFF_DELETION = 12 SCE_ERR_DIFF_MESSAGE = 13 + SCE_ERR_PHP = 14 + SCE_ERR_ELF = 15 + SCE_ERR_IFC = 16 SCE_BAT_DEFAULT = 0 SCE_BAT_COMMENT = 1 *************** *** 825,830 **** SCE_AVE_NUMBER = 2 SCE_AVE_WORD = 3 - SCE_AVE_KEYWORD = 4 - SCE_AVE_STATEMENT = 5 SCE_AVE_STRING = 6 SCE_AVE_ENUM = 7 --- 938,941 ---- *************** *** 832,844 **** SCE_AVE_IDENTIFIER = 9 SCE_AVE_OPERATOR = 10 SCE_ADA_DEFAULT = 0 ! SCE_ADA_COMMENT = 1 ! SCE_ADA_NUMBER = 2 ! SCE_ADA_WORD = 3 ! SCE_ADA_STRING = 4 SCE_ADA_CHARACTER = 5 ! SCE_ADA_OPERATOR = 6 ! SCE_ADA_IDENTIFIER = 7 SCE_ADA_STRINGEOL = 8 SCE_BAAN_DEFAULT = 0 SCE_BAAN_COMMENT = 1 --- 943,964 ---- SCE_AVE_IDENTIFIER = 9 SCE_AVE_OPERATOR = 10 + SCE_AVE_WORD1 = 11 + SCE_AVE_WORD2 = 12 + SCE_AVE_WORD3 = 13 + SCE_AVE_WORD4 = 14 + SCE_AVE_WORD5 = 15 + SCE_AVE_WORD6 = 16 SCE_ADA_DEFAULT = 0 ! SCE_ADA_WORD = 1 ! SCE_ADA_IDENTIFIER = 2 ! SCE_ADA_NUMBER = 3 ! SCE_ADA_DELIMITER = 4 SCE_ADA_CHARACTER = 5 ! SCE_ADA_CHARACTEREOL = 6 ! SCE_ADA_STRING = 7 SCE_ADA_STRINGEOL = 8 + SCE_ADA_LABEL = 9 + SCE_ADA_COMMENTLINE = 10 + SCE_ADA_ILLEGAL = 11 SCE_BAAN_DEFAULT = 0 SCE_BAAN_COMMENT = 1 *************** *** 880,883 **** --- 1000,1015 ---- SCE_NNCRONTAB_ENVIRONMENT = 9 SCE_NNCRONTAB_IDENTIFIER = 10 + SCE_FORTH_DEFAULT = 0 + SCE_FORTH_COMMENT = 1 + SCE_FORTH_COMMENT_ML = 2 + SCE_FORTH_IDENTIFIER = 3 + SCE_FORTH_CONTROL = 4 + SCE_FORTH_KEYWORD = 5 + SCE_FORTH_DEFWORD = 6 + SCE_FORTH_PREWORD1 = 7 + SCE_FORTH_PREWORD2 = 8 + SCE_FORTH_NUMBER = 9 + SCE_FORTH_STRING = 10 + SCE_FORTH_LOCALE = 11 SCE_MATLAB_DEFAULT = 0 SCE_MATLAB_COMMENT = 1 *************** *** 889,909 **** SCE_MATLAB_IDENTIFIER = 7 SCE_SCRIPTOL_DEFAULT = 0 ! SCE_SCRIPTOL_COMMENT = 1 SCE_SCRIPTOL_COMMENTLINE = 2 ! SCE_SCRIPTOL_COMMENTDOC = 3 ! SCE_SCRIPTOL_NUMBER = 4 ! SCE_SCRIPTOL_WORD = 5 ! SCE_SCRIPTOL_STRING = 6 ! SCE_SCRIPTOL_CHARACTER = 7 ! SCE_SCRIPTOL_UUID = 8 ! SCE_SCRIPTOL_PREPROCESSOR = 9 ! SCE_SCRIPTOL_OPERATOR = 10 ! SCE_SCRIPTOL_IDENTIFIER = 11 ! SCE_SCRIPTOL_STRINGEOL = 12 ! SCE_SCRIPTOL_VERBATIM = 13 ! SCE_SCRIPTOL_REGEX = 14 ! SCE_SCRIPTOL_COMMENTLINEDOC = 15 ! SCE_SCRIPTOL_WORD2 = 16 ! SCE_SCRIPTOL_COMMENTDOCKEYWORD = 17 ! SCE_SCRIPTOL_COMMENTDOCKEYWORDERROR = 18 ! SCE_SCRIPTOL_COMMENTBASIC = 19 --- 1021,1229 ---- SCE_MATLAB_IDENTIFIER = 7 SCE_SCRIPTOL_DEFAULT = 0 ! SCE_SCRIPTOL_WHITE = 1 SCE_SCRIPTOL_COMMENTLINE = 2 ! SCE_SCRIPTOL_PERSISTENT = 3 ! SCE_SCRIPTOL_CSTYLE = 4 ! SCE_SCRIPTOL_COMMENTBLOCK = 5 ! SCE_SCRIPTOL_NUMBER = 6 ! SCE_SCRIPTOL_STRING = 7 ! SCE_SCRIPTOL_CHARACTER = 8 ! SCE_SCRIPTOL_STRINGEOL = 9 ! SCE_SCRIPTOL_KEYWORD = 10 ! SCE_SCRIPTOL_OPERATOR = 11 ! SCE_SCRIPTOL_IDENTIFIER = 12 ! SCE_SCRIPTOL_TRIPLE = 13 ! SCE_SCRIPTOL_CLASSNAME = 14 ! SCE_SCRIPTOL_PREPROCESSOR = 15 ! SCE_ASM_DEFAULT = 0 ! SCE_ASM_COMMENT = 1 ! SCE_ASM_NUMBER = 2 ! SCE_ASM_STRING = 3 ! SCE_ASM_OPERATOR = 4 ! SCE_ASM_IDENTIFIER = 5 ! SCE_ASM_CPUINSTRUCTION = 6 ! SCE_ASM_MATHINSTRUCTION = 7 ! SCE_ASM_REGISTER = 8 ! SCE_ASM_DIRECTIVE = 9 ! SCE_ASM_DIRECTIVEOPERAND = 10 ! SCE_ASM_COMMENTBLOCK = 11 ! SCE_ASM_CHARACTER = 12 ! SCE_ASM_STRINGEOL = 13 ! SCE_ASM_EXTINSTRUCTION = 14 ! SCE_F_DEFAULT = 0 ! SCE_F_COMMENT = 1 ! SCE_F_NUMBER = 2 ! SCE_F_STRING1 = 3 ! SCE_F_STRING2 = 4 ! SCE_F_STRINGEOL = 5 ! SCE_F_OPERATOR = 6 ! SCE_F_IDENTIFIER = 7 ! SCE_F_WORD = 8 ! SCE_F_WORD2 = 9 ! SCE_F_WORD3 = 10 ! SCE_F_PREPROCESSOR = 11 ! SCE_F_OPERATOR2 = 12 ! SCE_F_LABEL = 13 ! SCE_F_CONTINUATION = 14 ! SCE_CSS_DEFAULT = 0 ! SCE_CSS_TAG = 1 ! SCE_CSS_CLASS = 2 ! SCE_CSS_PSEUDOCLASS = 3 ! SCE_CSS_UNKNOWN_PSEUDOCLASS = 4 ! SCE_CSS_OPERATOR = 5 ! SCE_CSS_IDENTIFIER = 6 ! SCE_CSS_UNKNOWN_IDENTIFIER = 7 ! SCE_CSS_VALUE = 8 ! SCE_CSS_COMMENT = 9 ! SCE_CSS_ID = 10 ! SCE_CSS_IMPORTANT = 11 ! SCE_CSS_DIRECTIVE = 12 ! SCE_CSS_DOUBLESTRING = 13 ! SCE_CSS_SINGLESTRING = 14 ! SCE_POV_DEFAULT = 0 ! SCE_POV_COMMENT = 1 ! SCE_POV_COMMENTLINE = 2 ! SCE_POV_NUMBER = 3 ! SCE_POV_OPERATOR = 4 ! SCE_POV_IDENTIFIER = 5 ! SCE_POV_STRING = 6 ! SCE_POV_STRINGEOL = 7 ! SCE_POV_DIRECTIVE = 8 ! SCE_POV_BADDIRECTIVE = 9 ! SCE_POV_WORD2 = 10 ! SCE_POV_WORD3 = 11 ! SCE_POV_WORD4 = 12 ! SCE_POV_WORD5 = 13 ! SCE_POV_WORD6 = 14 ! SCE_POV_WORD7 = 15 ! SCE_POV_WORD8 = 16 ! SCE_LOUT_DEFAULT = 0 ! SCE_LOUT_COMMENT = 1 ! SCE_LOUT_NUMBER = 2 ! SCE_LOUT_WORD = 3 ! SCE_LOUT_WORD2 = 4 ! SCE_LOUT_WORD3 = 5 ! SCE_LOUT_WORD4 = 6 ! SCE_LOUT_STRING = 7 ! SCE_LOUT_OPERATOR = 8 ! SCE_LOUT_IDENTIFIER = 9 ! SCE_LOUT_STRINGEOL = 10 ! SCE_ESCRIPT_DEFAULT = 0 ! SCE_ESCRIPT_COMMENT = 1 ! SCE_ESCRIPT_COMMENTLINE = 2 ! SCE_ESCRIPT_COMMENTDOC = 3 ! SCE_ESCRIPT_NUMBER = 4 ! SCE_ESCRIPT_WORD = 5 ! SCE_ESCRIPT_STRING = 6 ! SCE_ESCRIPT_OPERATOR = 7 ! SCE_ESCRIPT_IDENTIFIER = 8 ! SCE_ESCRIPT_BRACE = 9 ! SCE_ESCRIPT_WORD2 = 10 ! SCE_ESCRIPT_WORD3 = 11 ! SCE_PS_DEFAULT = 0 ! SCE_PS_COMMENT = 1 ! SCE_PS_DSC_COMMENT = 2 ! SCE_PS_DSC_VALUE = 3 ! SCE_PS_NUMBER = 4 ! SCE_PS_NAME = 5 ! SCE_PS_KEYWORD = 6 ! SCE_PS_LITERAL = 7 ! SCE_PS_IMMEVAL = 8 ! SCE_PS_PAREN_ARRAY = 9 ! SCE_PS_PAREN_DICT = 10 ! SCE_PS_PAREN_PROC = 11 ! SCE_PS_TEXT = 12 ! SCE_PS_HEXSTRING = 13 ! SCE_PS_BASE85STRING = 14 ! SCE_PS_BADSTRINGCHAR = 15 ! SCE_NSIS_DEFAULT = 0 ! SCE_NSIS_COMMENT = 1 ! SCE_NSIS_STRINGDQ = 2 ! SCE_NSIS_STRINGLQ = 3 ! SCE_NSIS_STRINGRQ = 4 ! SCE_NSIS_FUNCTION = 5 ! SCE_NSIS_VARIABLE = 6 ! SCE_NSIS_LABEL = 7 ! SCE_NSIS_USERDEFINED = 8 ! SCE_NSIS_SECTIONDEF = 9 ! SCE_NSIS_SUBSECTIONDEF = 10 ! SCE_NSIS_IFDEFINEDEF = 11 ! SCE_NSIS_MACRODEF = 12 ! SCE_NSIS_STRINGVAR = 13 ! SCE_MMIXAL_LEADWS = 0 ! SCE_MMIXAL_COMMENT = 1 ! SCE_MMIXAL_LABEL = 2 ! SCE_MMIXAL_OPCODE = 3 ! SCE_MMIXAL_OPCODE_PRE = 4 ! SCE_MMIXAL_OPCODE_VALID = 5 ! SCE_MMIXAL_OPCODE_UNKNOWN = 6 ! SCE_MMIXAL_OPCODE_POST = 7 ! SCE_MMIXAL_OPERANDS = 8 ! SCE_MMIXAL_NUMBER = 9 ! SCE_MMIXAL_REF = 10 ! SCE_MMIXAL_CHAR = 11 ! SCE_MMIXAL_STRING = 12 ! SCE_MMIXAL_REGISTER = 13 ! SCE_MMIXAL_HEX = 14 ! SCE_MMIXAL_OPERATOR = 15 ! SCE_MMIXAL_SYMBOL = 16 ! SCE_MMIXAL_INCLUDE = 17 ! SCE_CLW_DEFAULT = 0 ! SCE_CLW_LABEL = 1 ! SCE_CLW_COMMENT = 2 ! SCE_CLW_STRING = 3 ! SCE_CLW_USER_IDENTIFIER = 4 ! SCE_CLW_INTEGER_CONSTANT = 5 ! SCE_CLW_REAL_CONSTANT = 6 ! SCE_CLW_PICTURE_STRING = 7 ! SCE_CLW_KEYWORD = 8 ! SCE_CLW_COMPILER_DIRECTIVE = 9 ! SCE_CLW_BUILTIN_PROCEDURES_FUNCTION = 10 ! SCE_CLW_STRUCTURE_DATA_TYPE = 11 ! SCE_CLW_ATTRIBUTE = 12 ! SCE_CLW_STANDARD_EQUATE = 13 ! SCE_CLW_ERROR = 14 ! SCE_LOT_DEFAULT = 0 ! SCE_LOT_HEADER = 1 ! SCE_LOT_BREAK = 2 ! SCE_LOT_SET = 3 ! SCE_LOT_PASS = 4 ! SCE_LOT_FAIL = 5 ! SCE_LOT_ABORT = 6 ! SCE_YAML_DEFAULT = 0 ! SCE_YAML_COMMENT = 1 ! SCE_YAML_IDENTIFIER = 2 ! SCE_YAML_KEYWORD = 3 ! SCE_YAML_NUMBER = 4 ! SCE_YAML_REFERENCE = 5 ! SCE_YAML_DOCUMENT = 6 ! SCE_YAML_TEXT = 7 ! SCE_YAML_ERROR = 8 ! SCE_TEX_DEFAULT = 0 ! SCE_TEX_SPECIAL = 1 ! SCE_TEX_GROUP = 2 ! SCE_TEX_SYMBOL = 3 ! SCE_TEX_COMMAND = 4 ! SCE_TEX_TEXT = 5 ! SCE_METAPOST_DEFAULT = 0 ! SCE_METAPOST_SPECIAL = 1 ! SCE_METAPOST_GROUP = 2 ! SCE_METAPOST_SYMBOL = 3 ! SCE_METAPOST_COMMAND = 4 ! SCE_METAPOST_TEXT = 5 ! SCE_METAPOST_EXTRA = 6 ! SCE_ERLANG_DEFAULT = 0 ! SCE_ERLANG_COMMENT = 1 ! SCE_ERLANG_VARIABLE = 2 ! SCE_ERLANG_NUMBER = 3 ! SCE_ERLANG_KEYWORD = 4 ! SCE_ERLANG_STRING = 5 ! SCE_ERLANG_OPERATOR = 6 ! SCE_ERLANG_ATOM = 7 ! SCE_ERLANG_FUNCTION_NAME = 8 ! SCE_ERLANG_CHARACTER = 9 ! SCE_ERLANG_MACRO = 10 ! SCE_ERLANG_RECORD = 11 ! SCE_ERLANG_SEPARATOR = 12 ! SCE_ERLANG_NODE_NAME = 13 ! SCE_ERLANG_UNKNOWN = 31 |