--- a/Win32OperatingSystem.st Thu Sep 29 10:38:47 2011 +0200
+++ b/Win32OperatingSystem.st Thu Sep 29 13:18:57 2011 +0200
@@ -1,7 +1,7 @@
"
COPYRIGHT (c) 1988 by Claus Gittinger
COPYRIGHT (c) 1998-2004 by eXept Software AG
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -13,161 +13,161 @@
"{ Package: 'stx:libbasic' }"
AbstractOperatingSystem subclass:#Win32OperatingSystem
- instanceVariableNames:''
- classVariableNames:'Initialized HostName DomainName CurrentDirectory'
- poolDictionaries:'Win32Constants'
- category:'OS-Windows'
+ instanceVariableNames:''
+ classVariableNames:'Initialized HostName DomainName CurrentDirectory'
+ poolDictionaries:'Win32Constants'
+ category:'OS-Windows'
!
ByteArray variableByteSubclass:#DevModeStructure
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
ByteArray variableByteSubclass:#DocInfoStructure
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Object subclass:#FileStatusInfo
- instanceVariableNames:'type mode uid gid size id accessed modified created statusChanged
- sourcePath linkTargetPath fullPathName alternativePathName'
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:'type mode uid gid size id accessed modified created statusChanged
+ sourcePath linkTargetPath fullPathName alternativePathName'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Object subclass:#OSProcessStatus
- instanceVariableNames:'pid status code core'
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:'pid status code core'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Object subclass:#PerformanceData
- instanceVariableNames:'objectArray perfTime perfFreq perfTime100nSec'
- classVariableNames:'PerformanceText CounterIndexTextDictionary
- HelpIndexTextDictionary'
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:'objectArray perfTime perfFreq perfTime100nSec'
+ classVariableNames:'PerformanceText CounterIndexTextDictionary
+ HelpIndexTextDictionary'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Object subclass:#Abstract
- instanceVariableNames:'lastData lastTimestamp cachedResults'
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem::PerformanceData
+ instanceVariableNames:'lastData lastTimestamp cachedResults'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem::PerformanceData
!
Win32OperatingSystem::PerformanceData::Abstract subclass:#DiskIO
- instanceVariableNames:''
- classVariableNames:'TheOneAndOnlyInstance'
- poolDictionaries:''
- privateIn:Win32OperatingSystem::PerformanceData
+ instanceVariableNames:''
+ classVariableNames:'TheOneAndOnlyInstance'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem::PerformanceData
!
Win32OperatingSystem::PerformanceData::Abstract subclass:#Global
- instanceVariableNames:''
- classVariableNames:'TheOneAndOnlyInstance'
- poolDictionaries:''
- privateIn:Win32OperatingSystem::PerformanceData
+ instanceVariableNames:''
+ classVariableNames:'TheOneAndOnlyInstance'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem::PerformanceData
!
Win32OperatingSystem::PerformanceData::Abstract subclass:#Memory
- instanceVariableNames:''
- classVariableNames:'TheOneAndOnlyInstance'
- poolDictionaries:''
- privateIn:Win32OperatingSystem::PerformanceData
+ instanceVariableNames:''
+ classVariableNames:'TheOneAndOnlyInstance'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem::PerformanceData
!
Win32OperatingSystem::PerformanceData::Abstract subclass:#Network
- instanceVariableNames:''
- classVariableNames:'TheOneAndOnlyInstance'
- poolDictionaries:''
- privateIn:Win32OperatingSystem::PerformanceData
+ instanceVariableNames:''
+ classVariableNames:'TheOneAndOnlyInstance'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem::PerformanceData
!
Win32OperatingSystem::PerformanceData::Abstract subclass:#Process
- instanceVariableNames:''
- classVariableNames:'TheOneAndOnlyInstance'
- poolDictionaries:''
- privateIn:Win32OperatingSystem::PerformanceData
+ instanceVariableNames:''
+ classVariableNames:'TheOneAndOnlyInstance'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem::PerformanceData
!
Win32OperatingSystem::PerformanceData::Abstract subclass:#Processor
- instanceVariableNames:''
- classVariableNames:'TheOneAndOnlyInstance'
- poolDictionaries:''
- privateIn:Win32OperatingSystem::PerformanceData
+ instanceVariableNames:''
+ classVariableNames:'TheOneAndOnlyInstance'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem::PerformanceData
!
ByteArray variableByteSubclass:#PrinterInfo2Structure
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Object subclass:#RegistryEntry
- instanceVariableNames:'path handle'
- classVariableNames:'Lobby HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE
- HKEY_USERS HKEY_PERFORMANCE_DATA HKEY_CURRENT_CONFIG
- HKEY_DYN_DATA HKEY_PERFORMANCE_TEXT HKEY_PERFORMANCE_NLSTEXT'
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:'path handle'
+ classVariableNames:'Lobby HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE
+ HKEY_USERS HKEY_PERFORMANCE_DATA HKEY_CURRENT_CONFIG
+ HKEY_DYN_DATA HKEY_PERFORMANCE_TEXT HKEY_PERFORMANCE_NLSTEXT'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
ByteArray variableByteSubclass:#TextMetricsStructure
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
OSHandle subclass:#Win32IOHandle
- instanceVariableNames:''
- classVariableNames:'Lobby'
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:'Lobby'
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Win32Handle subclass:#Win32PrinterHandle
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Win32Handle subclass:#Win32ProcessHandle
- instanceVariableNames:'pid'
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:'pid'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Win32OperatingSystem::Win32IOHandle subclass:#Win32SerialPortHandle
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
Win32OperatingSystem::Win32IOHandle subclass:#Win32SocketHandle
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
ByteArray variableByteSubclass:#WinPointStructure
- instanceVariableNames:''
- classVariableNames:''
- poolDictionaries:''
- privateIn:Win32OperatingSystem
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:Win32OperatingSystem
!
!Win32OperatingSystem primitiveDefinitions!
@@ -485,48 +485,48 @@
tv.tv_usec = 0;
if (readMode) {
- n = select (sock + 1, & fds, NULL, NULL, & tv);
+ n = select (sock + 1, & fds, NULL, NULL, & tv);
} else {
- n = select (sock + 1, NULL, & fds, NULL, & tv);
+ n = select (sock + 1, NULL, & fds, NULL, & tv);
}
if (n == 0) {
- return (0);
+ return (0);
}
if (n > 0) {
- return ((FD_ISSET (sock, & fds)) ? 1 : 0);
+ return ((FD_ISSET (sock, & fds)) ? 1 : 0);
}
winErrNo = WSAGetLastError();
switch (winErrNo) {
- case WSAENOTSOCK:
- if (readMode) {
-
- DWORD w = 0;
- HANDLE h = (HANDLE) _get_osfhandle (aFD);
-
- if (PeekNamedPipe (h, 0, 0, 0, & w, 0)) {
- if( !__isWinNT || w > 0 )
- return (1);
-
- return (0);
- }
+ case WSAENOTSOCK:
+ if (readMode) {
+
+ DWORD w = 0;
+ HANDLE h = (HANDLE) _get_osfhandle (aFD);
+
+ if (PeekNamedPipe (h, 0, 0, 0, & w, 0)) {
+ if( !__isWinNT || w > 0 )
+ return (1);
+
+ return (0);
+ }
#if 0
- console_fprintf(stderr, "_canAccessIOWithoutBlocking non Socket\n");
-#endif
- return (-1);
- }
- /* in writeMode we return allways true for none-sockets */
- return (1);
-
- case WSAEINPROGRESS:
- case WSAEWOULDBLOCK:
- return (0);
-
- default:
- console_fprintf(stderr, "_canAccessIOWithoutBlocking -> %d (0x%x)\n", winErrNo, winErrNo);
- return (-1);
+ console_fprintf(stderr, "_canAccessIOWithoutBlocking non Socket\n");
+#endif
+ return (-1);
+ }
+ /* in writeMode we return allways true for none-sockets */
+ return (1);
+
+ case WSAEINPROGRESS:
+ case WSAEWOULDBLOCK:
+ return (0);
+
+ default:
+ console_fprintf(stderr, "_canAccessIOWithoutBlocking -> %d (0x%x)\n", winErrNo, winErrNo);
+ return (-1);
}
/* not reached */
@@ -548,7 +548,7 @@
FARPROC entry;
if (*pLibHandle == NULL) {
- *pLibHandle = LoadLibrary(libraryName);
+ *pLibHandle = LoadLibrary(libraryName);
}
entry = GetProcAddress(*pLibHandle, functionName);
return entry;
@@ -611,7 +611,7 @@
"
COPYRIGHT (c) 1988 by Claus Gittinger
COPYRIGHT (c) 1998-2004 by eXept Software AG
- All Rights Reserved
+ All Rights Reserved
This software is furnished under a license and may be used
only in accordance with the terms of that license and with the
@@ -641,90 +641,90 @@
[Class variables:]
- HostName <String> remembered hostname
-
- DomainName <String> remembered domainname
-
- CurrentDirectory <String> remembered currentDirectories path
+ HostName <String> remembered hostname
+
+ DomainName <String> remembered domainname
+
+ CurrentDirectory <String> remembered currentDirectories path
[author:]
- Claus Gittinger (initial version & cleanup)
- Manfred Dierolf (many features)
+ Claus Gittinger (initial version & cleanup)
+ Manfred Dierolf (many features)
[see also:]
- OSProcessStatus
- Filename Date Time
- ExternalStream FileStream PipeStream Socket
+ OSProcessStatus
+ Filename Date Time
+ ExternalStream FileStream PipeStream Socket
"
!
examples
"
various queries
- [exBegin]
+ [exBegin]
Transcript
- showCR:'hello ' , (OperatingSystem getLoginName)
- [exEnd]
-
- [exBegin]
+ showCR:'hello ' , (OperatingSystem getLoginName)
+ [exEnd]
+
+ [exBegin]
OperatingSystem isUNIXlike ifTrue:[
- Transcript showCR:'this is some UNIX-like OS'
+ Transcript showCR:'this is some UNIX-like OS'
] ifFalse:[
- Transcript showCR:'this OS is not UNIX-like'
+ Transcript showCR:'this OS is not UNIX-like'
]
- [exEnd]
-
- [exBegin]
+ [exEnd]
+
+ [exBegin]
Transcript
- showCR:'this machine is called ' , OperatingSystem getHostName
- [exEnd]
-
- [exBegin]
+ showCR:'this machine is called ' , OperatingSystem getHostName
+ [exEnd]
+
+ [exBegin]
Transcript
- showCR:('this machine is in the '
- , OperatingSystem getDomainName
- , ' domain')
- [exEnd]
-
- [exBegin]
+ showCR:('this machine is in the '
+ , OperatingSystem getDomainName
+ , ' domain')
+ [exEnd]
+
+ [exBegin]
Transcript
- showCR:('this machine''s CPU is a '
- , OperatingSystem getCPUType
- )
- [exEnd]
-
- [exBegin]
+ showCR:('this machine''s CPU is a '
+ , OperatingSystem getCPUType
+ )
+ [exEnd]
+
+ [exBegin]
Transcript showCR:'executing ls command ...'.
OperatingSystem executeCommand:'ls'.
Transcript showCR:'... done.'.
- [exEnd]
+ [exEnd]
locking a file
(should be executed on two running smalltalks - not in two threads):
- [exBegin]
+ [exBegin]
|f|
f := 'testFile' asFilename readWriteStream.
10 timesRepeat:[
- 'about to lock ...' printCR.
- [
- OperatingSystem
- lockFD:(f fileDescriptor)
- shared:false
- blocking:false
- ] whileFalse:[
- 'process ' print. OperatingSystem getProcessId print. ' is waiting' printCR.
- Delay waitForSeconds:1
- ].
- 'LOCKED ...' printCR.
- Delay waitForSeconds:10.
- 'unlock ...' printCR.
- (OperatingSystem
- unlockFD:(f fileDescriptor)) printCR.
- Delay waitForSeconds:3.
+ 'about to lock ...' printCR.
+ [
+ OperatingSystem
+ lockFD:(f fileDescriptor)
+ shared:false
+ blocking:false
+ ] whileFalse:[
+ 'process ' print. OperatingSystem getProcessId print. ' is waiting' printCR.
+ Delay waitForSeconds:1
+ ].
+ 'LOCKED ...' printCR.
+ Delay waitForSeconds:10.
+ 'unlock ...' printCR.
+ (OperatingSystem
+ unlockFD:(f fileDescriptor)) printCR.
+ Delay waitForSeconds:3.
]
- [exBegin]
+ [exBegin]
"
! !
@@ -736,18 +736,18 @@
if( ! coInitialized ) {
#ifdef NO_NT4_0_COMPATIBILITY
- FARPROC CoInitializeEx_entry = (FARPROC) CoInitializeEx;
-#else
- FARPROC CoInitializeEx_entry = __get_ole32_functionAddress("CoInitializeEx");
+ FARPROC CoInitializeEx_entry = (FARPROC) CoInitializeEx;
+#else
+ FARPROC CoInitializeEx_entry = __get_ole32_functionAddress("CoInitializeEx");
#endif /* NO_NT4_0_COMPATIBILITY */
- hres = (*CoInitializeEx_entry)(NULL, COINIT_MULTITHREADED);
- if (! SUCCEEDED(hres)) {
- console_fprintf(stderr, "OperatingSystem [info]: Could not open the COM library hres = %08x\n", hres );
- goto error;
- }
- coInitialized = 1;
+ hres = (*CoInitializeEx_entry)(NULL, COINIT_MULTITHREADED);
+ if (! SUCCEEDED(hres)) {
+ console_fprintf(stderr, "OperatingSystem [info]: Could not open the COM library hres = %08x\n", hres );
+ goto error;
+ }
+ coInitialized = 1;
#ifdef COM_DEBUG
- console_fprintf(stderr, "OperatingSystem [info]: COM initialized\n" );
+ console_fprintf(stderr, "OperatingSystem [info]: COM initialized\n" );
#endif
}
RETURN (self );
@@ -769,9 +769,9 @@
GetVersionEx (&osvi);
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
- __isWinNT = 1;
+ __isWinNT = 1;
} else {
- __isWinNT = 0;
+ __isWinNT = 0;
}
%}.
!
@@ -781,14 +781,14 @@
"/ attention: must be ok to be called twice during startup.
Initialized == nil ifTrue:[
- Initialized := true.
- ObjectMemory addDependent:self.
- HostName := nil.
- DomainName := nil.
- LastErrorNumber := nil.
- PipeFailed := false.
- self initOSType.
- self coInitialize.
+ Initialized := true.
+ ObjectMemory addDependent:self.
+ HostName := nil.
+ DomainName := nil.
+ LastErrorNumber := nil.
+ PipeFailed := false.
+ self initOSType.
+ self coInitialize.
].
"Modified: 13.9.1997 / 10:47:32 / cg"
@@ -798,15 +798,15 @@
"catch image restart and flush some cached data"
something == #earlyRestart ifTrue:[
- "
- flush cached data
- "
- HostName := nil.
- DomainName := nil.
- LastErrorNumber := nil.
- PipeFailed := false.
- self initOSType.
- self coInitialize.
+ "
+ flush cached data
+ "
+ HostName := nil.
+ DomainName := nil.
+ LastErrorNumber := nil.
+ PipeFailed := false.
+ self initOSType.
+ self coInitialize.
]
"Modified: 22.4.1996 / 13:10:43 / cg"
@@ -1400,7 +1400,7 @@
lp = __win32_getLogFilename();
if (lp) {
- ret = __MKSTRING(lp);
+ ret = __MKSTRING(lp);
}
%}.
^ ret
@@ -1418,16 +1418,16 @@
|logFilePath|
aFilenameOrNil notNil ifTrue:[
- logFilePath := aFilenameOrNil asFilename pathName
+ logFilePath := aFilenameOrNil asFilename pathName
].
%{
extern void __win32_setLogFile();
if (__isStringLike(logFilePath)) {
- __win32_setLogFile(__stringVal(logFilePath));
+ __win32_setLogFile(__stringVal(logFilePath));
} else {
- __win32_setLogFile( NULL );
+ __win32_setLogFile( NULL );
}
%}
@@ -1446,14 +1446,14 @@
!Win32OperatingSystem class methodsFor:'clipboard'!
clipboardContainsBitmap
- "Answer whether the clipboard contains a bitmap."
+ "Answer whether the clipboard contains a bitmap."
^self clipboardContainsFormat: 2 "CfBitmap"
!
clipboardContainsFormat: aCfConstant
- "Answer true if the clipboard contains data in
- the format described by aCfConstant. "
+ "Answer true if the clipboard contains data in
+ the format described by aCfConstant. "
^self primIsClipboardFormatAvailable: aCfConstant
!
@@ -1466,7 +1466,7 @@
!
emptyClipboard
- "Private - empty the clipboard. Note: it must be opened first."
+ "Private - empty the clipboard. Note: it must be opened first."
| result |
result := self primEmptyClipboard.
result ifFalse: [ ^self error].
@@ -1527,7 +1527,7 @@
!
setBitmapToClipboard: aBitmap
- "Copy aBitmap to the clipboard."
+ "Copy aBitmap to the clipboard."
| handle |
aBitmap isNil ifTrue:[ ^nil ].
aBitmap id isNil ifTrue:[aBitmap onDevice: Screen current].
@@ -1539,7 +1539,7 @@
self closeClipboard
"
- self setBitmapToClipboard: Image fromUser
+ self setBitmapToClipboard: Image fromUser
"
!
@@ -1586,818 +1586,833 @@
int __eno = __unsignedLongIntVal(errNr);
if (__isWIN32Error(__eno)) {
- switch (__eno & 0xFFFF) {
- /*
- * WIN32 GetLastError returns
- */
- case ERROR_INVALID_FUNCTION:
- sym = @symbol(ERROR_INVALID_FUNCTION);
- typ = @symbol(illegalOperationSignal);
- break;
-
- case ERROR_BAD_FORMAT:
- sym = @symbol(ERROR_BAD_FORMAT);
- typ = @symbol(invalidArgumentsSignal);
- break;
-
- case ERROR_FILE_NOT_FOUND:
- sym = @symbol(ERROR_FILE_NOT_FOUND);
- typ = @symbol(nonexistentSignal);
- break;
-
- case ERROR_PATH_NOT_FOUND:
- sym = @symbol(ERROR_PATH_NOT_FOUND);
- typ = @symbol(nonexistentSignal);
- break;
-
- case ERROR_TOO_MANY_OPEN_FILES:
- sym = @symbol(ERROR_TOO_MANY_OPEN_FILES);
- typ = @symbol(noResourcesSignal);
- break;
-
- /*
- * what a nice errorCode - thats the most "useful" one I ever
- * encountered ... (... those stupid micro-softies ...)
- */
- case ERROR_OPEN_FAILED:
- sym = @symbol(ERROR_OPEN_FAILED);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_ACCESS_DENIED:
- sym = @symbol(ERROR_ACCESS_DENIED);
- typ = @symbol(noPermissionsSignal);
- break;
-
- case ERROR_INVALID_HANDLE:
- sym = @symbol(ERROR_INVALID_HANDLE);
- typ = @symbol(invalidArgumentsSignal);
- break;
-
- case ERROR_NOT_ENOUGH_MEMORY:
- sym = @symbol(ERROR_NOT_ENOUGH_MEMORY);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_INVALID_ACCESS:
- sym = @symbol(ERROR_INVALID_ACCESS);
- typ = @symbol(inappropriateOperationSignal);
- break;
-
- case ERROR_INVALID_DATA:
- sym = @symbol(ERROR_INVALID_DATA);
- typ = @symbol(invalidArgumentsSignal);
- break;
-
- case ERROR_INVALID_NAME:
- sym = @symbol(ERROR_INVALID_NAME);
- typ = @symbol(invalidArgumentsSignal);
- break;
-
- case ERROR_ARENA_TRASHED:
- sym = @symbol(ERROR_ARENA_TRASHED);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_OUTOFMEMORY:
- sym = @symbol(ERROR_OUTOFMEMORY);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_BROKEN_PIPE:
- sym = @symbol(ERROR_BROKEN_PIPE);
- typ = @symbol(peerFaultSignal);
- break;
-
- case ERROR_GEN_FAILURE:
- sym = @symbol(ERROR_GEN_FAILURE);
- break;
-
- case ERROR_WRITE_PROTECT:
- sym = @symbol(ERROR_WRITE_PROTECT);
- typ = @symbol(inappropriateOperationSignal);
- break;
-
- case ERROR_WRITE_FAULT:
- sym = @symbol(ERROR_WRITE_FAULT);
- typ = @symbol(transferFaultSignal);
- break;
-
- case ERROR_READ_FAULT:
- sym = @symbol(ERROR_READ_FAULT);
- typ = @symbol(transferFaultSignal);
- break;
-
- case ERROR_HANDLE_DISK_FULL:
- sym = @symbol(ERROR_HANDLE_DISK_FULL);
- typ = @symbol(volumeFullSignal);
- break;
-
- case ERROR_DISK_FULL:
- sym = @symbol(ERROR_DISK_FULL);
- typ = @symbol(volumeFullSignal);
- break;
-
- case ERROR_SHARING_VIOLATION:
- sym = @symbol(ERROR_SHARING_VIOLATION);
- typ = @symbol(noPermissionsSignal);
- break;
-
- case ERROR_LOCK_VIOLATION:
- sym = @symbol(ERROR_LOCK_VIOLATION);
- typ = @symbol(noPermissionsSignal);
- break;
-
- case ERROR_INVALID_PARAMETER:
- sym = @symbol(ERROR_INVALID_PARAMETER);
- typ = @symbol(invalidArgumentsSignal);
- break;
-
- case ERROR_NET_WRITE_FAULT:
- sym = @symbol(ERROR_NET_WRITE_FAULT);
- typ = @symbol(transferFaultSignal);
- break;
-
- case ERROR_NOT_SUPPORTED:
- sym = @symbol(ERROR_NOT_SUPPORTED);
- typ = @symbol(inappropriateOperationSignal);
- break;
-
- case ERROR_REM_NOT_LIST:
- sym = @symbol(ERROR_REM_NOT_LIST);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_NETWORK_ACCESS_DENIED:
- sym = @symbol(ERROR_NETWORK_ACCESS_DENIED);
- typ = @symbol(noPermissionsSignal);
- break;
-
- case ERROR_DUP_NAME:
- sym = @symbol(ERROR_DUP_NAME);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_BAD_NETPATH:
- sym = @symbol(ERROR_BAD_NETPATH);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_NETWORK_BUSY:
- sym = @symbol(ERROR_NETWORK_BUSY);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_DRIVE_LOCKED:
- sym = @symbol(ERROR_DRIVE_LOCKED);
- typ = @symbol(inappropriateOperationSignal);
- break;
-
- case ERROR_INVALID_DRIVE:
- sym = @symbol(ERROR_INVALID_DRIVE);
- typ = @symbol(invalidArgumentsSignal);
- break;
-
- case ERROR_WRONG_DISK:
- sym = @symbol(ERROR_WRONG_DISK);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_CURRENT_DIRECTORY:
- sym = @symbol(ERROR_CURRENT_DIRECTORY);
- typ = @symbol(invalidArgumentsSignal);
- break;
-
- /*
- * what a nice errorCode - thats the most "useful" one I ever
- * encountered ... (... those stupid micro-softies ...)
- */
- case ERROR_CANNOT_MAKE:
- sym = @symbol(ERROR_CANNOT_MAKE);
- typ = @symbol(inappropriateOperationSignal);
- break;
-
- case ERROR_NO_MORE_FILES:
- sym = @symbol(ERROR_NO_MORE_FILES);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_NOT_READY:
- sym = @symbol(ERROR_NOT_READY);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_NOT_DOS_DISK:
- sym = @symbol(ERROR_NOT_DOS_DISK);
- typ = @symbol(invalidArgumentsSignal);
- break;
-
- case ERROR_OUT_OF_PAPER:
- sym = @symbol(ERROR_OUT_OF_PAPER);
- typ = @symbol(noResourcesSignal);
- break;
-
- case ERROR_PRINTQ_FULL:
- sym = @symbol(ERROR_PRINTQ_FULL);
- typ = @symbol(noResourcesSignal);
- break;
-
- default:
- sym = nil;
- break;
- }
+ switch (__eno & 0xFFFF) {
+ /*
+ * WIN32 GetLastError returns
+ */
+ case ERROR_INVALID_FUNCTION:
+ sym = @symbol(ERROR_INVALID_FUNCTION);
+ typ = @symbol(illegalOperationSignal);
+ break;
+
+ case ERROR_BAD_FORMAT:
+ sym = @symbol(ERROR_BAD_FORMAT);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
+
+ case ERROR_FILE_NOT_FOUND:
+ sym = @symbol(ERROR_FILE_NOT_FOUND);
+ typ = @symbol(nonexistentSignal);
+ break;
+
+ case ERROR_PATH_NOT_FOUND:
+ sym = @symbol(ERROR_PATH_NOT_FOUND);
+ typ = @symbol(nonexistentSignal);
+ break;
+
+ case ERROR_TOO_MANY_OPEN_FILES:
+ sym = @symbol(ERROR_TOO_MANY_OPEN_FILES);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ /*
+ * what a nice errorCode - thats the most "useful" one I ever
+ * encountered ... (... those stupid micro-softies ...)
+ */
+ case ERROR_OPEN_FAILED:
+ sym = @symbol(ERROR_OPEN_FAILED);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_ACCESS_DENIED:
+ sym = @symbol(ERROR_ACCESS_DENIED);
+ typ = @symbol(noPermissionsSignal);
+ break;
+
+ case ERROR_INVALID_HANDLE:
+ sym = @symbol(ERROR_INVALID_HANDLE);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
+
+ case ERROR_NOT_ENOUGH_MEMORY:
+ sym = @symbol(ERROR_NOT_ENOUGH_MEMORY);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_NO_SYSTEM_RESOURCES:
+ sym = @symbol(ERROR_NO_SYSTEM_RESOURCES);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_NONPAGED_SYSTEM_RESOURCES:
+ sym = @symbol(ERROR_NONPAGED_SYSTEM_RESOURCES);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_PAGED_SYSTEM_RESOURCES:
+ sym = @symbol(ERROR_PAGED_SYSTEM_RESOURCES);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_INVALID_ACCESS:
+ sym = @symbol(ERROR_INVALID_ACCESS);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
+
+ case ERROR_INVALID_DATA:
+ sym = @symbol(ERROR_INVALID_DATA);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
+
+ case ERROR_INVALID_NAME:
+ sym = @symbol(ERROR_INVALID_NAME);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
+
+ case ERROR_ARENA_TRASHED:
+ sym = @symbol(ERROR_ARENA_TRASHED);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_OUTOFMEMORY:
+ sym = @symbol(ERROR_OUTOFMEMORY);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_BROKEN_PIPE:
+ sym = @symbol(ERROR_BROKEN_PIPE);
+ typ = @symbol(peerFaultSignal);
+ break;
+
+ case ERROR_GEN_FAILURE:
+ sym = @symbol(ERROR_GEN_FAILURE);
+ break;
+
+ case ERROR_WRITE_PROTECT:
+ sym = @symbol(ERROR_WRITE_PROTECT);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
+
+ case ERROR_WRITE_FAULT:
+ sym = @symbol(ERROR_WRITE_FAULT);
+ typ = @symbol(transferFaultSignal);
+ break;
+
+ case ERROR_READ_FAULT:
+ sym = @symbol(ERROR_READ_FAULT);
+ typ = @symbol(transferFaultSignal);
+ break;
+
+ case ERROR_HANDLE_DISK_FULL:
+ sym = @symbol(ERROR_HANDLE_DISK_FULL);
+ typ = @symbol(volumeFullSignal);
+ break;
+
+ case ERROR_DISK_FULL:
+ sym = @symbol(ERROR_DISK_FULL);
+ typ = @symbol(volumeFullSignal);
+ break;
+
+ case ERROR_SHARING_VIOLATION:
+ sym = @symbol(ERROR_SHARING_VIOLATION);
+ typ = @symbol(noPermissionsSignal);
+ break;
+
+ case ERROR_LOCK_VIOLATION:
+ sym = @symbol(ERROR_LOCK_VIOLATION);
+ typ = @symbol(noPermissionsSignal);
+ break;
+
+ case ERROR_INVALID_PARAMETER:
+ sym = @symbol(ERROR_INVALID_PARAMETER);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
+
+ case ERROR_NET_WRITE_FAULT:
+ sym = @symbol(ERROR_NET_WRITE_FAULT);
+ typ = @symbol(transferFaultSignal);
+ break;
+
+ case ERROR_NOT_SUPPORTED:
+ sym = @symbol(ERROR_NOT_SUPPORTED);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
+
+ case ERROR_REM_NOT_LIST:
+ sym = @symbol(ERROR_REM_NOT_LIST);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_NETWORK_ACCESS_DENIED:
+ sym = @symbol(ERROR_NETWORK_ACCESS_DENIED);
+ typ = @symbol(noPermissionsSignal);
+ break;
+
+ case ERROR_DUP_NAME:
+ sym = @symbol(ERROR_DUP_NAME);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_BAD_NETPATH:
+ sym = @symbol(ERROR_BAD_NETPATH);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_NETWORK_BUSY:
+ sym = @symbol(ERROR_NETWORK_BUSY);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_DRIVE_LOCKED:
+ sym = @symbol(ERROR_DRIVE_LOCKED);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
+
+ case ERROR_INVALID_DRIVE:
+ sym = @symbol(ERROR_INVALID_DRIVE);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
+
+ case ERROR_WRONG_DISK:
+ sym = @symbol(ERROR_WRONG_DISK);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_CURRENT_DIRECTORY:
+ sym = @symbol(ERROR_CURRENT_DIRECTORY);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
+
+ /*
+ * what a nice errorCode - thats the most "useful" one I ever
+ * encountered ... (... those stupid micro-softies ...)
+ */
+ case ERROR_CANNOT_MAKE:
+ sym = @symbol(ERROR_CANNOT_MAKE);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
+
+ case ERROR_NO_MORE_FILES:
+ sym = @symbol(ERROR_NO_MORE_FILES);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_NOT_READY:
+ sym = @symbol(ERROR_NOT_READY);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_NOT_DOS_DISK:
+ sym = @symbol(ERROR_NOT_DOS_DISK);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
+
+ case ERROR_OUT_OF_PAPER:
+ sym = @symbol(ERROR_OUT_OF_PAPER);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ case ERROR_PRINTQ_FULL:
+ sym = @symbol(ERROR_PRINTQ_FULL);
+ typ = @symbol(noResourcesSignal);
+ break;
+
+ default:
+ sym = nil;
+ break;
+ }
} else {
- switch (__eno) {
- /*
- * POSIX errnos - these should be defined
- */
+ switch (__eno) {
+ /*
+ * POSIX errnos - these should be defined
+ */
#ifdef EPERM
- case EPERM:
- sym = @symbol(EPERM);
- typ = @symbol(noPermissionsSignal);
- break;
+ case EPERM:
+ sym = @symbol(EPERM);
+ typ = @symbol(noPermissionsSignal);
+ break;
#endif
#ifdef ENOENT
- case ENOENT:
- sym = @symbol(ENOENT);
- typ = @symbol(nonexistentSignal);
- break;
+ case ENOENT:
+ sym = @symbol(ENOENT);
+ typ = @symbol(nonexistentSignal);
+ break;
#endif
#ifdef ESRCH
- case ESRCH:
- sym = @symbol(ESRCH);
- typ = @symbol(unavailableReferentSignal);
- break;
+ case ESRCH:
+ sym = @symbol(ESRCH);
+ typ = @symbol(unavailableReferentSignal);
+ break;
#endif
#ifdef EINTR
- case EINTR:
- sym = @symbol(EINTR);
- typ = @symbol(transientErrorSignal);
- break;
+ case EINTR:
+ sym = @symbol(EINTR);
+ typ = @symbol(transientErrorSignal);
+ break;
#endif
#ifdef EIO
- case EIO:
- sym = @symbol(EIO);
- typ = @symbol(transferFaultSignal);
- break;
+ case EIO:
+ sym = @symbol(EIO);
+ typ = @symbol(transferFaultSignal);
+ break;
#endif
#ifdef ENXIO
- case ENXIO:
- sym = @symbol(ENXIO);
- typ = @symbol(unavailableReferentSignal);
- break;
+ case ENXIO:
+ sym = @symbol(ENXIO);
+ typ = @symbol(unavailableReferentSignal);
+ break;
#endif
#ifdef E2BIG
- case E2BIG:
- sym = @symbol(E2BIG);
- typ = @symbol(invalidArgumentsSignal);
- break;
+ case E2BIG:
+ sym = @symbol(E2BIG);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
#endif
#ifdef ENOEXEC
- case ENOEXEC:
- sym = @symbol(ENOEXEC);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case ENOEXEC:
+ sym = @symbol(ENOEXEC);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef EBADF
- case EBADF:
- sym = @symbol(EBADF);
- typ = @symbol(badAccessorSignal);
- break;
+ case EBADF:
+ sym = @symbol(EBADF);
+ typ = @symbol(badAccessorSignal);
+ break;
#endif
#ifdef ECHILD
- case ECHILD:
- sym = @symbol(ECHILD);
- typ = @symbol(informationSignal);
- break;
+ case ECHILD:
+ sym = @symbol(ECHILD);
+ typ = @symbol(informationSignal);
+ break;
#endif
#if !defined(EWOULDBLOCK) && defined(EAGAIN) && (EWOULDBLOCK != EAGAIN)
- case EAGAIN:
- sym = @symbol(EAGAIN);
- typ = @symbol(notReadySignal);
- break;
+ case EAGAIN:
+ sym = @symbol(EAGAIN);
+ typ = @symbol(notReadySignal);
+ break;
#endif
#ifdef ENOMEM
- case ENOMEM:
- sym = @symbol(ENOMEM);
- typ = @symbol(noMemorySignal);
- break;
+ case ENOMEM:
+ sym = @symbol(ENOMEM);
+ typ = @symbol(noMemorySignal);
+ break;
#endif
#ifdef EACCES
- case EACCES:
- sym = @symbol(EACCES);
- typ = @symbol(noPermissionsSignal);
- break;
+ case EACCES:
+ sym = @symbol(EACCES);
+ typ = @symbol(noPermissionsSignal);
+ break;
#endif
#ifdef EFAULT
- case EFAULT:
- sym = @symbol(EFAULT);
- typ = @symbol(invalidArgumentsSignal);
- break;
+ case EFAULT:
+ sym = @symbol(EFAULT);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
#endif
#ifdef EBUSY
- case EBUSY:
- sym = @symbol(EBUSY);
- typ = @symbol(unavailableReferentSignal);
- break;
+ case EBUSY:
+ sym = @symbol(EBUSY);
+ typ = @symbol(unavailableReferentSignal);
+ break;
#endif
#ifdef EEXIST
- case EEXIST:
- sym = @symbol(EEXIST);
- typ = @symbol(existingReferentSignal);
- break;
+ case EEXIST:
+ sym = @symbol(EEXIST);
+ typ = @symbol(existingReferentSignal);
+ break;
#endif
#ifdef EXDEV
- case EXDEV:
- sym = @symbol(EXDEV);
- typ = @symbol(inappropriateReferentSignal);
- break;
+ case EXDEV:
+ sym = @symbol(EXDEV);
+ typ = @symbol(inappropriateReferentSignal);
+ break;
#endif
#ifdef ENODEV
- case ENODEV:
- sym = @symbol(ENODEV);
- typ = @symbol(inaccessibleSignal);
- break;
+ case ENODEV:
+ sym = @symbol(ENODEV);
+ typ = @symbol(inaccessibleSignal);
+ break;
#endif
#ifdef ENOTDIR
- case ENOTDIR:
- sym = @symbol(ENOTDIR);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case ENOTDIR:
+ sym = @symbol(ENOTDIR);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef EISDIR
- case EISDIR:
- sym = @symbol(EISDIR);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case EISDIR:
+ sym = @symbol(EISDIR);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef EINVAL
- case EINVAL:
- sym = @symbol(EINVAL);
- typ = @symbol(invalidArgumentsSignal);
- break;
+ case EINVAL:
+ sym = @symbol(EINVAL);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
#endif
#ifdef ENFILE
- case ENFILE:
- sym = @symbol(ENFILE);
- typ = @symbol(noResourcesSignal);
- break;
+ case ENFILE:
+ sym = @symbol(ENFILE);
+ typ = @symbol(noResourcesSignal);
+ break;
#endif
#ifdef EMFILE
- case EMFILE:
- sym = @symbol(EMFILE);
- typ = @symbol(noResourcesSignal);
- break;
+ case EMFILE:
+ sym = @symbol(EMFILE);
+ typ = @symbol(noResourcesSignal);
+ break;
#endif
#ifdef ENOTTY
- case ENOTTY:
- sym = @symbol(ENOTTY);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case ENOTTY:
+ sym = @symbol(ENOTTY);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef EFBIG
- case EFBIG:
- sym = @symbol(EFBIG);
- typ = @symbol(noResourcesSignal);
- break;
+ case EFBIG:
+ sym = @symbol(EFBIG);
+ typ = @symbol(noResourcesSignal);
+ break;
#endif
#ifdef ENOSPC
- case ENOSPC:
- sym = @symbol(ENOSPC);
- typ = @symbol(noResourcesSignal);
- break;
+ case ENOSPC:
+ sym = @symbol(ENOSPC);
+ typ = @symbol(noResourcesSignal);
+ break;
#endif
#ifdef ESPIPE
- case ESPIPE:
- sym = @symbol(ESPIPE);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case ESPIPE:
+ sym = @symbol(ESPIPE);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef EROFS
- case EROFS:
- sym = @symbol(EROFS);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case EROFS:
+ sym = @symbol(EROFS);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef EMLINK
- case EMLINK:
- sym = @symbol(EMLINK);
- typ = @symbol(rangeErrorSignal);
- break;
+ case EMLINK:
+ sym = @symbol(EMLINK);
+ typ = @symbol(rangeErrorSignal);
+ break;
#endif
#ifdef EPIPE
- case EPIPE:
- sym = @symbol(EPIPE);
- typ = @symbol(peerFaultSignal);
- break;
+ case EPIPE:
+ sym = @symbol(EPIPE);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef EDOM
- case EDOM:
- sym = @symbol(EDOM);
- typ = @symbol(rangeErrorSignal);
- break;
+ case EDOM:
+ sym = @symbol(EDOM);
+ typ = @symbol(rangeErrorSignal);
+ break;
#endif
#ifdef ERANGE
- case ERANGE:
- sym = @symbol(ERANGE);
- typ = @symbol(rangeErrorSignal);
- break;
+ case ERANGE:
+ sym = @symbol(ERANGE);
+ typ = @symbol(rangeErrorSignal);
+ break;
#endif
#ifdef EDEADLK
# if EDEADLK != EWOULDBLOCK
- case EDEADLK:
- sym = @symbol(EDEADLK);
- typ = @symbol(noResourcesSignal);
- break;
+ case EDEADLK:
+ sym = @symbol(EDEADLK);
+ typ = @symbol(noResourcesSignal);
+ break;
# endif
#endif
#ifdef ENAMETOOLONG
- case ENAMETOOLONG:
- sym = @symbol(ENAMETOOLONG);
- typ = @symbol(rangeErrorSignal);
- break;
+ case ENAMETOOLONG:
+ sym = @symbol(ENAMETOOLONG);
+ typ = @symbol(rangeErrorSignal);
+ break;
#endif
#ifdef ENOLCK
- case ENOLCK:
- sym = @symbol(ENOLCK);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case ENOLCK:
+ sym = @symbol(ENOLCK);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef ENOSYS
- case ENOSYS:
- sym = @symbol(ENOSYS);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case ENOSYS:
+ sym = @symbol(ENOSYS);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST)
- case ENOTEMPTY:
- sym = @symbol(ENOTEMPTY);
- typ = @symbol(inappropriateReferentSignal);
- break;
+ case ENOTEMPTY:
+ sym = @symbol(ENOTEMPTY);
+ typ = @symbol(inappropriateReferentSignal);
+ break;
#endif
#ifdef EILSEQ
- case EILSEQ:
- sym = @symbol(EILSEQ);
- typ = @symbol(transferFaultSignal);
- break;
-#endif
- /*
- * XPG3 errnos - defined on most systems
- */
+ case EILSEQ:
+ sym = @symbol(EILSEQ);
+ typ = @symbol(transferFaultSignal);
+ break;
+#endif
+ /*
+ * XPG3 errnos - defined on most systems
+ */
#ifdef ENOTBLK
- case ENOTBLK:
- sym = @symbol(ENOTBLK);
- typ = @symbol(inappropriateReferentSignal);
- break;
+ case ENOTBLK:
+ sym = @symbol(ENOTBLK);
+ typ = @symbol(inappropriateReferentSignal);
+ break;
#endif
#ifdef ETXTBSY
- case ETXTBSY:
- sym = @symbol(ETXTBSY);
- typ = @symbol(inaccessibleSignal);
- break;
-#endif
- /*
- * some others
- */
+ case ETXTBSY:
+ sym = @symbol(ETXTBSY);
+ typ = @symbol(inaccessibleSignal);
+ break;
+#endif
+ /*
+ * some others
+ */
#ifdef EWOULDBLOCK
- case EWOULDBLOCK:
- sym = @symbol(EWOULDBLOCK);
- typ = @symbol(notReadySignal);
- break;
+ case EWOULDBLOCK:
+ sym = @symbol(EWOULDBLOCK);
+ typ = @symbol(notReadySignal);
+ break;
#endif
#ifdef ENOMSG
- case ENOMSG:
- sym = @symbol(ENOMSG);
- typ = @symbol(noDataSignal);
- break;
+ case ENOMSG:
+ sym = @symbol(ENOMSG);
+ typ = @symbol(noDataSignal);
+ break;
#endif
#ifdef ELOOP
- case ELOOP:
- sym = @symbol(ELOOP);
- typ = @symbol(rangeErrorSignal);
- break;
-#endif
-
- /*
- * some stream errors
- */
+ case ELOOP:
+ sym = @symbol(ELOOP);
+ typ = @symbol(rangeErrorSignal);
+ break;
+#endif
+
+ /*
+ * some stream errors
+ */
#ifdef ETIME
- case ETIME:
- sym = @symbol(ETIME);
- typ = @symbol(peerFaultSignal);
- break;
+ case ETIME:
+ sym = @symbol(ETIME);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef ENOSR
- case ENOSR:
- sym = @symbol(ENOSR);
- typ = @symbol(noResourcesSignal);
- break;
+ case ENOSR:
+ sym = @symbol(ENOSR);
+ typ = @symbol(noResourcesSignal);
+ break;
#endif
#ifdef ENOSTR
- case ENOSTR:
- sym = @symbol(ENOSTR);
- typ = @symbol(inappropriateReferentSignal);
- break;
+ case ENOSTR:
+ sym = @symbol(ENOSTR);
+ typ = @symbol(inappropriateReferentSignal);
+ break;
#endif
#ifdef ECOMM
- case ECOMM:
- sym = @symbol(ECOMM);
- typ = @symbol(transferFaultSignal);
- break;
+ case ECOMM:
+ sym = @symbol(ECOMM);
+ typ = @symbol(transferFaultSignal);
+ break;
#endif
#ifdef EPROTO
- case EPROTO:
- sym = @symbol(EPROTO);
- typ = @symbol(inappropriateOperationSignal);
- break;
-#endif
- /*
- * nfs errors
- */
+ case EPROTO:
+ sym = @symbol(EPROTO);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
+#endif
+ /*
+ * nfs errors
+ */
#ifdef ESTALE
- case ESTALE:
- sym = @symbol(ESTALE);
- typ = @symbol(unavailableReferentSignal);
- break;
+ case ESTALE:
+ sym = @symbol(ESTALE);
+ typ = @symbol(unavailableReferentSignal);
+ break;
#endif
#ifdef EREMOTE
- case EREMOTE:
- sym = @symbol(EREMOTE);
- typ = @symbol(rangeErrorSignal);
- break;
-#endif
- /*
- * some networking errors
- */
+ case EREMOTE:
+ sym = @symbol(EREMOTE);
+ typ = @symbol(rangeErrorSignal);
+ break;
+#endif
+ /*
+ * some networking errors
+ */
#ifdef EINPROGRESS
- case EINPROGRESS:
- sym = @symbol(EINPROGRESS);
- typ = @symbol(operationStartedSignal);
- break;
+ case EINPROGRESS:
+ sym = @symbol(EINPROGRESS);
+ typ = @symbol(operationStartedSignal);
+ break;
#endif
#ifdef EALREADY
- case EALREADY:
- sym = @symbol(EALREADY);
- typ = @symbol(operationStartedSignal);
- break;
+ case EALREADY:
+ sym = @symbol(EALREADY);
+ typ = @symbol(operationStartedSignal);
+ break;
#endif
#ifdef ENOTSOCK
- case ENOTSOCK:
- sym = @symbol(ENOTSOCK);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case ENOTSOCK:
+ sym = @symbol(ENOTSOCK);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef EDESTADDRREQ
- case EDESTADDRREQ:
- sym = @symbol(EDESTADDRREQ);
- typ = @symbol(underspecifiedSignal);
- break;
+ case EDESTADDRREQ:
+ sym = @symbol(EDESTADDRREQ);
+ typ = @symbol(underspecifiedSignal);
+ break;
#endif
#ifdef EMSGSIZE
- case EMSGSIZE:
- sym = @symbol(EMSGSIZE);
- typ = @symbol(rangeErrorSignal);
- break;
+ case EMSGSIZE:
+ sym = @symbol(EMSGSIZE);
+ typ = @symbol(rangeErrorSignal);
+ break;
#endif
#ifdef EPROTOTYPE
- case EPROTOTYPE:
- sym = @symbol(EPROTOTYPE);
- typ = @symbol(wrongSubtypeForOperationSignal);
- break;
+ case EPROTOTYPE:
+ sym = @symbol(EPROTOTYPE);
+ typ = @symbol(wrongSubtypeForOperationSignal);
+ break;
#endif
#ifdef ENOPROTOOPT
- case ENOPROTOOPT:
- sym = @symbol(ENOPROTOOPT);
- typ = @symbol(unsupportedOperationSignal);
- break;
+ case ENOPROTOOPT:
+ sym = @symbol(ENOPROTOOPT);
+ typ = @symbol(unsupportedOperationSignal);
+ break;
#endif
#ifdef EPROTONOSUPPORT
- case EPROTONOSUPPORT:
- sym = @symbol(EPROTONOSUPPORT);
- typ = @symbol(unsupportedOperationSignal);
- break;
+ case EPROTONOSUPPORT:
+ sym = @symbol(EPROTONOSUPPORT);
+ typ = @symbol(unsupportedOperationSignal);
+ break;
#endif
#ifdef ESOCKTNOSUPPORT
- case ESOCKTNOSUPPORT:
- sym = @symbol(ESOCKTNOSUPPORT);
- typ = @symbol(unsupportedOperationSignal);
- break;
+ case ESOCKTNOSUPPORT:
+ sym = @symbol(ESOCKTNOSUPPORT);
+ typ = @symbol(unsupportedOperationSignal);
+ break;
#endif
#ifdef EOPNOTSUPP
- case EOPNOTSUPP:
- sym = @symbol(EOPNOTSUPP);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case EOPNOTSUPP:
+ sym = @symbol(EOPNOTSUPP);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef EPFNOSUPPORT
- case EPFNOSUPPORT:
- sym = @symbol(EPFNOSUPPORT);
- typ = @symbol(unsupportedOperationSignal);
- break;
+ case EPFNOSUPPORT:
+ sym = @symbol(EPFNOSUPPORT);
+ typ = @symbol(unsupportedOperationSignal);
+ break;
#endif
#ifdef EAFNOSUPPORT
- case EAFNOSUPPORT:
- sym = @symbol(EAFNOSUPPORT);
- typ = @symbol(unsupportedOperationSignal);
- break;
+ case EAFNOSUPPORT:
+ sym = @symbol(EAFNOSUPPORT);
+ typ = @symbol(unsupportedOperationSignal);
+ break;
#endif
#ifdef EADDRINUSE
- case EADDRINUSE:
- sym = @symbol(EADDRINUSE);
- typ = @symbol(existingReferentSignal);
- break;
+ case EADDRINUSE:
+ sym = @symbol(EADDRINUSE);
+ typ = @symbol(existingReferentSignal);
+ break;
#endif
#ifdef EADDRNOTAVAIL
- case EADDRNOTAVAIL:
- sym = @symbol(EADDRNOTAVAIL);
- typ = @symbol(noPermissionsSignal);
- break;
+ case EADDRNOTAVAIL:
+ sym = @symbol(EADDRNOTAVAIL);
+ typ = @symbol(noPermissionsSignal);
+ break;
#endif
#ifdef ETIMEDOUT
- case ETIMEDOUT:
- sym = @symbol(ETIMEDOUT);
- typ = @symbol(peerFaultSignal);
- break;
+ case ETIMEDOUT:
+ sym = @symbol(ETIMEDOUT);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef ECONNREFUSED
- case ECONNREFUSED:
- sym = @symbol(ECONNREFUSED);
- typ = @symbol(peerFaultSignal);
- break;
+ case ECONNREFUSED:
+ sym = @symbol(ECONNREFUSED);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef ENETDOWN
- case ENETDOWN:
- sym = @symbol(ENETDOWN);
- typ = @symbol(peerFaultSignal);
- break;
+ case ENETDOWN:
+ sym = @symbol(ENETDOWN);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef ENETUNREACH
- case ENETUNREACH:
- sym = @symbol(ENETUNREACH);
- typ = @symbol(peerFaultSignal);
- break;
+ case ENETUNREACH:
+ sym = @symbol(ENETUNREACH);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef ENETRESET
- case ENETRESET:
- sym = @symbol(ENETRESET);
- typ = @symbol(peerFaultSignal);
- break;
+ case ENETRESET:
+ sym = @symbol(ENETRESET);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef ECONNABORTED
- case ECONNABORTED:
- sym = @symbol(ECONNABORTED);
- typ = @symbol(peerFaultSignal);
- break;
+ case ECONNABORTED:
+ sym = @symbol(ECONNABORTED);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef ECONNRESET
- case ECONNRESET:
- sym = @symbol(ECONNRESET);
- typ = @symbol(peerFaultSignal);
- break;
+ case ECONNRESET:
+ sym = @symbol(ECONNRESET);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef EISCONN
- case EISCONN:
- sym = @symbol(EISCONN);
- typ = @symbol(unpreparedOperationSignal);
- break;
+ case EISCONN:
+ sym = @symbol(EISCONN);
+ typ = @symbol(unpreparedOperationSignal);
+ break;
#endif
#ifdef ENOTCONN
- case ENOTCONN:
- sym = @symbol(ENOTCONN);
- typ = @symbol(unpreparedOperationSignal);
- break;
+ case ENOTCONN:
+ sym = @symbol(ENOTCONN);
+ typ = @symbol(unpreparedOperationSignal);
+ break;
#endif
#ifdef ESHUTDOWN
- case ESHUTDOWN:
- sym = @symbol(ESHUTDOWN);
- typ = @symbol(unpreparedOperationSignal);
- break;
+ case ESHUTDOWN:
+ sym = @symbol(ESHUTDOWN);
+ typ = @symbol(unpreparedOperationSignal);
+ break;
#endif
#ifdef EHOSTDOWN
- case EHOSTDOWN:
- sym = @symbol(EHOSTDOWN);
- typ = @symbol(peerFaultSignal);
- break;
+ case EHOSTDOWN:
+ sym = @symbol(EHOSTDOWN);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef EHOSTUNREACH
- case EHOSTUNREACH:
- sym = @symbol(EHOSTUNREACH);
- typ = @symbol(peerFaultSignal);
- break;
+ case EHOSTUNREACH:
+ sym = @symbol(EHOSTUNREACH);
+ typ = @symbol(peerFaultSignal);
+ break;
#endif
#ifdef WSAEFAULT
- case WSAEFAULT:
- sym = @symbol(WSAEFAULT);
- typ = @symbol(invalidArgumentsSignal);
- break;
+ case WSAEFAULT:
+ sym = @symbol(WSAEFAULT);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
#endif
#ifdef WSAEINTR
- case WSAEINTR:
- sym = @symbol(WSAEINTR);
- typ = @symbol(transientErrorSignal);
- break;
+ case WSAEINTR:
+ sym = @symbol(WSAEINTR);
+ typ = @symbol(transientErrorSignal);
+ break;
#endif
#ifdef WSAEBADF
- case WSAEBADF:
- sym = @symbol(WSAEBADF);
- typ = @symbol(badAccessorSignal);
- break;
+ case WSAEBADF:
+ sym = @symbol(WSAEBADF);
+ typ = @symbol(badAccessorSignal);
+ break;
#endif
#ifdef WSAEACCESS
- case WSAEACCESS:
- sym = @symbol(WSAEACCESS);
- typ = @symbol(badAccessorSignal);
- break;
+ case WSAEACCESS:
+ sym = @symbol(WSAEACCESS);
+ typ = @symbol(badAccessorSignal);
+ break;
#endif
#ifdef WSAEINVAL
- case WSAEINVAL:
- sym = @symbol(WSAEINVAL);
- typ = @symbol(invalidArgumentsSignal);
- break;
+ case WSAEINVAL:
+ sym = @symbol(WSAEINVAL);
+ typ = @symbol(invalidArgumentsSignal);
+ break;
#endif
#ifdef WSAEMFILE
- case WSAEMFILE:
- sym = @symbol(WSAEMFILE);
- typ = @symbol(noResourcesSignal);
- break;
+ case WSAEMFILE:
+ sym = @symbol(WSAEMFILE);
+ typ = @symbol(noResourcesSignal);
+ break;
#endif
#ifdef WSAEWOULDBLOCK
- case WSAEWOULDBLOCK:
- sym = @symbol(WSAEWOULDBLOCK);
- typ = @symbol(notReadySignal);
- break;
+ case WSAEWOULDBLOCK:
+ sym = @symbol(WSAEWOULDBLOCK);
+ typ = @symbol(notReadySignal);
+ break;
#endif
#ifdef WSAEINPROGRESS
- case WSAEINPROGRESS:
- sym = @symbol(WSAEINPROGRESS);
- typ = @symbol(operationStartedSignal);
- break;
+ case WSAEINPROGRESS:
+ sym = @symbol(WSAEINPROGRESS);
+ typ = @symbol(operationStartedSignal);
+ break;
#endif
#ifdef WSAEALREADY
- case WSAEALREADY:
- sym = @symbol(WSAEALREADY);
- typ = @symbol(operationStartedSignal);
- break;
+ case WSAEALREADY:
+ sym = @symbol(WSAEALREADY);
+ typ = @symbol(operationStartedSignal);
+ break;
#endif
#ifdef WSAENOTSOCK
- case WSAENOTSOCK:
- sym = @symbol(WSAENOTSOCK);
- typ = @symbol(inappropriateOperationSignal);
- break;
+ case WSAENOTSOCK:
+ sym = @symbol(WSAENOTSOCK);
+ typ = @symbol(inappropriateOperationSignal);
+ break;
#endif
#ifdef WSAEPROTONOSUPPORT
- case WSAEPROTONOSUPPORT:
- sym = @symbol(WSAEPROTONOSUPPORT);
- typ = @symbol(unsupportedOperationSignal);
- break;
+ case WSAEPROTONOSUPPORT:
+ sym = @symbol(WSAEPROTONOSUPPORT);
+ typ = @symbol(unsupportedOperationSignal);
+ break;
#endif
#ifdef WSAESOCKTNOSUPPORT
- case WSAESOCKTNOSUPPORT:
- sym = @symbol(WSAESOCKTNOSUPPORT);
- typ = @symbol(unsupportedOperationSignal);
- break;
+ case WSAESOCKTNOSUPPORT:
+ sym = @symbol(WSAESOCKTNOSUPPORT);
+ typ = @symbol(unsupportedOperationSignal);
+ break;
#endif
#ifdef E_NOINTERFACE
- case E_NOINTERFACE:
- sym = @symbol(E_NOINTERFACE);
- typ = @symbol(noInterfaceSignal);
- break;
+ case E_NOINTERFACE:
+ sym = @symbol(E_NOINTERFACE);
+ typ = @symbol(noInterfaceSignal);
+ break;
#endif
#ifdef CO_E_NOTINITIALIZED
- case CO_E_NOTINITIALIZED:
- sym = @symbol(CO_E_NOTINITIALIZED);
- typ = @symbol(coNotInitializedSignal);
- break;
+ case CO_E_NOTINITIALIZED:
+ sym = @symbol(CO_E_NOTINITIALIZED);
+ typ = @symbol(coNotInitializedSignal);
+ break;
#endif
#ifdef REGDB_E_CLASSNOTREG
- case REGDB_E_CLASSNOTREG:
- sym = @symbol(REGDB_E_CLASSNOTREG);
- typ = @symbol(classNotRegisteredSignal);
- break;
+ case REGDB_E_CLASSNOTREG:
+ sym = @symbol(REGDB_E_CLASSNOTREG);
+ typ = @symbol(classNotRegisteredSignal);
+ break;
#endif
#ifdef CLASS_E_NOAGGREGATION
- case CLASS_E_NOAGGREGATION:
- sym = @symbol(CLASS_E_NOAGGREGATION);
- typ = @symbol(noAggregationSignal);
- break;
+ case CLASS_E_NOAGGREGATION:
+ sym = @symbol(CLASS_E_NOAGGREGATION);
+ typ = @symbol(noAggregationSignal);
+ break;
#endif
#ifdef DISP_E_UNKNOWNNAME
- case DISP_E_UNKNOWNNAME:
- sym = @symbol(DISP_E_UNKNOWNNAME);
- typ = @symbol(unknownNameSignal);
- break;
+ case DISP_E_UNKNOWNNAME:
+ sym = @symbol(DISP_E_UNKNOWNNAME);
+ typ = @symbol(unknownNameSignal);
+ break;
#endif
#ifdef OLEOBJ_E_NOVERBS
- case OLEOBJ_E_NOVERBS:
- sym = @symbol(OLEOBJ_E_NOVERBS);
- typ = @symbol(noVerbsSignal);
- break;
-#endif
-
- default:
- break;
- }
+ case OLEOBJ_E_NOVERBS:
+ sym = @symbol(OLEOBJ_E_NOVERBS);
+ typ = @symbol(noVerbsSignal);
+ break;
+#endif
+
+ default:
+ break;
+ }
}
}
%}.
@@ -2427,207 +2442,212 @@
*/
#ifdef ERROR_INVALID_FUNCTION
if (sym == @symbol(ERROR_INVALID_FUNCTION)) {
- RETURN ( __mkSmallInteger(ERROR_INVALID_FUNCTION) );
+ RETURN ( __mkSmallInteger(ERROR_INVALID_FUNCTION) );
}
#endif
#ifdef ERROR_BAD_FORMAT
if (sym == @symbol(ERROR_BAD_FORMAT)) {
- RETURN ( __mkSmallInteger(ERROR_BAD_FORMAT) );
+ RETURN ( __mkSmallInteger(ERROR_BAD_FORMAT) );
}
#endif
#ifdef ERROR_FILE_NOT_FOUND
if (sym == @symbol(ERROR_FILE_NOT_FOUND)) {
- RETURN ( __mkSmallInteger(ERROR_FILE_NOT_FOUND) );
+ RETURN ( __mkSmallInteger(ERROR_FILE_NOT_FOUND) );
}
#endif
#ifdef ERROR_PATH_NOT_FOUND
if (sym == @symbol(ERROR_PATH_NOT_FOUND)) {
- RETURN ( __mkSmallInteger(ERROR_PATH_NOT_FOUND) );
+ RETURN ( __mkSmallInteger(ERROR_PATH_NOT_FOUND) );
}
#endif
#ifdef ERROR_TOO_MANY_OPEN_FILES
if (sym == @symbol(ERROR_TOO_MANY_OPEN_FILES)) {
- RETURN ( __mkSmallInteger(ERROR_TOO_MANY_OPEN_FILES) );
+ RETURN ( __mkSmallInteger(ERROR_TOO_MANY_OPEN_FILES) );
}
#endif
#ifdef ERROR_OPEN_FAILED
if (sym == @symbol(ERROR_OPEN_FAILED)) {
- RETURN ( __mkSmallInteger(ERROR_OPEN_FAILED) );
+ RETURN ( __mkSmallInteger(ERROR_OPEN_FAILED) );
}
#endif
#ifdef ERROR_ACCESS_DENIED
if (sym == @symbol(ERROR_ACCESS_DENIED)) {
- RETURN ( __mkSmallInteger(ERROR_ACCESS_DENIED) );
+ RETURN ( __mkSmallInteger(ERROR_ACCESS_DENIED) );
}
#endif
#ifdef ERROR_INVALID_HANDLE
if (sym == @symbol(ERROR_INVALID_HANDLE)) {
- RETURN ( __mkSmallInteger(ERROR_INVALID_HANDLE) );
+ RETURN ( __mkSmallInteger(ERROR_INVALID_HANDLE) );
}
#endif
#ifdef ERROR_NOT_ENOUGH_MEMORY
if (sym == @symbol(ERROR_NOT_ENOUGH_MEMORY)) {
- RETURN ( __mkSmallInteger(ERROR_NOT_ENOUGH_MEMORY) );
+ RETURN ( __mkSmallInteger(ERROR_NOT_ENOUGH_MEMORY) );
+ }
+#endif
+#ifdef ERROR_NO_SYSTEM_RESOURCES
+ if (sym == @symbol(ERROR_NO_SYSTEM_RESOURCES)) {
+ RETURN ( __mkSmallInteger(ERROR_NO_SYSTEM_RESOURCES) );
}
#endif
#ifdef ERROR_INVALID_ACCESS
if (sym == @symbol(ERROR_INVALID_ACCESS)) {
- RETURN ( __mkSmallInteger(ERROR_INVALID_ACCESS) );
+ RETURN ( __mkSmallInteger(ERROR_INVALID_ACCESS) );
}
#endif
#ifdef ERROR_INVALID_DATA
if (sym == @symbol(ERROR_INVALID_DATA)) {
- RETURN ( __mkSmallInteger(ERROR_INVALID_DATA) );
+ RETURN ( __mkSmallInteger(ERROR_INVALID_DATA) );
}
#endif
#ifdef ERROR_INVALID_NAME
if (sym == @symbol(ERROR_INVALID_NAME)) {
- RETURN ( __mkSmallInteger(ERROR_INVALID_NAME) );
+ RETURN ( __mkSmallInteger(ERROR_INVALID_NAME) );
}
#endif
#ifdef ERROR_ARENA_TRASHED
if (sym == @symbol(ERROR_ARENA_TRASHED)) {
- RETURN ( __mkSmallInteger(ERROR_ARENA_TRASHED) );
+ RETURN ( __mkSmallInteger(ERROR_ARENA_TRASHED) );
}
#endif
#ifdef ERROR_OUTOFMEMORY
if (sym == @symbol(ERROR_OUTOFMEMORY)) {
- RETURN ( __mkSmallInteger(ERROR_OUTOFMEMORY) );
+ RETURN ( __mkSmallInteger(ERROR_OUTOFMEMORY) );
}
#endif
#ifdef ERROR_BROKEN_PIPE
if (sym == @symbol(ERROR_BROKEN_PIPE)) {
- RETURN ( __mkSmallInteger(ERROR_BROKEN_PIPE) );
+ RETURN ( __mkSmallInteger(ERROR_BROKEN_PIPE) );
}
#endif
#ifdef ERROR_GEN_FAILURE
if (sym == @symbol(ERROR_GEN_FAILURE)) {
- RETURN ( __mkSmallInteger(ERROR_GEN_FAILURE) );
+ RETURN ( __mkSmallInteger(ERROR_GEN_FAILURE) );
}
#endif
#ifdef ERROR_WRITE_PROTECT
if (sym == @symbol(ERROR_WRITE_PROTECT)) {
- RETURN ( __mkSmallInteger(ERROR_WRITE_PROTECT) );
+ RETURN ( __mkSmallInteger(ERROR_WRITE_PROTECT) );
}
#endif
#ifdef ERROR_WRITE_FAULT
if (sym == @symbol(ERROR_WRITE_FAULT)) {
- RETURN ( __mkSmallInteger(ERROR_WRITE_FAULT) );
+ RETURN ( __mkSmallInteger(ERROR_WRITE_FAULT) );
}
#endif
#ifdef ERROR_READ_FAULT
if (sym == @symbol(ERROR_READ_FAULT)) {
- RETURN ( __mkSmallInteger(ERROR_READ_FAULT) );
+ RETURN ( __mkSmallInteger(ERROR_READ_FAULT) );
}
#endif
#ifdef ERROR_HANDLE_DISK_FULL
if (sym == @symbol(ERROR_HANDLE_DISK_FULL)) {
- RETURN ( __mkSmallInteger(ERROR_HANDLE_DISK_FULL) );
+ RETURN ( __mkSmallInteger(ERROR_HANDLE_DISK_FULL) );
}
#endif
#ifdef ERROR_DISK_FULL
if (sym == @symbol(ERROR_DISK_FULL)) {
- RETURN ( __mkSmallInteger(ERROR_DISK_FULL) );
+ RETURN ( __mkSmallInteger(ERROR_DISK_FULL) );
}
#endif
#ifdef ERROR_ERROR_SHARING_VIOLATION
if (sym == @symbol(ERROR_ERROR_SHARING_VIOLATION)) {
- RETURN ( __mkSmallInteger(ERROR_ERROR_SHARING_VIOLATION) );
+ RETURN ( __mkSmallInteger(ERROR_ERROR_SHARING_VIOLATION) );
}
#endif
#ifdef ERROR_LOCK_VIOLATION
if (sym == @symbol(ERROR_LOCK_VIOLATION)) {
- RETURN ( __mkSmallInteger(ERROR_LOCK_VIOLATION) );
+ RETURN ( __mkSmallInteger(ERROR_LOCK_VIOLATION) );
}
#endif
#ifdef ERROR_INVALID_PARAMETER
if (sym == @symbol(ERROR_INVALID_PARAMETER)) {
- RETURN ( __mkSmallInteger(ERROR_INVALID_PARAMETER) );
+ RETURN ( __mkSmallInteger(ERROR_INVALID_PARAMETER) );
}
#endif
#ifdef ERROR_NET_WRITE_FAULT
if (sym == @symbol(ERROR_NET_WRITE_FAULT)) {
- RETURN ( __mkSmallInteger(ERROR_NET_WRITE_FAULT) );
+ RETURN ( __mkSmallInteger(ERROR_NET_WRITE_FAULT) );
}
#endif
#ifdef ERROR_NOT_SUPPORTED
if (sym == @symbol(ERROR_NOT_SUPPORTED)) {
- RETURN ( __mkSmallInteger(ERROR_NOT_SUPPORTED) );
+ RETURN ( __mkSmallInteger(ERROR_NOT_SUPPORTED) );
}
#endif
#ifdef ERROR_REM_NOT_LIST
if (sym == @symbol(ERROR_REM_NOT_LIST)) {
- RETURN ( __mkSmallInteger(ERROR_REM_NOT_LIST) );
+ RETURN ( __mkSmallInteger(ERROR_REM_NOT_LIST) );
}
#endif
#ifdef ERROR_NETWORK_ACCESS_DENIED
if (sym == @symbol(ERROR_NETWORK_ACCESS_DENIED)) {
- RETURN ( __mkSmallInteger(ERROR_NETWORK_ACCESS_DENIED) );
+ RETURN ( __mkSmallInteger(ERROR_NETWORK_ACCESS_DENIED) );
}
#endif
#ifdef ERROR_DUP_NAME
if (sym == @symbol(ERROR_DUP_NAME)) {
- RETURN ( __mkSmallInteger(ERROR_DUP_NAME) );
+ RETURN ( __mkSmallInteger(ERROR_DUP_NAME) );
}
#endif
#ifdef ERROR_BAD_NETPATH
if (sym == @symbol(ERROR_BAD_NETPATH)) {
- RETURN ( __mkSmallInteger(ERROR_BAD_NETPATH) );
+ RETURN ( __mkSmallInteger(ERROR_BAD_NETPATH) );
}
#endif
#ifdef ERROR_NETWORK_BUSY
if (sym == @symbol(ERROR_NETWORK_BUSY)) {
- RETURN ( __mkSmallInteger(ERROR_NETWORK_BUSY) );
+ RETURN ( __mkSmallInteger(ERROR_NETWORK_BUSY) );
}
#endif
#ifdef ERROR_DRIVE_LOCKED
if (sym == @symbol(ERROR_DRIVE_LOCKED)) {
- RETURN ( __mkSmallInteger(ERROR_DRIVE_LOCKED) );
+ RETURN ( __mkSmallInteger(ERROR_DRIVE_LOCKED) );
}
#endif
#ifdef ERROR_INVALID_DRIVE
if (sym == @symbol(ERROR_INVALID_DRIVE)) {
- RETURN ( __mkSmallInteger(ERROR_INVALID_DRIVE) );
+ RETURN ( __mkSmallInteger(ERROR_INVALID_DRIVE) );
}
#endif
#ifdef ERROR_WRONG_DISK
if (sym == @symbol(ERROR_WRONG_DISK)) {
- RETURN ( __mkSmallInteger(ERROR_WRONG_DISK) );
+ RETURN ( __mkSmallInteger(ERROR_WRONG_DISK) );
}
#endif
#ifdef ERROR_CURRENT_DIRECTORY
if (sym == @symbol(ERROR_CURRENT_DIRECTORY)) {
- RETURN ( __mkSmallInteger(ERROR_CURRENT_DIRECTORY) );
+ RETURN ( __mkSmallInteger(ERROR_CURRENT_DIRECTORY) );
}
#endif
#ifdef ERROR_CANNOT_MAKE
if (sym == @symbol(ERROR_CANNOT_MAKE)) {
- RETURN ( __mkSmallInteger(ERROR_CANNOT_MAKE) );
+ RETURN ( __mkSmallInteger(ERROR_CANNOT_MAKE) );
}
#endif
#ifdef ERROR_NO_MORE_FILES
if (sym == @symbol(ERROR_NO_MORE_FILES)) {
- RETURN ( __mkSmallInteger(ERROR_NO_MORE_FILES) );
+ RETURN ( __mkSmallInteger(ERROR_NO_MORE_FILES) );
}
#endif
#ifdef ERROR_NOT_READY
if (sym == @symbol(ERROR_NOT_READY)) {
- RETURN ( __mkSmallInteger(ERROR_NOT_READY) );
+ RETURN ( __mkSmallInteger(ERROR_NOT_READY) );
}
#endif
#ifdef ERROR_NOT_DOS_DISK
if (sym == @symbol(ERROR_NOT_DOS_DISK)) {
- RETURN ( __mkSmallInteger(ERROR_NOT_DOS_DISK) );
+ RETURN ( __mkSmallInteger(ERROR_NOT_DOS_DISK) );
}
#endif
#ifdef ERROR_OUT_OF_PAPER
if (sym == @symbol(ERROR_OUT_OF_PAPER)) {
- RETURN ( __mkSmallInteger(ERROR_OUT_OF_PAPER) );
+ RETURN ( __mkSmallInteger(ERROR_OUT_OF_PAPER) );
}
#endif
#ifdef ERROR_PRINTQ_FULL
if (sym == @symbol(ERROR_PRINTQ_FULL)) {
- RETURN ( __mkSmallInteger(ERROR_PRINTQ_FULL) );
+ RETURN ( __mkSmallInteger(ERROR_PRINTQ_FULL) );
}
#endif
@@ -2636,229 +2656,229 @@
*/
#ifdef EPERM
if (sym == @symbol(EPERM)) {
- RETURN ( __mkSmallInteger(EPERM) );
+ RETURN ( __mkSmallInteger(EPERM) );
}
#endif
#ifdef ENOENT
if (sym == @symbol(ENOENT)) {
- RETURN ( __mkSmallInteger(ENOENT) );
+ RETURN ( __mkSmallInteger(ENOENT) );
}
#endif
#ifdef ESRCH
if (sym == @symbol(ESRCH)) {
- RETURN ( __mkSmallInteger(ESRCH) );
+ RETURN ( __mkSmallInteger(ESRCH) );
}
#endif
#ifdef EINTR
if (sym == @symbol(EINTR)) {
- RETURN ( __mkSmallInteger(EINTR) );
+ RETURN ( __mkSmallInteger(EINTR) );
}
#endif
#ifdef EIO
if (sym == @symbol(EIO)) {
- RETURN ( __mkSmallInteger(EIO) );
+ RETURN ( __mkSmallInteger(EIO) );
}
#endif
#ifdef ENXIO
if (sym == @symbol(ENXIO)) {
- RETURN ( __mkSmallInteger(ENXIO) );
+ RETURN ( __mkSmallInteger(ENXIO) );
}
#endif
#ifdef E2BIG
if (sym == @symbol(E2BIG)) {
- RETURN ( __mkSmallInteger(E2BIG) );
+ RETURN ( __mkSmallInteger(E2BIG) );
}
#endif
#ifdef ENOEXEC
if (sym == @symbol(ENOEXEC)) {
- RETURN ( __mkSmallInteger(ENOEXEC) );
+ RETURN ( __mkSmallInteger(ENOEXEC) );
}
#endif
#ifdef EBADF
if (sym == @symbol(EBADF)) {
- RETURN ( __mkSmallInteger(EBADF) );
+ RETURN ( __mkSmallInteger(EBADF) );
}
#endif
#ifdef ECHILD
if (sym == @symbol(ECHILD)) {
- RETURN ( __mkSmallInteger(ECHILD) );
+ RETURN ( __mkSmallInteger(ECHILD) );
}
#endif
#if defined(EAGAIN)
if (sym == @symbol(EAGAIN)) {
- RETURN ( __mkSmallInteger(EAGAIN) );
+ RETURN ( __mkSmallInteger(EAGAIN) );
}
#endif
#ifdef ENOMEM
if (sym == @symbol(ENOMEM)) {
- RETURN ( __mkSmallInteger(ENOMEM) );
+ RETURN ( __mkSmallInteger(ENOMEM) );
}
#endif
#ifdef EACCES
if (sym == @symbol(EACCES)) {
- RETURN ( __mkSmallInteger(EACCES) );
+ RETURN ( __mkSmallInteger(EACCES) );
}
#endif
#ifdef EFAULT
if (sym == @symbol(EFAULT)) {
- RETURN ( __mkSmallInteger(EFAULT) );
+ RETURN ( __mkSmallInteger(EFAULT) );
}
#endif
#ifdef EBUSY
if (sym == @symbol(EBUSY)) {
- RETURN ( __mkSmallInteger(EBUSY) );
+ RETURN ( __mkSmallInteger(EBUSY) );
}
#endif
#ifdef EXDEV
if (sym == @symbol(EXDEV)) {
- RETURN ( __mkSmallInteger(EXDEV) );
+ RETURN ( __mkSmallInteger(EXDEV) );
}
#endif
#ifdef ENODEV
if (sym == @symbol(ENODEV)) {
- RETURN ( __mkSmallInteger(ENODEV) );
+ RETURN ( __mkSmallInteger(ENODEV) );
}
#endif
#ifdef ENOTDIR
if (sym == @symbol(ENOTDIR)) {
- RETURN ( __mkSmallInteger(ENOTDIR) );
+ RETURN ( __mkSmallInteger(ENOTDIR) );
}
#endif
#ifdef EISDIR
if (sym == @symbol(EISDIR)) {
- RETURN ( __mkSmallInteger(EISDIR) );
+ RETURN ( __mkSmallInteger(EISDIR) );
}
#endif
#ifdef EINVAL
if (sym == @symbol(EINVAL)) {
- RETURN ( __mkSmallInteger(EINVAL) );
+ RETURN ( __mkSmallInteger(EINVAL) );
}
#endif
#ifdef ENFILE
if (sym == @symbol(ENFILE)) {
- RETURN ( __mkSmallInteger(ENFILE) );
+ RETURN ( __mkSmallInteger(ENFILE) );
}
#endif
#ifdef EMFILE
if (sym == @symbol(EMFILE)) {
- RETURN ( __mkSmallInteger(EMFILE) );
+ RETURN ( __mkSmallInteger(EMFILE) );
}
#endif
#ifdef ENOTTY
if (sym == @symbol(ENOTTY)) {
- RETURN ( __mkSmallInteger(ENOTTY) );
+ RETURN ( __mkSmallInteger(ENOTTY) );
}
#endif
#ifdef EFBIG
if (sym == @symbol(EFBIG)) {
- RETURN ( __mkSmallInteger(EFBIG) );
+ RETURN ( __mkSmallInteger(EFBIG) );
}
#endif
#ifdef ENOSPC
if (sym == @symbol(ENOSPC)) {
- RETURN ( __mkSmallInteger(ENOSPC) );
+ RETURN ( __mkSmallInteger(ENOSPC) );
}
#endif
#ifdef ESPIPE
if (sym == @symbol(ESPIPE)) {
- RETURN ( __mkSmallInteger(ESPIPE) );
+ RETURN ( __mkSmallInteger(ESPIPE) );
}
#endif
#ifdef EROFS
if (sym == @symbol(EROFS)) {
- RETURN ( __mkSmallInteger(EROFS) );
+ RETURN ( __mkSmallInteger(EROFS) );
}
#endif
#ifdef EMLINK
if (sym == @symbol(EMLINK)) {
- RETURN ( __mkSmallInteger(EMLINK) );
+ RETURN ( __mkSmallInteger(EMLINK) );
}
#endif
#ifdef EPIPE
if (sym == @symbol(EPIPE)) {
- RETURN ( __mkSmallInteger(EPIPE) );
+ RETURN ( __mkSmallInteger(EPIPE) );
}
#endif
#ifdef EDOM
if (sym == @symbol(EDOM)) {
- RETURN ( __mkSmallInteger(EDOM) );
+ RETURN ( __mkSmallInteger(EDOM) );
}
#endif
#ifdef ERANGE
if (sym == @symbol(ERANGE)) {
- RETURN ( __mkSmallInteger(ERANGE) );
+ RETURN ( __mkSmallInteger(ERANGE) );
}
#endif
#ifdef EDEADLK
if (sym == @symbol(EDEADLK)) {
- RETURN ( __mkSmallInteger(EDEADLK) );
+ RETURN ( __mkSmallInteger(EDEADLK) );
}
#endif
#ifdef ENAMETOOLONG
if (sym == @symbol(ENAMETOOLONG)) {
- RETURN ( __mkSmallInteger(ENAMETOOLONG) );
+ RETURN ( __mkSmallInteger(ENAMETOOLONG) );
}
#endif
#ifdef ENOLCK
if (sym == @symbol(ENOLCK)) {
- RETURN ( __mkSmallInteger(ENOLCK) );
+ RETURN ( __mkSmallInteger(ENOLCK) );
}
#endif
#ifdef ENOSYS
if (sym == @symbol(ENOSYS)) {
- RETURN ( __mkSmallInteger(ENOSYS) );
+ RETURN ( __mkSmallInteger(ENOSYS) );
}
#endif
#ifdef ENOTEMPTY
if (sym == @symbol(ENOTEMPTY)) {
- RETURN ( __mkSmallInteger(ENOTEMPTY) );
+ RETURN ( __mkSmallInteger(ENOTEMPTY) );
}
#endif
#ifdef EEXIST
if (sym == @symbol(EEXIST)) {
- RETURN ( __mkSmallInteger(EEXIST) );
+ RETURN ( __mkSmallInteger(EEXIST) );
}
#endif
#ifdef EILSEQ
if (sym == @symbol(EILSEQ)) {
- RETURN ( __mkSmallInteger(EILSEQ) );
+ RETURN ( __mkSmallInteger(EILSEQ) );
}
#endif
@@ -2867,13 +2887,13 @@
*/
#ifdef ENOTBLK
if (sym == @symbol(ENOTBLK)) {
- RETURN ( __mkSmallInteger(ENOTBLK) );
+ RETURN ( __mkSmallInteger(ENOTBLK) );
}
#endif
#ifdef ETXTBSY
if (sym == @symbol(ETXTBSY)) {
- RETURN ( __mkSmallInteger(ETXTBSY) );
+ RETURN ( __mkSmallInteger(ETXTBSY) );
}
#endif
@@ -2882,19 +2902,19 @@
*/
#ifdef EWOULDBLOCK
if (sym == @symbol(EWOULDBLOCK)) {
- RETURN ( __mkSmallInteger(EWOULDBLOCK) );
+ RETURN ( __mkSmallInteger(EWOULDBLOCK) );
}
#endif
#ifdef ENOMSG
if (sym == @symbol(ENOMSG)) {
- RETURN ( __mkSmallInteger(ENOMSG) );
+ RETURN ( __mkSmallInteger(ENOMSG) );
}
#endif
#ifdef ELOOP
if (sym == @symbol(ELOOP)) {
- RETURN ( __mkSmallInteger(ELOOP) );
+ RETURN ( __mkSmallInteger(ELOOP) );
}
#endif
@@ -2903,31 +2923,31 @@
*/
#ifdef ETIME
if (sym == @symbol(ETIME)) {
- RETURN ( __mkSmallInteger(ETIME) );
+ RETURN ( __mkSmallInteger(ETIME) );
}
#endif
#ifdef ENOSR
if (sym == @symbol(ENOSR)) {
- RETURN ( __mkSmallInteger(ENOSR) );
+ RETURN ( __mkSmallInteger(ENOSR) );
}
#endif
#ifdef ENOSTR
if (sym == @symbol(ENOSTR)) {
- RETURN ( __mkSmallInteger(ENOSTR) );
+ RETURN ( __mkSmallInteger(ENOSTR) );
}
#endif
#ifdef ECOMM
if (sym == @symbol(ECOMM)) {
- RETURN ( __mkSmallInteger(ECOMM) );
+ RETURN ( __mkSmallInteger(ECOMM) );
}
#endif
#ifdef EPROTO
if (sym == @symbol(EPROTO)) {
- RETURN ( __mkSmallInteger(EPROTO) );
+ RETURN ( __mkSmallInteger(EPROTO) );
}
#endif
@@ -2936,13 +2956,13 @@
*/
#ifdef ESTALE
if (sym == @symbol(ESTALE)) {
- RETURN ( __mkSmallInteger(ESTALE) );
+ RETURN ( __mkSmallInteger(ESTALE) );
}
#endif
#ifdef EREMOTE
if (sym == @symbol(EREMOTE)) {
- RETURN ( __mkSmallInteger(EREMOTE) );
+ RETURN ( __mkSmallInteger(EREMOTE) );
}
#endif
@@ -2951,157 +2971,157 @@
*/
#ifdef EINPROGRESS
if (sym == @symbol(EINPROGRESS)) {
- RETURN ( __mkSmallInteger(EINPROGRESS) );
+ RETURN ( __mkSmallInteger(EINPROGRESS) );
}
#endif
#ifdef EALREADY
if (sym == @symbol(EALREADY)) {
- RETURN ( __mkSmallInteger(EALREADY) );
+ RETURN ( __mkSmallInteger(EALREADY) );
}
#endif
#ifdef ENOTSOCK
if (sym == @symbol(ENOTSOCK)) {
- RETURN ( __mkSmallInteger(ENOTSOCK) );
+ RETURN ( __mkSmallInteger(ENOTSOCK) );
}
#endif
#ifdef EDESTADDRREQ
if (sym == @symbol(EDESTADDRREQ)) {
- RETURN ( __mkSmallInteger(EDESTADDRREQ) );
+ RETURN ( __mkSmallInteger(EDESTADDRREQ) );
}
#endif
#ifdef EMSGSIZE
if (sym == @symbol(EMSGSIZE)) {
- RETURN ( __mkSmallInteger(EMSGSIZE) );
+ RETURN ( __mkSmallInteger(EMSGSIZE) );
}
#endif
#ifdef EPROTOTYPE
if (sym == @symbol(EPROTOTYPE)) {
- RETURN ( __mkSmallInteger(EPROTOTYPE) );
+ RETURN ( __mkSmallInteger(EPROTOTYPE) );
}
#endif
#ifdef ENOPROTOOPT
if (sym == @symbol(ENOPROTOOPT)) {
- RETURN ( __mkSmallInteger(ENOPROTOOPT) );
+ RETURN ( __mkSmallInteger(ENOPROTOOPT) );
}
#endif
#ifdef EPROTONOSUPPORT
if (sym == @symbol(EPROTONOSUPPORT)) {
- RETURN ( __mkSmallInteger(EPROTONOSUPPORT) );
+ RETURN ( __mkSmallInteger(EPROTONOSUPPORT) );
}
#endif
#ifdef ESOCKTNOSUPPORT
if (sym == @symbol(ESOCKTNOSUPPORT)) {
- RETURN ( __mkSmallInteger(ESOCKTNOSUPPORT) );
+ RETURN ( __mkSmallInteger(ESOCKTNOSUPPORT) );
}
#endif
#ifdef EOPNOTSUPP
if (sym == @symbol(EOPNOTSUPP)) {
- RETURN ( __mkSmallInteger(EOPNOTSUPP) );
+ RETURN ( __mkSmallInteger(EOPNOTSUPP) );
}
#endif
#ifdef EPFNOSUPPORT
if (sym == @symbol(EPFNOSUPPORT)) {
- RETURN ( __mkSmallInteger(EPFNOSUPPORT) );
+ RETURN ( __mkSmallInteger(EPFNOSUPPORT) );
}
#endif
#ifdef EAFNOSUPPORT
if (sym == @symbol(EAFNOSUPPORT)) {
- RETURN ( __mkSmallInteger(EAFNOSUPPORT) );
+ RETURN ( __mkSmallInteger(EAFNOSUPPORT) );
}
#endif
#ifdef EADDRINUSE
if (sym == @symbol(EADDRINUSE)) {
- RETURN ( __mkSmallInteger(EADDRINUSE) );
+ RETURN ( __mkSmallInteger(EADDRINUSE) );
}
#endif
#ifdef EADDRNOTAVAIL
if (sym == @symbol(EADDRNOTAVAIL)) {
- RETURN ( __mkSmallInteger(EADDRNOTAVAIL) );
+ RETURN ( __mkSmallInteger(EADDRNOTAVAIL) );
}
#endif
#ifdef ETIMEDOUT
if (sym == @symbol(ETIMEDOUT)) {
- RETURN ( __mkSmallInteger(ETIMEDOUT) );
+ RETURN ( __mkSmallInteger(ETIMEDOUT) );
}
#endif
#ifdef ECONNREFUSED
if (sym == @symbol(ECONNREFUSED)) {
- RETURN ( __mkSmallInteger(ECONNREFUSED) );
+ RETURN ( __mkSmallInteger(ECONNREFUSED) );
}
#endif
#ifdef ENETDOWN
if (sym == @symbol(ENETDOWN)) {
- RETURN ( __mkSmallInteger(ENETDOWN) );
+ RETURN ( __mkSmallInteger(ENETDOWN) );
}
#endif
#ifdef ENETUNREACH
if (sym == @symbol(ENETUNREACH)) {
- RETURN ( __mkSmallInteger(ENETUNREACH) );
+ RETURN ( __mkSmallInteger(ENETUNREACH) );
}
#endif
#ifdef ENETRESET
if (sym == @symbol(ENETRESET)) {
- RETURN ( __mkSmallInteger(ENETRESET) );
+ RETURN ( __mkSmallInteger(ENETRESET) );
}
#endif
#ifdef ECONNABORTED
if (sym == @symbol(ECONNABORTED)) {
- RETURN ( __mkSmallInteger(ECONNABORTED) );
+ RETURN ( __mkSmallInteger(ECONNABORTED) );
}
#endif
#ifdef ECONNRESET
if (sym == @symbol(ECONNRESET)) {
- RETURN ( __mkSmallInteger(ECONNRESET) );
+ RETURN ( __mkSmallInteger(ECONNRESET) );
}
#endif
#ifdef EISCONN
if (sym == @symbol(EISCONN)) {
- RETURN ( __mkSmallInteger(EISCONN) );
+ RETURN ( __mkSmallInteger(EISCONN) );
}
#endif
#ifdef ENOTCONN
if (sym == @symbol(ENOTCONN)) {
- RETURN ( __mkSmallInteger(ENOTCONN) );
+ RETURN ( __mkSmallInteger(ENOTCONN) );
}
#endif
#ifdef ESHUTDOWN
if (sym == @symbol(ESHUTDOWN)) {
- RETURN ( __mkSmallInteger(ESHUTDOWN) );
+ RETURN ( __mkSmallInteger(ESHUTDOWN) );
}
#endif
#ifdef EHOSTDOWN
if (sym == @symbol(EHOSTDOWN)) {
- RETURN ( __mkSmallInteger(EHOSTDOWN) );
+ RETURN ( __mkSmallInteger(EHOSTDOWN) );
}
#endif
#ifdef EHOSTUNREACH
if (sym == @symbol(EHOSTUNREACH)) {
- RETURN ( __mkSmallInteger(EHOSTUNREACH) );
+ RETURN ( __mkSmallInteger(EHOSTUNREACH) );
}
#endif
/*
@@ -3109,92 +3129,92 @@
*/
#ifdef WSAEINTR
if (sym == @symbol(WSAEINTR)) {
- RETURN ( __mkSmallInteger(WSAEINTR) );
+ RETURN ( __mkSmallInteger(WSAEINTR) );
}
#endif
#ifdef WSAEBADF
if (sym == @symbol(WSAEBADF)) {
- RETURN ( __mkSmallInteger(WSAEBADF) );
+ RETURN ( __mkSmallInteger(WSAEBADF) );
}
#endif
#ifdef WSAEACCESS
if (sym == @symbol(WSAEACCESS)) {
- RETURN ( __mkSmallInteger(WSAEACCESS) );
+ RETURN ( __mkSmallInteger(WSAEACCESS) );
}
#endif
#ifdef WSAEFAULT
if (sym == @symbol(WSAEFAULT)) {
- RETURN ( __mkSmallInteger(WSAEFAULT) );
+ RETURN ( __mkSmallInteger(WSAEFAULT) );
}
#endif
#ifdef WSAEINVAL
if (sym == @symbol(WSAEINVAL)) {
- RETURN ( __mkSmallInteger(WSAEINVAL) );
+ RETURN ( __mkSmallInteger(WSAEINVAL) );
}
#endif
#ifdef WSAEMFILE
if (sym == @symbol(WSAEMFILE)) {
- RETURN ( __mkSmallInteger(WSAEMFILE) );
+ RETURN ( __mkSmallInteger(WSAEMFILE) );
}
#endif
#ifdef WSAEWOULDBLOCK
if (sym == @symbol(WSAEWOULDBLOCK)) {
- RETURN ( __mkSmallInteger(WSAEWOULDBLOCK) );
+ RETURN ( __mkSmallInteger(WSAEWOULDBLOCK) );
}
#endif
#ifdef WSAEINPROGRESS
if (sym == @symbol(WSAEINPROGRESS)) {
- RETURN ( __mkSmallInteger(WSAEINPROGRESS) );
+ RETURN ( __mkSmallInteger(WSAEINPROGRESS) );
}
#endif
#ifdef WSAEALREADY
if (sym == @symbol(WSAEALREADY)) {
- RETURN ( __mkSmallInteger(WSAEALREADY) );
+ RETURN ( __mkSmallInteger(WSAEALREADY) );
}
#endif
#ifdef WSAENOTSOCK
if (sym == @symbol(WSAENOTSOCK)) {
- RETURN ( __mkSmallInteger(WSAENOTSOCK) );
+ RETURN ( __mkSmallInteger(WSAENOTSOCK) );
}
#endif
#ifdef WSAEPROTONOSUPPORT
if (sym == @symbol(WSAEPROTONOSUPPORT)) {
- RETURN ( __mkSmallInteger(WSAEPROTONOSUPPORT) );
+ RETURN ( __mkSmallInteger(WSAEPROTONOSUPPORT) );
}
#endif
#ifdef WSAESOCKTNOSUPPORT
if (sym == @symbol(WSAESOCKTNOSUPPORT)) {
- RETURN ( __mkSmallInteger(WSAESOCKTNOSUPPORT) );
+ RETURN ( __mkSmallInteger(WSAESOCKTNOSUPPORT) );
}
#endif
#ifdef E_NOINTERFACE
if (sym == @symbol(E_NOINTERFACE)) {
- RETURN ( __MKUINT(E_NOINTERFACE) );
+ RETURN ( __MKUINT(E_NOINTERFACE) );
}
#endif
#ifdef CO_E_NOTINITIALIZED
if (sym == @symbol(CO_E_NOTINITIALIZED)) {
- RETURN ( __MKUINT(CO_E_NOTINITIALIZED) );
+ RETURN ( __MKUINT(CO_E_NOTINITIALIZED) );
}
#endif
#ifdef REGDB_E_CLASSNOTREG
if (sym == @symbol(REGDB_E_CLASSNOTREG)) {
- RETURN ( __MKUINT(REGDB_E_CLASSNOTREG) );
+ RETURN ( __MKUINT(REGDB_E_CLASSNOTREG) );
}
#endif
#ifdef CLASS_E_NOAGGREGATION
if (sym == @symbol(CLASS_E_NOAGGREGATION)) {
- RETURN ( __MKUINT(CLASS_E_NOAGGREGATION) );
+ RETURN ( __MKUINT(CLASS_E_NOAGGREGATION) );
}
#endif
#ifdef DISP_E_UNKNOWNNAME
if (sym == @symbol(DISP_E_UNKNOWNNAME)) {
- RETURN ( __MKUINT(DISP_E_UNKNOWNNAME) );
+ RETURN ( __MKUINT(DISP_E_UNKNOWNNAME) );
}
#endif
#ifdef OLEOBJ_E_NOVERBS
if (sym == @symbol(OLEOBJ_E_NOVERBS)) {
- RETURN ( __MKUINT(OLEOBJ_E_NOVERBS) );
+ RETURN ( __MKUINT(OLEOBJ_E_NOVERBS) );
}
#endif
@@ -3256,56 +3276,56 @@
hasRedirection := (aCommandString isNil or:[aCommandString includesAny:'<>|']).
hasRedirection ifFalse:[
- "/ test whether the commandString is an executable;
- "/ then, no shell is required
- cmdName := aCommandString withoutSeparators.
- (cmdName notEmpty and:[(cmdName startsWith:$") not]) ifTrue:[
- |index file suffix|
-
- index := cmdName indexOfSeparatorStartingAt:1.
- index ~~ 0 ifTrue:[
- args := cmdName copyFrom:(index+1).
- cmdName := cmdName copyFrom:1 to:(index-1).
- ] ifFalse:[
- args := ''.
- ].
-
- file := cmdName asFilename.
- suffix := file suffix.
-
- suffix isEmptyOrNil ifTrue:[
- suffix := 'exe'.
- file := file withSuffix:suffix.
- ].
-
- (file exists and:[suffix = 'exe' or:[suffix = 'com']]) ifTrue:[
- "/ is an executable, no shell required
- path := file fullAlternativePathName.
- ^ Array with:path with:aCommandString.
+ "/ test whether the commandString is an executable;
+ "/ then, no shell is required
+ cmdName := aCommandString withoutSeparators.
+ (cmdName notEmpty and:[(cmdName startsWith:$") not]) ifTrue:[
+ |index file suffix|
+
+ index := cmdName indexOfSeparatorStartingAt:1.
+ index ~~ 0 ifTrue:[
+ args := cmdName copyFrom:(index+1).
+ cmdName := cmdName copyFrom:1 to:(index-1).
+ ] ifFalse:[
+ args := ''.
+ ].
+
+ file := cmdName asFilename.
+ suffix := file suffix.
+
+ suffix isEmptyOrNil ifTrue:[
+ suffix := 'exe'.
+ file := file withSuffix:suffix.
+ ].
+
+ (file exists and:[suffix = 'exe' or:[suffix = 'com']]) ifTrue:[
+ "/ is an executable, no shell required
+ path := file fullAlternativePathName.
+ ^ Array with:path with:aCommandString.
"/ ^ Array with:path with:(path, ' ', args).
- ].
- path := self pathOfCommand:cmdName.
- path notNil ifTrue:[
- "/ is an executable, no shell required
- ^ Array with:path with:aCommandString.
+ ].
+ path := self pathOfCommand:cmdName.
+ path notNil ifTrue:[
+ "/ is an executable, no shell required
+ ^ Array with:path with:aCommandString.
"/ ^ Array with:path with:(path, ' ', args).
- ].
- ].
+ ].
+ ].
].
shell := self getEnvironment:'COMSPEC'.
shell isNil ifTrue:[
- wDir := self getWindowsSystemDirectory asFilename.
- shell := #('cmd.exe' 'command.com') detect:[:eachCommand|
- (wDir / eachCommand) isExecutable
- ] ifNone:[
- self error:'no cmd.exe available'.
- ].
- shell := (wDir / shell) pathName.
+ wDir := self getWindowsSystemDirectory asFilename.
+ shell := #('cmd.exe' 'command.com') detect:[:eachCommand|
+ (wDir / eachCommand) isExecutable
+ ] ifNone:[
+ self error:'no cmd.exe available'.
+ ].
+ shell := (wDir / shell) pathName.
].
aCommandString isEmptyOrNil ifTrue:[
- ^ Array with:shell with:nil
+ ^ Array with:shell with:nil
].
^ Array with:shell with:(' /c "' , aCommandString, '"')
@@ -3324,48 +3344,48 @@
"Internal lowLevel entry for combined fork & exec for WIN32
If fork is false (chain a command):
- execute the OS command specified by the argument, aCommandPath, with
- arguments in argArray (no arguments, if nil).
- If successful, this method does not return and smalltalk is gone.
- If not successful, it does return.
- Normal use is with forkForCommand.
+ execute the OS command specified by the argument, aCommandPath, with
+ arguments in argArray (no arguments, if nil).
+ If successful, this method does not return and smalltalk is gone.
+ If not successful, it does return.
+ Normal use is with forkForCommand.
If fork is true (subprocess command execution):
- fork a child to do the above.
- The Win32ProcessHandle of the child process is returned; nil if the fork failed.
+ fork a child to do the above.
+ The Win32ProcessHandle of the child process is returned; nil if the fork failed.
fdArray contains the filedescriptors, to be used for the child (if fork is true).
- fdArray[1] = 15 -> use fd 15 as stdin.
- If an element of the array is set to nil, the corresponding filedescriptor
- will be closed for the child.
- fdArray[0] == StdIn for child
- fdArray[1] == StdOut for child
- fdArray[2] == StdErr for child
- on VMS, these must be channels as returned by createMailBox.
+ fdArray[1] = 15 -> use fd 15 as stdin.
+ If an element of the array is set to nil, the corresponding filedescriptor
+ will be closed for the child.
+ fdArray[0] == StdIn for child
+ fdArray[1] == StdOut for child
+ fdArray[2] == StdErr for child
+ on VMS, these must be channels as returned by createMailBox.
NOTE that in WIN32 the fds are HANDLES.
If newPgrp is true, the subprocess will be established in a new process group.
- The processgroup will be equal to id.
- newPgrp is not used on WIN32 and VMS systems."
+ The processgroup will be equal to id.
+ newPgrp is not used on WIN32 and VMS systems."
|dirPath rslt|
aDirectory notNil ifTrue:[
- dirPath := aDirectory asFilename asAbsoluteFilename osNameForDirectory.
- (dirPath endsWith:':') ifTrue:[
- dirPath := dirPath , '\'.
- ].
+ dirPath := aDirectory asFilename asAbsoluteFilename osNameForDirectory.
+ (dirPath endsWith:':') ifTrue:[
+ dirPath := dirPath , '\'.
+ ].
].
rslt := self
- primExec:aCommandPath
- commandLine:argString
- fileDescriptors:fdArray
- fork:doFork
- newPgrp:newPgrp
- inPath:dirPath
- createFlags:nil.
+ primExec:aCommandPath
+ commandLine:argString
+ fileDescriptors:fdArray
+ fork:doFork
+ newPgrp:newPgrp
+ inPath:dirPath
+ createFlags:nil.
"/ 'created ' print. cmdLine print. ' -> ' print. rslt printCR.
^ rslt
@@ -3394,34 +3414,34 @@
|nullStream in out err rslt auxFd|
(in := anExternalInStream) isNil ifTrue:[
- nullStream := Filename nullDevice readWriteStream.
- in := nullStream.
+ nullStream := Filename nullDevice readWriteStream.
+ in := nullStream.
].
(out := anExternalOutStream) isNil ifTrue:[
- nullStream isNil ifTrue:[nullStream := Filename nullDevice writeStream].
- out := nullStream.
+ nullStream isNil ifTrue:[nullStream := Filename nullDevice writeStream].
+ out := nullStream.
].
(err := anExternalErrStream) isNil ifTrue:[
- err := out
+ err := out
].
anAuxiliaryStream notNil ifTrue:[
- auxFd := anAuxiliaryStream fileDescriptor
+ auxFd := anAuxiliaryStream fileDescriptor
].
rslt := self
- exec:commandString
- withArguments:argString
- environment:anEvironmentDictionary
- fileDescriptors:(Array with:in fileDescriptor
- with:out fileDescriptor
- with:err fileDescriptor
- with:auxFd)
- fork:true
- newPgrp:true "/ false
- inDirectory:dir.
+ exec:commandString
+ withArguments:argString
+ environment:anEvironmentDictionary
+ fileDescriptors:(Array with:in fileDescriptor
+ with:out fileDescriptor
+ with:err fileDescriptor
+ with:auxFd)
+ fork:true
+ newPgrp:true "/ false
+ inDirectory:dir.
nullStream notNil ifTrue:[
- nullStream close.
+ nullStream close.
].
^ rslt
@@ -3444,7 +3464,7 @@
The following will no longer work. monitorPid has disappeared
pid notNil ifTrue:[
- Processor monitorPid:pid action:[:OSstatus | sema signal ].
+ Processor monitorPid:pid action:[:OSstatus | sema signal ].
].
in close.
out close.
@@ -3468,28 +3488,28 @@
int status = -1;
if (__isExternalAddressLike(aProcessId)) {
- HANDLE handle = _HANDLEVal(aProcessId);
- if (handle) {
+ HANDLE handle = _HANDLEVal(aProcessId);
+ if (handle) {
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- endStatus = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, handle, INFINITE);
- } while ((endStatus < 0) && (__threadErrno == EINTR));
-#else
- endStatus = WaitForSingleObject(handle , INFINITE);
-#endif
- if (endStatus != WAIT_FAILED) {
- if (GetExitCodeProcess(handle,&endStatus)) {
- status = endStatus;
+ do {
+ __threadErrno = 0;
+ endStatus = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, handle, INFINITE);
+ } while ((endStatus < 0) && (__threadErrno == EINTR));
+#else
+ endStatus = WaitForSingleObject(handle , INFINITE);
+#endif
+ if (endStatus != WAIT_FAILED) {
+ if (GetExitCodeProcess(handle,&endStatus)) {
+ status = endStatus;
#ifdef PROCESSDEBUGWIN32
- console_fprintf(stderr, "getexitcode status = %d\n",status);
- } else {
- console_fprintf(stderr, "getexitcode failed.\n");
-#endif
- }
- }
- }
- RETURN ( __mkSmallInteger(status));
+ console_fprintf(stderr, "getexitcode status = %d\n",status);
+ } else {
+ console_fprintf(stderr, "getexitcode failed.\n");
+#endif
+ }
+ }
+ }
+ RETURN ( __mkSmallInteger(status));
}
%}.
self primitiveFailed
@@ -3503,52 +3523,52 @@
|path rentry rpath f fExt|
aCommand asFilename isAbsolute ifTrue:[
- aCommand asFilename exists ifTrue:[
- ^ aCommand
- ].
- ^ nil
+ aCommand asFilename exists ifTrue:[
+ ^ aCommand
+ ].
+ ^ nil
].
(aCommand includes:Filename separator) ifTrue:[
- path := Filename currentDirectory construct:aCommand.
- (path exists
- or:[(path withSuffix:'exe') exists]) ifTrue:[
- ^ path pathName
- ].
+ path := Filename currentDirectory construct:aCommand.
+ (path exists
+ or:[(path withSuffix:'exe') exists]) ifTrue:[
+ ^ path pathName
+ ].
].
path := self getEnvironment:'PATH'.
(rentry := self registryEntry key: 'HKEY_CURRENT_USER\Environment') notNil ifTrue:[
- rpath := rentry valueNamed: 'PATH'.
- rpath notNil ifTrue:[
- path := path , ';' , rpath
- ].
+ rpath := rentry valueNamed: 'PATH'.
+ rpath notNil ifTrue:[
+ path := path , ';' , rpath
+ ].
].
path notNil ifTrue:[
- (path asCollectionOfSubstringsSeparatedBy:(self pathSeparator)) do:[:path |
- path isEmpty ifTrue:[
- f := aCommand asFilename
- ] ifFalse:[
- f := path asFilename construct:aCommand.
- ].
- f suffix isEmpty ifTrue:[
- self executableFileExtensions do:[:ext |
- ext notEmpty ifTrue:[
- fExt := (f pathName , '.' , ext) asFilename.
- ] ifFalse:[
- fExt := f.
- ].
- fExt isExecutable ifTrue:[
- ^ fExt pathName
- ].
- ].
- ] ifFalse:[
- f isExecutable ifTrue:[
- ^ f pathName
- ].
- ].
- ].
+ (path asCollectionOfSubstringsSeparatedBy:(self pathSeparator)) do:[:path |
+ path isEmpty ifTrue:[
+ f := aCommand asFilename
+ ] ifFalse:[
+ f := path asFilename construct:aCommand.
+ ].
+ f suffix isEmpty ifTrue:[
+ self executableFileExtensions do:[:ext |
+ ext notEmpty ifTrue:[
+ fExt := (f pathName , '.' , ext) asFilename.
+ ] ifFalse:[
+ fExt := f.
+ ].
+ fExt isExecutable ifTrue:[
+ ^ fExt pathName
+ ].
+ ].
+ ] ifFalse:[
+ f isExecutable ifTrue:[
+ ^ f pathName
+ ].
+ ].
+ ].
].
^ nil
@@ -3587,149 +3607,149 @@
SECURITY_DESCRIPTOR securityDescriptor;
if ((__isStringLike(commandPath) || (commandPath == nil)) && __isStringLike(commandLine)) {
- if (commandPath != nil) {
- cmdPath = __stringVal(commandPath);
- }
- cmdLine = __stringVal(commandLine);
-
- if (__isStringLike(dirName)) {
- dir = __stringVal(dirName);
- }
-
- /*
- * create descriptors as req'd
- */
- memset(&securityAttributes, 0, sizeof(securityAttributes));
- securityAttributes.nLength = sizeof(securityAttributes);
- securityAttributes.bInheritHandle = TRUE;
-
- InitializeSecurityDescriptor(&securityDescriptor, SECURITY_DESCRIPTOR_REVISION);
- SetSecurityDescriptorDacl(&securityDescriptor, -1, 0, 0);
-
- securityAttributes.lpSecurityDescriptor = &securityDescriptor;
- memset(&lppiProcInfo, 0, sizeof (lppiProcInfo));
-
- memset(&lpsiStartInfo, 0, sizeof(lpsiStartInfo));
- lpsiStartInfo.cb = sizeof(lpsiStartInfo);
- lpsiStartInfo.lpReserved = NULL;
- lpsiStartInfo.lpDesktop = NULL;
- lpsiStartInfo.lpTitle = NULL;
- lpsiStartInfo.dwX = 0;
- lpsiStartInfo.dwY = 0;
- lpsiStartInfo.dwXSize = 100;
- lpsiStartInfo.dwYSize = 100;
- lpsiStartInfo.dwXCountChars = 0;
- lpsiStartInfo.dwYCountChars = 0;
- lpsiStartInfo.dwFillAttribute = 0;
- if (0 /*__isWinNT*/) {
- lpsiStartInfo.dwFlags = STARTF_USESTDHANDLES;
- lpsiStartInfo.wShowWindow = SW_SHOWDEFAULT;
- } else {
- lpsiStartInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES /*| STARTF_USEPOSITION*/;
- lpsiStartInfo.wShowWindow = SW_HIDE /*SW_SHOWDEFAULT*/;
- }
- lpsiStartInfo.cbReserved2 = 0;
- lpsiStartInfo.lpReserved2 = NULL;
- lpsiStartInfo.hStdInput = NULL;
- lpsiStartInfo.hStdOutput = NULL;
- lpsiStartInfo.hStdError = NULL;
-
- /*
- * set create process flags
- * if the flags arg is nil, use common defaults;
- * if non-nil, it must be a positive integer containing the fdwCreate bits.
- */
- if (flagsOrNil != nil) {
- fdwCreate = __longIntVal(flagsOrNil);
- } else {
- if (0 /* __isWinNT */)
- fdwCreate = 0; //IDLE_PRIORITY_CLASS;
- else
- fdwCreate = CREATE_NEW_CONSOLE; //|IDLE_PRIORITY_CLASS; // DETACHED_PROCESS; // NORMAL_PRIORITY_CLASS ;
-
- if (newPgrp == true) {
- fdwCreate |= CREATE_NEW_PROCESS_GROUP;
- }
- fdwCreate |= CREATE_DEFAULT_ERROR_MODE;
- }
-
- if (fdArray == nil) {
- lpsiStartInfo.hStdInput = (HANDLE) _get_osfhandle (0);
- lpsiStartInfo.hStdOutput = (HANDLE) _get_osfhandle (1);
- lpsiStartInfo.hStdError = (HANDLE) _get_osfhandle (2);
- } else if (__isArrayLike(fdArray) && (__arraySize(fdArray) >= 3)) {
- if (__ArrayInstPtr(fdArray)->a_element[0] != nil) {
- if (__isExternalAddressLike(__ArrayInstPtr(fdArray)->a_element[0])) {
- lpsiStartInfo.hStdInput = _HANDLEVal(__ArrayInstPtr(fdArray)->a_element[0]);
- } else {
- lpsiStartInfo.hStdInput = (HANDLE) _get_osfhandle (__intVal(__ArrayInstPtr(fdArray)->a_element[0]));
- }
- }
- if (__ArrayInstPtr(fdArray)->a_element[1] != nil) {
- if (__isExternalAddressLike(__ArrayInstPtr(fdArray)->a_element[1])) {
- lpsiStartInfo.hStdOutput = _HANDLEVal(__ArrayInstPtr(fdArray)->a_element[1]);
- } else {
- lpsiStartInfo.hStdOutput = (HANDLE) _get_osfhandle (__intVal(__ArrayInstPtr(fdArray)->a_element[1]));
- }
- }
- if (__ArrayInstPtr(fdArray)->a_element[2] != nil) {
- if (__isExternalAddressLike(__ArrayInstPtr(fdArray)->a_element[2])) {
- lpsiStartInfo.hStdError = _HANDLEVal(__ArrayInstPtr(fdArray)->a_element[2]);
- } else {
- lpsiStartInfo.hStdError = (HANDLE) _get_osfhandle (__intVal(__ArrayInstPtr(fdArray)->a_element[2]));
- }
- }
+ if (commandPath != nil) {
+ cmdPath = __stringVal(commandPath);
+ }
+ cmdLine = __stringVal(commandLine);
+
+ if (__isStringLike(dirName)) {
+ dir = __stringVal(dirName);
+ }
+
+ /*
+ * create descriptors as req'd
+ */
+ memset(&securityAttributes, 0, sizeof(securityAttributes));
+ securityAttributes.nLength = sizeof(securityAttributes);
+ securityAttributes.bInheritHandle = TRUE;
+
+ InitializeSecurityDescriptor(&securityDescriptor, SECURITY_DESCRIPTOR_REVISION);
+ SetSecurityDescriptorDacl(&securityDescriptor, -1, 0, 0);
+
+ securityAttributes.lpSecurityDescriptor = &securityDescriptor;
+ memset(&lppiProcInfo, 0, sizeof (lppiProcInfo));
+
+ memset(&lpsiStartInfo, 0, sizeof(lpsiStartInfo));
+ lpsiStartInfo.cb = sizeof(lpsiStartInfo);
+ lpsiStartInfo.lpReserved = NULL;
+ lpsiStartInfo.lpDesktop = NULL;
+ lpsiStartInfo.lpTitle = NULL;
+ lpsiStartInfo.dwX = 0;
+ lpsiStartInfo.dwY = 0;
+ lpsiStartInfo.dwXSize = 100;
+ lpsiStartInfo.dwYSize = 100;
+ lpsiStartInfo.dwXCountChars = 0;
+ lpsiStartInfo.dwYCountChars = 0;
+ lpsiStartInfo.dwFillAttribute = 0;
+ if (0 /*__isWinNT*/) {
+ lpsiStartInfo.dwFlags = STARTF_USESTDHANDLES;
+ lpsiStartInfo.wShowWindow = SW_SHOWDEFAULT;
+ } else {
+ lpsiStartInfo.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES /*| STARTF_USEPOSITION*/;
+ lpsiStartInfo.wShowWindow = SW_HIDE /*SW_SHOWDEFAULT*/;
+ }
+ lpsiStartInfo.cbReserved2 = 0;
+ lpsiStartInfo.lpReserved2 = NULL;
+ lpsiStartInfo.hStdInput = NULL;
+ lpsiStartInfo.hStdOutput = NULL;
+ lpsiStartInfo.hStdError = NULL;
+
+ /*
+ * set create process flags
+ * if the flags arg is nil, use common defaults;
+ * if non-nil, it must be a positive integer containing the fdwCreate bits.
+ */
+ if (flagsOrNil != nil) {
+ fdwCreate = __longIntVal(flagsOrNil);
+ } else {
+ if (0 /* __isWinNT */)
+ fdwCreate = 0; //IDLE_PRIORITY_CLASS;
+ else
+ fdwCreate = CREATE_NEW_CONSOLE; //|IDLE_PRIORITY_CLASS; // DETACHED_PROCESS; // NORMAL_PRIORITY_CLASS ;
+
+ if (newPgrp == true) {
+ fdwCreate |= CREATE_NEW_PROCESS_GROUP;
+ }
+ fdwCreate |= CREATE_DEFAULT_ERROR_MODE;
+ }
+
+ if (fdArray == nil) {
+ lpsiStartInfo.hStdInput = (HANDLE) _get_osfhandle (0);
+ lpsiStartInfo.hStdOutput = (HANDLE) _get_osfhandle (1);
+ lpsiStartInfo.hStdError = (HANDLE) _get_osfhandle (2);
+ } else if (__isArrayLike(fdArray) && (__arraySize(fdArray) >= 3)) {
+ if (__ArrayInstPtr(fdArray)->a_element[0] != nil) {
+ if (__isExternalAddressLike(__ArrayInstPtr(fdArray)->a_element[0])) {
+ lpsiStartInfo.hStdInput = _HANDLEVal(__ArrayInstPtr(fdArray)->a_element[0]);
+ } else {
+ lpsiStartInfo.hStdInput = (HANDLE) _get_osfhandle (__intVal(__ArrayInstPtr(fdArray)->a_element[0]));
+ }
+ }
+ if (__ArrayInstPtr(fdArray)->a_element[1] != nil) {
+ if (__isExternalAddressLike(__ArrayInstPtr(fdArray)->a_element[1])) {
+ lpsiStartInfo.hStdOutput = _HANDLEVal(__ArrayInstPtr(fdArray)->a_element[1]);
+ } else {
+ lpsiStartInfo.hStdOutput = (HANDLE) _get_osfhandle (__intVal(__ArrayInstPtr(fdArray)->a_element[1]));
+ }
+ }
+ if (__ArrayInstPtr(fdArray)->a_element[2] != nil) {
+ if (__isExternalAddressLike(__ArrayInstPtr(fdArray)->a_element[2])) {
+ lpsiStartInfo.hStdError = _HANDLEVal(__ArrayInstPtr(fdArray)->a_element[2]);
+ } else {
+ lpsiStartInfo.hStdError = (HANDLE) _get_osfhandle (__intVal(__ArrayInstPtr(fdArray)->a_element[2]));
+ }
+ }
#if defined(PROCESSDEBUGWIN32)
- console_fprintf(stderr, "stdin %x\n", lpsiStartInfo.hStdInput);
- console_fprintf(stderr, "stdout %x\n",lpsiStartInfo.hStdOutput);
- console_fprintf(stderr, "stderr %x\n",lpsiStartInfo.hStdError);
-#endif
- } else {
- console_fprintf(stderr, "Win32OS [warning]: bad fd arg in createProcess\n");
- }
-
- if (doFork == true) {
+ console_fprintf(stderr, "stdin %x\n", lpsiStartInfo.hStdInput);
+ console_fprintf(stderr, "stdout %x\n",lpsiStartInfo.hStdOutput);
+ console_fprintf(stderr, "stderr %x\n",lpsiStartInfo.hStdError);
+#endif
+ } else {
+ console_fprintf(stderr, "Win32OS [warning]: bad fd arg in createProcess\n");
+ }
+
+ if (doFork == true) {
#ifdef PROCESSDEBUGWIN32
- console_fprintf(stderr, "create process cmdPath:<%s> cmdLine:<%s> in <%s>\n", cmdPath, cmdLine, dir);
-#endif
- if (CreateProcess( cmdPath,
- cmdLine,
- &securityAttributes, NULL /* &securityAttributes */,
- securityAttributes.bInheritHandle, /* inherit handles */
- fdwCreate | CREATE_SUSPENDED, /* resume after setting affinity */
- NULL, /* env */
- dir,
- &lpsiStartInfo,
- &lppiProcInfo ))
- {
- DWORD processAffinityMask, systemAffinityMask;
-
- /*
- * Process was created suspended, now set the affinity mask
- * to any processor, and resume the processes main thread.
- * (librun/process.s limited the affinity to a single processor).
- */
- GetProcessAffinityMask(lppiProcInfo.hProcess, &processAffinityMask, &systemAffinityMask);
- SetProcessAffinityMask(lppiProcInfo.hProcess, systemAffinityMask);
- if ((fdwCreate & CREATE_SUSPENDED) == 0) {
- ResumeThread(lppiProcInfo.hThread);
- }
- CloseHandle(lppiProcInfo.hThread);
+ console_fprintf(stderr, "create process cmdPath:<%s> cmdLine:<%s> in <%s>\n", cmdPath, cmdLine, dir);
+#endif
+ if (CreateProcess( cmdPath,
+ cmdLine,
+ &securityAttributes, NULL /* &securityAttributes */,
+ securityAttributes.bInheritHandle, /* inherit handles */
+ fdwCreate | CREATE_SUSPENDED, /* resume after setting affinity */
+ NULL, /* env */
+ dir,
+ &lpsiStartInfo,
+ &lppiProcInfo ))
+ {
+ DWORD processAffinityMask, systemAffinityMask;
+
+ /*
+ * Process was created suspended, now set the affinity mask
+ * to any processor, and resume the processes main thread.
+ * (librun/process.s limited the affinity to a single processor).
+ */
+ GetProcessAffinityMask(lppiProcInfo.hProcess, &processAffinityMask, &systemAffinityMask);
+ SetProcessAffinityMask(lppiProcInfo.hProcess, systemAffinityMask);
+ if ((fdwCreate & CREATE_SUSPENDED) == 0) {
+ ResumeThread(lppiProcInfo.hThread);
+ }
+ CloseHandle(lppiProcInfo.hThread);
#ifdef PROCESSDEBUGWIN32
- console_fprintf(stderr, "created process hProcess=%x\n", lppiProcInfo.hProcess);
-#endif
-
- __externalAddressVal(handle) = lppiProcInfo.hProcess;
- ((struct __Win32OperatingSystem__Win32ProcessHandle_struct *)(handle))->pid = __mkSmallInteger(lppiProcInfo.dwProcessId);
- RETURN (handle);
- }
+ console_fprintf(stderr, "created process hProcess=%x\n", lppiProcInfo.hProcess);
+#endif
+
+ __externalAddressVal(handle) = lppiProcInfo.hProcess;
+ ((struct __Win32OperatingSystem__Win32ProcessHandle_struct *)(handle))->pid = __mkSmallInteger(lppiProcInfo.dwProcessId);
+ RETURN (handle);
+ }
#ifdef PROCESSDEBUGWIN32
- console_fprintf(stderr, "created process error %d\n", GetLastError());
-#endif
- RETURN (nil);
- } else {
- ; /* should never be called that way */
- }
+ console_fprintf(stderr, "created process error %d\n", GetLastError());
+#endif
+ RETURN (nil);
+ } else {
+ ; /* should never be called that way */
+ }
}
%}.
"
@@ -3755,102 +3775,102 @@
shExecInfo.cbSize = sizeof(shExecInfo);
if (__isSmallInteger(nShowCmd)) {
- shExecInfo.nShow = __intVal(nShowCmd);
+ shExecInfo.nShow = __intVal(nShowCmd);
} else {
- if (nShowCmd == @symbol(SW_SHOW)) {
- shExecInfo.nShow = SW_SHOW;
- } else if (nShowCmd == @symbol(SW_SHOWNORMAL)) {
- shExecInfo.nShow = SW_SHOWNORMAL;
- } else if (nShowCmd == @symbol(SW_SHOWDEFAULT)) {
- shExecInfo.nShow = SW_SHOWDEFAULT;
- } else if (nShowCmd == @symbol(SW_SHOWMAXIMIZED)) {
- shExecInfo.nShow = SW_SHOWMAXIMIZED;
- } else if (nShowCmd == @symbol(SW_SHOWMINIMIZED)) {
- shExecInfo.nShow = SW_SHOWMINIMIZED;
- } else if (nShowCmd == @symbol(SW_SHOWMINNOACTIVE)) {
- shExecInfo.nShow = SW_SHOWMINNOACTIVE;
- } else if (nShowCmd == @symbol(SW_SHOWNA)) {
- shExecInfo.nShow = SW_SHOWNA;
- } else if (nShowCmd == @symbol(SW_SHOWNOACTIVATE)) {
- shExecInfo.nShow = SW_SHOWNOACTIVATE;
- } else if (nShowCmd == @symbol(SW_MAXIMIZE)) {
- shExecInfo.nShow = SW_MAXIMIZE;
- } else if (nShowCmd == @symbol(SW_RESTORE)) {
- shExecInfo.nShow = SW_RESTORE;
- } else {
- goto badArgument;
- }
+ if (nShowCmd == @symbol(SW_SHOW)) {
+ shExecInfo.nShow = SW_SHOW;
+ } else if (nShowCmd == @symbol(SW_SHOWNORMAL)) {
+ shExecInfo.nShow = SW_SHOWNORMAL;
+ } else if (nShowCmd == @symbol(SW_SHOWDEFAULT)) {
+ shExecInfo.nShow = SW_SHOWDEFAULT;
+ } else if (nShowCmd == @symbol(SW_SHOWMAXIMIZED)) {
+ shExecInfo.nShow = SW_SHOWMAXIMIZED;
+ } else if (nShowCmd == @symbol(SW_SHOWMINIMIZED)) {
+ shExecInfo.nShow = SW_SHOWMINIMIZED;
+ } else if (nShowCmd == @symbol(SW_SHOWMINNOACTIVE)) {
+ shExecInfo.nShow = SW_SHOWMINNOACTIVE;
+ } else if (nShowCmd == @symbol(SW_SHOWNA)) {
+ shExecInfo.nShow = SW_SHOWNA;
+ } else if (nShowCmd == @symbol(SW_SHOWNOACTIVATE)) {
+ shExecInfo.nShow = SW_SHOWNOACTIVATE;
+ } else if (nShowCmd == @symbol(SW_MAXIMIZE)) {
+ shExecInfo.nShow = SW_MAXIMIZE;
+ } else if (nShowCmd == @symbol(SW_RESTORE)) {
+ shExecInfo.nShow = SW_RESTORE;
+ } else {
+ goto badArgument;
+ }
}
if (((lpOperation == nil) || __isStringLike(lpOperation))
&& ((lpFile == nil) || __isStringLike(lpFile))
&& ((lpParameters == nil) || __isStringLike(lpParameters))
&& ((lpDirectory == nil) || __isStringLike(lpDirectory))
) {
- // hProcess member receives the process handle
- shExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
-
- shExecInfo.hwnd = 0;
- shExecInfo.lpVerb = (lpOperation != nil) ? __stringVal(lpOperation) : NULL;
- shExecInfo.lpFile = (lpFile != nil) ? __stringVal(lpFile) : NULL;
- shExecInfo.lpParameters = (lpParameters != nil) ? __stringVal(lpParameters) : NULL;
- shExecInfo.lpDirectory = (lpDirectory != nil) ? __stringVal(lpDirectory) : NULL;
- if (hwnd != nil) {
- if (__isExternalAddressLike(hwnd)) {
- shExecInfo.hwnd = (HANDLE)(__externalAddressVal(hwnd));
- } else
- goto badArgument;
- }
- if (ShellExecuteEx(&shExecInfo)) {
- if (shExecInfo.hProcess) {
- DWORD processAffinityMask, systemAffinityMask;
- /*
- * Set the affinity mask
- * to any processor, and resume the processes main thread.
- * (librun/process.s limited the affinity to a single processor).
- */
- GetProcessAffinityMask(shExecInfo.hProcess, &processAffinityMask, &systemAffinityMask);
- SetProcessAffinityMask(shExecInfo.hProcess, systemAffinityMask);
-
- // new (does not work, yet):
- // __externalAddressVal(handle) = shExecInfo.hProcess;
- // RETURN (handle);
-
- // old:
- CloseHandle(shExecInfo.hProcess);
- RETURN (self); /* OK */
- } else {
- RETURN (self); /* OK */
- }
- } else {
- /* error */
- errorNumber = __mkSmallInteger(__WIN32_ERR(GetLastError()));
- }
+ // hProcess member receives the process handle
+ shExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
+
+ shExecInfo.hwnd = 0;
+ shExecInfo.lpVerb = (lpOperation != nil) ? __stringVal(lpOperation) : NULL;
+ shExecInfo.lpFile = (lpFile != nil) ? __stringVal(lpFile) : NULL;
+ shExecInfo.lpParameters = (lpParameters != nil) ? __stringVal(lpParameters) : NULL;
+ shExecInfo.lpDirectory = (lpDirectory != nil) ? __stringVal(lpDirectory) : NULL;
+ if (hwnd != nil) {
+ if (__isExternalAddressLike(hwnd)) {
+ shExecInfo.hwnd = (HANDLE)(__externalAddressVal(hwnd));
+ } else
+ goto badArgument;
+ }
+ if (ShellExecuteEx(&shExecInfo)) {
+ if (shExecInfo.hProcess) {
+ DWORD processAffinityMask, systemAffinityMask;
+ /*
+ * Set the affinity mask
+ * to any processor, and resume the processes main thread.
+ * (librun/process.s limited the affinity to a single processor).
+ */
+ GetProcessAffinityMask(shExecInfo.hProcess, &processAffinityMask, &systemAffinityMask);
+ SetProcessAffinityMask(shExecInfo.hProcess, systemAffinityMask);
+
+ // new (does not work, yet):
+ // __externalAddressVal(handle) = shExecInfo.hProcess;
+ // RETURN (handle);
+
+ // old:
+ CloseHandle(shExecInfo.hProcess);
+ RETURN (self); /* OK */
+ } else {
+ RETURN (self); /* OK */
+ }
+ } else {
+ /* error */
+ errorNumber = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+ }
}
badArgument: ;
%}.
errorNumber isNil ifTrue:[
- self primitiveFailed:'invalid argument(s)'.
+ self primitiveFailed:'invalid argument(s)'.
] ifFalse:[
- (OperatingSystem errorHolderForNumber:errorNumber)
- parameter:lpFile;
- reportError
+ (OperatingSystem errorHolderForNumber:errorNumber)
+ parameter:lpFile;
+ reportError
].
"
self
- shellExecute:nil
- lpOperation:'open'
- lpFile:(Filename currentDirectory pathName)
- lpParameters:nil
- lpDirectory:(Filename currentDirectory pathName)
- nShowCmd:#SW_SHOWNORMAL
+ shellExecute:nil
+ lpOperation:'open'
+ lpFile:(Filename currentDirectory pathName)
+ lpParameters:nil
+ lpDirectory:(Filename currentDirectory pathName)
+ nShowCmd:#SW_SHOWNORMAL
self
- shellExecute:nil
- lpOperation:'explore'
- lpFile:(Filename currentDirectory pathName)
- lpParameters:nil
- lpDirectory:(Filename currentDirectory pathName)
- nShowCmd:#SW_SHOWNORMAL
+ shellExecute:nil
+ lpOperation:'explore'
+ lpFile:(Filename currentDirectory pathName)
+ lpParameters:nil
+ lpDirectory:(Filename currentDirectory pathName)
+ nShowCmd:#SW_SHOWNORMAL
"
!
@@ -3877,10 +3897,10 @@
shellAndArgs := self commandAndArgsForOSCommand:aCommandString.
^ self
- exec:(shellAndArgs at:1) withArguments:(shellAndArgs at:2)
- inputFrom:anExternalInStream outputTo:anExternalOutStream
- errorTo:anExternalErrStream auxFrom:anAuxiliaryStream
- environment:anEvironmentDictionary inDirectory:dir
+ exec:(shellAndArgs at:1) withArguments:(shellAndArgs at:2)
+ inputFrom:anExternalInStream outputTo:anExternalOutStream
+ errorTo:anExternalErrStream auxFrom:anAuxiliaryStream
+ environment:anEvironmentDictionary inDirectory:dir
"blocking at current prio (i.e. only higher prio threads execute):
@@ -3901,7 +3921,7 @@
The following will no longer work. monitorPid has disappeared
pid notNil ifTrue:[
- Processor monitorPid:pid action:[:OSstatus | sema signal ].
+ Processor monitorPid:pid action:[:OSstatus | sema signal ].
].
in close.
out close.
@@ -3923,12 +3943,12 @@
%{
if (__isSmallInteger(anIntegerOrHandle)) {
- close(__intVal(anIntegerOrHandle));
- RETURN(self);
+ close(__intVal(anIntegerOrHandle));
+ RETURN(self);
}
if (__isExternalAddressLike(anIntegerOrHandle)) {
if (!CloseHandle( __externalAddressVal(anIntegerOrHandle))) {
- console_fprintf( stderr, "Win32OS [warning]: Could not close handle : %x\n", __externalAddressVal(anIntegerOrHandle));
+ console_fprintf( stderr, "Win32OS [warning]: Could not close handle : %x\n", __externalAddressVal(anIntegerOrHandle));
}
RETURN(self);
}
@@ -3956,45 +3976,45 @@
%{
if (__isStringLike(aPathName)) {
- int ret;
- SECURITY_ATTRIBUTES sa;
-
- sa.nLength = sizeof( sa );
- sa.lpSecurityDescriptor = NULL;
- sa.bInheritHandle = TRUE;
-
- ret = CreateDirectoryA(__stringVal(aPathName), &sa);
- if (ret != TRUE) {
- __threadErrno = __WIN32_ERR(GetLastError());
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ int ret;
+ SECURITY_ATTRIBUTES sa;
+
+ sa.nLength = sizeof( sa );
+ sa.lpSecurityDescriptor = NULL;
+ sa.bInheritHandle = TRUE;
+
+ ret = CreateDirectoryA(__stringVal(aPathName), &sa);
+ if (ret != TRUE) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
if (__isUnicode16String(aPathName)) {
- int ret;
- SECURITY_ATTRIBUTES sa;
- wchar_t _wPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(aPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _wPathName[i] = 0;
-
- sa.nLength = sizeof( sa );
- sa.lpSecurityDescriptor = NULL;
- sa.bInheritHandle = TRUE;
-
- ret = CreateDirectoryW(_wPathName, &sa);
- if (ret != TRUE) {
- __threadErrno = __WIN32_ERR(GetLastError());
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ int ret;
+ SECURITY_ATTRIBUTES sa;
+ wchar_t _wPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(aPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _wPathName[i] = 0;
+
+ sa.nLength = sizeof( sa );
+ sa.lpSecurityDescriptor = NULL;
+ sa.bInheritHandle = TRUE;
+
+ ret = CreateDirectoryW(_wPathName, &sa);
+ if (ret != TRUE) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
%}.
^ self primitiveFailed
@@ -4059,32 +4079,32 @@
char szGotPath[MAX_PATH];
if (! __isStringLike(aPathName)) {
- console_fprintf(stderr, "OperatingSystem [info]: invalid argument\n");
- goto error;
+ console_fprintf(stderr, "OperatingSystem [info]: invalid argument\n");
+ goto error;
}
if( ! coInitialized ) {
- console_fprintf(stderr, "OperatingSystem [info]: com not initialized\n");
- goto error;
+ console_fprintf(stderr, "OperatingSystem [info]: com not initialized\n");
+ goto error;
}
if ( ipShellLink == NULL ) {
- hres = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
- &IID_IShellLink, (LPVOID *)&ipShellLink);
- if (! SUCCEEDED(hres)) {
- console_fprintf(stderr, "OperatingSystem [info]: CoCreateInstance Error - hres = %08x\n", hres);
- ipShellLink = NULL;
- goto error;
- }
-
- hres = ipShellLink->lpVtbl->QueryInterface( ipShellLink, &IID_IPersistFile, & ipPersistFile );
- if (! SUCCEEDED(hres)) {
- console_fprintf(stderr, "OperatingSystem [info]: QueryInterface Error - hres = %08x\n", hres);
- ipShellLink->lpVtbl->Release(ipShellLink);
- ipShellLink = NULL;
- ipPersistFile = NULL;
- goto error;
- }
+ hres = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
+ &IID_IShellLink, (LPVOID *)&ipShellLink);
+ if (! SUCCEEDED(hres)) {
+ console_fprintf(stderr, "OperatingSystem [info]: CoCreateInstance Error - hres = %08x\n", hres);
+ ipShellLink = NULL;
+ goto error;
+ }
+
+ hres = ipShellLink->lpVtbl->QueryInterface( ipShellLink, &IID_IPersistFile, & ipPersistFile );
+ if (! SUCCEEDED(hres)) {
+ console_fprintf(stderr, "OperatingSystem [info]: QueryInterface Error - hres = %08x\n", hres);
+ ipShellLink->lpVtbl->Release(ipShellLink);
+ ipShellLink = NULL;
+ ipPersistFile = NULL;
+ goto error;
+ }
}
MultiByteToWideChar(CP_ACP, 0, __stringVal(aPathName), -1, wsz, MAX_PATH);
@@ -4092,18 +4112,18 @@
hres = ipPersistFile->lpVtbl->Load(ipPersistFile, wsz, STGM_READ);
if (SUCCEEDED(hres)) {
- hres = ipShellLink->lpVtbl->GetPath(ipShellLink, szGotPath, MAX_PATH,
- (WIN32_FIND_DATA *)&wfd, 0 /* SLGP_SHORTPATH */ );
- if (SUCCEEDED(hres)) {
- resolvedPath = __MKSTRING(szGotPath);
- } else {
+ hres = ipShellLink->lpVtbl->GetPath(ipShellLink, szGotPath, MAX_PATH,
+ (WIN32_FIND_DATA *)&wfd, 0 /* SLGP_SHORTPATH */ );
+ if (SUCCEEDED(hres)) {
+ resolvedPath = __MKSTRING(szGotPath);
+ } else {
#ifdef COM_DEBUG
- console_fprintf(stderr, "OperatingSystem [info]: GetPath failed - hres = %08x\n", hres );
-#endif
- }
+ console_fprintf(stderr, "OperatingSystem [info]: GetPath failed - hres = %08x\n", hres );
+#endif
+ }
} else {
#ifdef COM_DEBUG
- console_fprintf(stderr, "OperatingSystem [info]: Load failed - hres = %08x\n", hres );
+ console_fprintf(stderr, "OperatingSystem [info]: Load failed - hres = %08x\n", hres );
#endif
}
/* ipPersistFile->lpVtbl->Release(ipPersistFile); */
@@ -4129,10 +4149,10 @@
Return true if successful, false if not."
(oldPath isString not or:[newPath isString not]) ifTrue:[
- "/
- "/ bad argument(s) given
- "/
- ^ self primitiveFailed
+ "/
+ "/ bad argument(s) given
+ "/
+ ^ self primitiveFailed
].
^ self createHardLinkFrom:oldPath to:newPath
@@ -4164,24 +4184,24 @@
DWORD access, share, create, attr;
if (__isStringLike(pathName)) {
- name = __stringVal(pathName);
+ name = __stringVal(pathName);
} else if (__isUnicode16String(pathName)) {
- l = __unicode16StringSize(pathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(pathName)[i];
- }
- _wPathName[i] = 0;
+ l = __unicode16StringSize(pathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(pathName)[i];
+ }
+ _wPathName[i] = 0;
} else {
- fileHandle = nil;
- argumentError = @symbol(badPathName);
- goto badArgument;
+ fileHandle = nil;
+ argumentError = @symbol(badPathName);
+ goto badArgument;
}
if (! __isArrayLike(attributeSpec)) {
- fileHandle = nil;
- argumentError = @symbol(badAttributeSpec);
- goto badArgument;
+ fileHandle = nil;
+ argumentError = @symbol(badAttributeSpec);
+ goto badArgument;
}
ap = __ArrayInstPtr(attributeSpec)->a_element;
numAttrib = __arraySize(attributeSpec);
@@ -4192,77 +4212,77 @@
attr = 0;
for (i=0; i<numAttrib;i++) {
- OBJ attrSym = ap[i];
-
- if (attrSym == @symbol(FILE_SHARE_READ)) {
- share |= FILE_SHARE_READ;
- } else if (attrSym == @symbol(FILE_SHARE_WRITE)) {
- share |= FILE_SHARE_WRITE;
-
- } else if (attrSym == @symbol(GENERIC_READ)) {
- access |= GENERIC_READ;
- } else if (attrSym == @symbol(GENERIC_WRITE)) {
- access |= GENERIC_WRITE;
-
- } else if (attrSym == @symbol(CREATE_NEW)) {
- create |= CREATE_NEW;
- } else if (attrSym == @symbol(CREATE_ALWAYS)) {
- create |= CREATE_ALWAYS;
- } else if (attrSym == @symbol(OPEN_EXISTING)) {
- create |= OPEN_EXISTING;
- } else if (attrSym == @symbol(OPEN_ALWAYS)) {
- create |= OPEN_ALWAYS;
- } else if (attrSym == @symbol(TRUNCATE_EXISTING)) {
- create |= TRUNCATE_EXISTING;
-
- } else if (attrSym == @symbol(FILE_ATTRIBUTE_HIDDEN)) {
- attr |= FILE_ATTRIBUTE_HIDDEN;
- } else if (attrSym == @symbol(FILE_ATTRIBUTE_READONLY)) {
- attr |= FILE_ATTRIBUTE_READONLY;
- } else if (attrSym == @symbol(FILE_ATTRIBUTE_READONLY)) {
- attr |= FILE_ATTRIBUTE_READONLY;
- } else if (attrSym == @symbol(FILE_FLAG_WRITE_THROUGH)) {
- attr |= FILE_FLAG_WRITE_THROUGH;
- } else if (attrSym == @symbol(FILE_FLAG_SEQUENTIAL_SCAN)) {
- attr |= FILE_FLAG_SEQUENTIAL_SCAN;
- } else if (attrSym == @symbol(FILE_FLAG_DELETE_ON_CLOSE)) {
- attr |= FILE_FLAG_DELETE_ON_CLOSE;
- } else {
- console_fprintf(stderr, "Win32OS [warning]: unsupported open mode\n");
- }
+ OBJ attrSym = ap[i];
+
+ if (attrSym == @symbol(FILE_SHARE_READ)) {
+ share |= FILE_SHARE_READ;
+ } else if (attrSym == @symbol(FILE_SHARE_WRITE)) {
+ share |= FILE_SHARE_WRITE;
+
+ } else if (attrSym == @symbol(GENERIC_READ)) {
+ access |= GENERIC_READ;
+ } else if (attrSym == @symbol(GENERIC_WRITE)) {
+ access |= GENERIC_WRITE;
+
+ } else if (attrSym == @symbol(CREATE_NEW)) {
+ create |= CREATE_NEW;
+ } else if (attrSym == @symbol(CREATE_ALWAYS)) {
+ create |= CREATE_ALWAYS;
+ } else if (attrSym == @symbol(OPEN_EXISTING)) {
+ create |= OPEN_EXISTING;
+ } else if (attrSym == @symbol(OPEN_ALWAYS)) {
+ create |= OPEN_ALWAYS;
+ } else if (attrSym == @symbol(TRUNCATE_EXISTING)) {
+ create |= TRUNCATE_EXISTING;
+
+ } else if (attrSym == @symbol(FILE_ATTRIBUTE_HIDDEN)) {
+ attr |= FILE_ATTRIBUTE_HIDDEN;
+ } else if (attrSym == @symbol(FILE_ATTRIBUTE_READONLY)) {
+ attr |= FILE_ATTRIBUTE_READONLY;
+ } else if (attrSym == @symbol(FILE_ATTRIBUTE_READONLY)) {
+ attr |= FILE_ATTRIBUTE_READONLY;
+ } else if (attrSym == @symbol(FILE_FLAG_WRITE_THROUGH)) {
+ attr |= FILE_FLAG_WRITE_THROUGH;
+ } else if (attrSym == @symbol(FILE_FLAG_SEQUENTIAL_SCAN)) {
+ attr |= FILE_FLAG_SEQUENTIAL_SCAN;
+ } else if (attrSym == @symbol(FILE_FLAG_DELETE_ON_CLOSE)) {
+ attr |= FILE_FLAG_DELETE_ON_CLOSE;
+ } else {
+ console_fprintf(stderr, "Win32OS [warning]: unsupported open mode\n");
+ }
}
if (create == 0) {
- fileHandle = nil;
- argumentError = @symbol(missingCreateMode);
- goto badArgument;
+ fileHandle = nil;
+ argumentError = @symbol(missingCreateMode);
+ goto badArgument;
}
#ifdef PROCESSDEBUGWIN32
console_fprintf(stderr, "name:<%s> access:%x share:%x create:%x attr:%x\n",
- name, access, share, create, attr);
+ name, access, share, create, attr);
#endif
if (__isStringLike(pathName)) {
- h = CreateFileA(name, access, share, 0 /* sa */, create, attr, 0 /* hTempl */);
+ h = CreateFileA(name, access, share, 0 /* sa */, create, attr, 0 /* hTempl */);
} else {
- h = CreateFileW(_wPathName, access, share, 0 /* sa */, create, attr, 0 /* hTempl */);
+ h = CreateFileW(_wPathName, access, share, 0 /* sa */, create, attr, 0 /* hTempl */);
}
if (h != INVALID_HANDLE_VALUE) {
- __externalAddressVal(fileHandle) = (void *)h;
+ __externalAddressVal(fileHandle) = (void *)h;
} else {
- fileHandle = nil;
- errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
+ fileHandle = nil;
+ errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
}
badArgument: ;
%}.
fileHandle notNil ifTrue:[
- fileHandle registerForFinalization.
- ^ fileHandle.
+ fileHandle registerForFinalization.
+ ^ fileHandle.
].
errorNumber isNil ifTrue:[
- self error:'invalid argument(s): ', argumentError.
+ self error:'invalid argument(s): ', argumentError.
] ifFalse:[
- (self errorHolderForNumber:errorNumber) reportError
+ (self errorHolderForNumber:errorNumber) reportError
].
!
@@ -4310,51 +4330,51 @@
if (__isStringLike(fullPathName)) {
#ifdef DO_WRAP_CALLS
- {
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(fullPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "RemoveDirectoryA", RemoveDirectoryA, _aPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
- }
-#else
- ret = RemoveDirectoryA((char *)__stringVal(fullPathName));
- __threadErrno = __WIN32_ERR(GetLastError());
-#endif
- if (ret != TRUE) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ {
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(fullPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "RemoveDirectoryA", RemoveDirectoryA, _aPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+ }
+#else
+ ret = RemoveDirectoryA((char *)__stringVal(fullPathName));
+ __threadErrno = __WIN32_ERR(GetLastError());
+#endif
+ if (ret != TRUE) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
if (__isUnicode16String(fullPathName)) {
#ifdef DO_WRAP_CALLS
- {
- wchar_t _wPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(fullPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(fullPathName)[i];
- }
- _wPathName[i] = 0;
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "RemoveDirectoryW", RemoveDirectoryW, _wPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
- }
-#else
- ret = RemoveDirectoryW((char *)__stringVal(fullPathName));
- __threadErrno = __WIN32_ERR(GetLastError());
-#endif
- if (ret != TRUE) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ {
+ wchar_t _wPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(fullPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(fullPathName)[i];
+ }
+ _wPathName[i] = 0;
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "RemoveDirectoryW", RemoveDirectoryW, _wPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+ }
+#else
+ ret = RemoveDirectoryW((char *)__stringVal(fullPathName));
+ __threadErrno = __WIN32_ERR(GetLastError());
+#endif
+ if (ret != TRUE) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
%}.
"/
@@ -4378,51 +4398,51 @@
if (__isStringLike(fullPathName)) {
#ifdef DO_WRAP_CALLS
- {
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(fullPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "DeleteFileA", DeleteFileA, _aPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
- }
-#else
- ret = DeleteFileA((char *)__stringVal(fullPathName));
- __threadErrno = __WIN32_ERR(GetLastError());
-#endif
- if (ret != TRUE) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ {
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(fullPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "DeleteFileA", DeleteFileA, _aPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+ }
+#else
+ ret = DeleteFileA((char *)__stringVal(fullPathName));
+ __threadErrno = __WIN32_ERR(GetLastError());
+#endif
+ if (ret != TRUE) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
if (__isUnicode16String(fullPathName)) {
#ifdef DO_WRAP_CALLS
- {
- wchar_t _wPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(fullPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(fullPathName)[i];
- }
- _wPathName[i] = 0;
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "DeleteFileW", DeleteFileW, _wPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
- }
-#else
- ret = DeleteFileW((char *)__stringVal(fullPathName));
- __threadErrno = __WIN32_ERR(GetLastError());
-#endif
- if (ret != TRUE) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ {
+ wchar_t _wPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(fullPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(fullPathName)[i];
+ }
+ _wPathName[i] = 0;
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "DeleteFileW", DeleteFileW, _wPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+ }
+#else
+ ret = DeleteFileW((char *)__stringVal(fullPathName));
+ __threadErrno = __WIN32_ERR(GetLastError());
+#endif
+ if (ret != TRUE) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
%}.
@@ -4442,32 +4462,32 @@
if (__isStringLike(oldPath) && __isStringLike(newPath)) {
#ifdef DO_WRAP_CALLS
- char _oldPath[MAXPATHLEN], _newPath[MAXPATHLEN];
-
- strncpy(_oldPath, __stringVal(oldPath), MAXPATHLEN-1); _oldPath[MAXPATHLEN-1] = '\0';
- strncpy(_newPath, __stringVal(newPath), MAXPATHLEN-1); _newPath[MAXPATHLEN-1] = '\0';
-
- do {
- __threadErrno = 0;
- ret = STX_C_NOINT_CALL2( "rename", rename, _oldPath, _newPath);
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- __BEGIN_INTERRUPTABLE__
- do {
- __threadErrno = 0;
- ret = rename((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
- } while ((ret < 0) && (__threadErrno == EINTR));
- __END_INTERRUPTABLE__
-
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if (ret < 0) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ char _oldPath[MAXPATHLEN], _newPath[MAXPATHLEN];
+
+ strncpy(_oldPath, __stringVal(oldPath), MAXPATHLEN-1); _oldPath[MAXPATHLEN-1] = '\0';
+ strncpy(_newPath, __stringVal(newPath), MAXPATHLEN-1); _newPath[MAXPATHLEN-1] = '\0';
+
+ do {
+ __threadErrno = 0;
+ ret = STX_C_NOINT_CALL2( "rename", rename, _oldPath, _newPath);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ __BEGIN_INTERRUPTABLE__
+ do {
+ __threadErrno = 0;
+ ret = rename((char *) __stringVal(oldPath), (char *) __stringVal(newPath));
+ } while ((ret < 0) && (__threadErrno == EINTR));
+ __END_INTERRUPTABLE__
+
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if (ret < 0) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
%}.
^ self primitiveFailed
@@ -4526,43 +4546,43 @@
# endif
if (aSymbol == @symbol(readUser)) {
- RETURN ( __mkSmallInteger(S_IRUSR) );
+ RETURN ( __mkSmallInteger(S_IRUSR) );
}
if (aSymbol == @symbol(writeUser)) {
- RETURN ( __mkSmallInteger(S_IWUSR) );
+ RETURN ( __mkSmallInteger(S_IWUSR) );
}
if (aSymbol == @symbol(executeUser)) {
- RETURN ( __mkSmallInteger(S_IXUSR) );
+ RETURN ( __mkSmallInteger(S_IXUSR) );
}
if (aSymbol == @symbol(readGroup)) {
- RETURN ( __mkSmallInteger(S_IRGRP) );
+ RETURN ( __mkSmallInteger(S_IRGRP) );
}
if (aSymbol == @symbol(writeGroup)) {
- RETURN ( __mkSmallInteger(S_IWGRP) );
+ RETURN ( __mkSmallInteger(S_IWGRP) );
}
if (aSymbol == @symbol(executeGroup)) {
- RETURN ( __mkSmallInteger(S_IXGRP) );
+ RETURN ( __mkSmallInteger(S_IXGRP) );
}
if (aSymbol == @symbol(readOthers)) {
- RETURN ( __mkSmallInteger(S_IROTH) );
+ RETURN ( __mkSmallInteger(S_IROTH) );
}
if (aSymbol == @symbol(writeOthers)) {
- RETURN ( __mkSmallInteger(S_IWOTH) );
+ RETURN ( __mkSmallInteger(S_IWOTH) );
}
if (aSymbol == @symbol(executeOthers)) {
- RETURN ( __mkSmallInteger(S_IXOTH) );
+ RETURN ( __mkSmallInteger(S_IXOTH) );
}
// These are not defined for Win32 - simply ignore them
// (but handle them for UNIX compatibility
if (aSymbol == @symbol(setUid)) {
- RETURN ( __mkSmallInteger(0) );
+ RETURN ( __mkSmallInteger(0) );
}
if (aSymbol == @symbol(setGid)) {
- RETURN ( __mkSmallInteger(0) );
+ RETURN ( __mkSmallInteger(0) );
}
if (aSymbol == @symbol(removeOnlyByOwner)) {
- RETURN ( __mkSmallInteger(0) );
+ RETURN ( __mkSmallInteger(0) );
}
%}.
@@ -4581,7 +4601,7 @@
"
this could have been implemented as:
- (self infoOf:aPathName) at:#mode
+ (self infoOf:aPathName) at:#mode
but for huge directory searches the code below is faster
"
@@ -4591,31 +4611,31 @@
if (__isStringLike(aPathName)) {
#ifdef DO_WRAP_CALLS
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
-
- do {
- __threadErrno = 0;
- ret = STX_C_NOINT_CALL2( "stat", stat, _aPathName, &buf);
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- __BEGIN_INTERRUPTABLE__
- do {
- __threadErrno = 0;
- ret = stat( (char *)__stringVal(aPathName), &buf);
- } while ((ret < 0) && (__threadErrno == EINTR));
- __END_INTERRUPTABLE__
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
-
- if (ret < 0) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN ( nil );
- }
- RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+
+ do {
+ __threadErrno = 0;
+ ret = STX_C_NOINT_CALL2( "stat", stat, _aPathName, &buf);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ __BEGIN_INTERRUPTABLE__
+ do {
+ __threadErrno = 0;
+ ret = stat( (char *)__stringVal(aPathName), &buf);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+ __END_INTERRUPTABLE__
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+
+ if (ret < 0) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN ( nil );
+ }
+ RETURN ( __mkSmallInteger(buf.st_mode & 0777) );
}
%}.
^ self primitiveFailed
@@ -4638,30 +4658,30 @@
if (__isStringLike(aPathName) && __isSmallInteger(modeBits)) {
#ifdef DO_WRAP_CALLS
- int chmod();
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_C_NOINT_CALL2( "chmod", chmod, _aPathName, __intVal(modeBits));
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- __BEGIN_INTERRUPTABLE__
- do {
- __threadErrno = 0;
- ret = chmod((char *)__stringVal(aPathName), __intVal(modeBits));
- } while ((ret < 0) && (__threadErrno == EINTR));
- __END_INTERRUPTABLE__
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if (ret < 0) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN ( false );
- }
- RETURN ( true );
+ int chmod();
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_C_NOINT_CALL2( "chmod", chmod, _aPathName, __intVal(modeBits));
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ __BEGIN_INTERRUPTABLE__
+ do {
+ __threadErrno = 0;
+ ret = chmod((char *)__stringVal(aPathName), __intVal(modeBits));
+ } while ((ret < 0) && (__threadErrno == EINTR));
+ __END_INTERRUPTABLE__
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if (ret < 0) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN ( false );
+ }
+ RETURN ( true );
}
%}.
^ self primitiveFailed
@@ -4695,9 +4715,9 @@
__rslt = __STX_API_CALL1( "GetOpenFileName", (void *)GetOpenFileName, (void *)(__address));
if (__rslt == TRUE) {
- rslt = true;
+ rslt = true;
} else {
- rslt = false;
+ rslt = false;
}
%}.
^ rslt
@@ -4719,9 +4739,9 @@
__rslt = __STX_API_CALL1( "GetSaveFileName", (void *)GetSaveFileName, (void *)(__address));
if (__rslt == TRUE) {
- rslt = true;
+ rslt = true;
} else {
- rslt = false;
+ rslt = false;
}
%}.
^ rslt
@@ -4744,7 +4764,7 @@
attr := self primGetFileAttributes:aPathName.
(attr bitTest:FILE_ATTRIBUTE_HIDDEN ) ifTrue:[
- ^ self primSetFileAttributes:aPathName to:(attr bitClear:2).
+ ^ self primSetFileAttributes:aPathName to:(attr bitClear:2).
].
^ true
@@ -4760,27 +4780,27 @@
|names n "{ Class: SmallInteger }" |
names := pathName
- asCollectionOfSubstringsSeparatedBy:self fileSeparator.
+ asCollectionOfSubstringsSeparatedBy:self fileSeparator.
names := names asOrderedCollection.
"
cut off initial double-slashes
"
[names startsWith:#('' '')] whileTrue:[
- names removeFirst.
+ names removeFirst.
].
"
cut off double-slashes at end
"
[names endsWith:#('')] whileTrue:[
- names removeLast.
+ names removeLast.
].
"
cut off current-dir at beginning
"
n := names size.
[(n >= 2) and:[names startsWith:#('.')]] whileTrue:[
- names removeFirst.
- n := n - 1.
+ names removeFirst.
+ n := n - 1.
].
"
@@ -4789,14 +4809,14 @@
[(n > 2)
and:[(names endsWith:#('..'))
and:[((names at:(n - 1)) startsWith:'.') not ]]] whileTrue:[
- names removeLast; removeLast.
- n := n - 2.
+ names removeLast; removeLast.
+ n := n - 2.
].
^ names asStringWith:self fileSeparator
- from:1
- to:n
- compressTabs:false final:nil
+ from:1
+ to:n
+ compressTabs:false final:nil
"
OperatingSystem compressPath:'.\..'
@@ -4834,8 +4854,8 @@
getDiskInfoOf:volumeNameArg
"returns a dictionary filled with any of:
- freeBytes
- totalBytes
+ freeBytes
+ totalBytes
and possibly additional (OS-specific) information"
|volumeName info ok sectorsPerCluster bytesPerSector freeClusters totalClusters
@@ -4843,11 +4863,11 @@
volumeName := volumeNameArg.
(volumeName endsWith:$\) ifFalse:[
- volumeName := volumeName , '\'
+ volumeName := volumeName , '\'
].
%{
typedef BOOL (WINAPI *P_GDFSE)(LPCTSTR, PULARGE_INTEGER,
- PULARGE_INTEGER, PULARGE_INTEGER);
+ PULARGE_INTEGER, PULARGE_INTEGER);
P_GDFSE pGetDiskFreeSpaceEx = NULL;
DWORD __sectorsPerCluster, __bytesPerSector, __freeClusters, __totalClusters;
@@ -4855,62 +4875,62 @@
unsigned __int64 i64FreeBytesForUsersQuota, i64TotalBytes, i64FreeBytes;
if (__isStringLike(volumeName) || __isSymbol(volumeName)) {
- /*
- * Use GetDiskFreeSpaceEx if available; otherwise, use GetDiskFreeSpace.
- * Notice that GetDiskFreeSpace does not work correctly under win2k,
- * and GetDiskFreeSpaceEx is not avail. for all win versions (can microsoft ever do something right ?).
- */
- pGetDiskFreeSpaceEx = (P_GDFSE)GetProcAddress (
- GetModuleHandle ("kernel32.dll"),
- "GetDiskFreeSpaceExA");
- if (pGetDiskFreeSpaceEx) {
- fResult = pGetDiskFreeSpaceEx (__stringVal(volumeName),
- (PULARGE_INTEGER)&i64FreeBytesForUsersQuota,
- (PULARGE_INTEGER)&i64TotalBytes,
- (PULARGE_INTEGER)&i64FreeBytes);
- if (fResult) {
- freeBytesForUsersQuota = __MKUINT64(&i64FreeBytesForUsersQuota);
- totalBytes = __MKUINT64(&i64TotalBytes);
- freeBytes = __MKUINT64(&i64FreeBytes);
- }
- }
- fResult = GetDiskFreeSpace(__stringVal(volumeName),
- &__sectorsPerCluster,
- &__bytesPerSector,
- &__freeClusters,
- &__totalClusters);
- if (fResult) {
- sectorsPerCluster = __MKUINT(__sectorsPerCluster);
- bytesPerSector = __MKUINT(__bytesPerSector);
- freeClusters = __MKUINT(__freeClusters);
- totalClusters = __MKUINT(__totalClusters);
- }
- switch (GetDriveType(__stringVal(volumeName))) {
- case DRIVE_REMOVABLE:
- type = @symbol(removable); break;
- case DRIVE_FIXED:
- type = @symbol(fixed); break;
- case DRIVE_REMOTE:
- type = @symbol(network); break;
- case DRIVE_CDROM:
- type = @symbol(cdrom); break;
- case DRIVE_RAMDISK:
- type = @symbol(ramdisk); break;
- case DRIVE_UNKNOWN:
- default:
- break;
- }
- if (fResult) {
- ok = true;
- } else {
- __threadErrno = __WIN32_ERR(GetLastError());
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- }
+ /*
+ * Use GetDiskFreeSpaceEx if available; otherwise, use GetDiskFreeSpace.
+ * Notice that GetDiskFreeSpace does not work correctly under win2k,
+ * and GetDiskFreeSpaceEx is not avail. for all win versions (can microsoft ever do something right ?).
+ */
+ pGetDiskFreeSpaceEx = (P_GDFSE)GetProcAddress (
+ GetModuleHandle ("kernel32.dll"),
+ "GetDiskFreeSpaceExA");
+ if (pGetDiskFreeSpaceEx) {
+ fResult = pGetDiskFreeSpaceEx (__stringVal(volumeName),
+ (PULARGE_INTEGER)&i64FreeBytesForUsersQuota,
+ (PULARGE_INTEGER)&i64TotalBytes,
+ (PULARGE_INTEGER)&i64FreeBytes);
+ if (fResult) {
+ freeBytesForUsersQuota = __MKUINT64(&i64FreeBytesForUsersQuota);
+ totalBytes = __MKUINT64(&i64TotalBytes);
+ freeBytes = __MKUINT64(&i64FreeBytes);
+ }
+ }
+ fResult = GetDiskFreeSpace(__stringVal(volumeName),
+ &__sectorsPerCluster,
+ &__bytesPerSector,
+ &__freeClusters,
+ &__totalClusters);
+ if (fResult) {
+ sectorsPerCluster = __MKUINT(__sectorsPerCluster);
+ bytesPerSector = __MKUINT(__bytesPerSector);
+ freeClusters = __MKUINT(__freeClusters);
+ totalClusters = __MKUINT(__totalClusters);
+ }
+ switch (GetDriveType(__stringVal(volumeName))) {
+ case DRIVE_REMOVABLE:
+ type = @symbol(removable); break;
+ case DRIVE_FIXED:
+ type = @symbol(fixed); break;
+ case DRIVE_REMOTE:
+ type = @symbol(network); break;
+ case DRIVE_CDROM:
+ type = @symbol(cdrom); break;
+ case DRIVE_RAMDISK:
+ type = @symbol(ramdisk); break;
+ case DRIVE_UNKNOWN:
+ default:
+ break;
+ }
+ if (fResult) {
+ ok = true;
+ } else {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ }
}
%}.
ok == true ifFalse:[
- self primitiveFailed.
- ^ self
+ self primitiveFailed.
+ ^ self
].
info := IdentityDictionary new.
@@ -4920,14 +4940,14 @@
info at:#totalClusters put:totalClusters.
info at:#freeBytes put:(freeBytes notNil
- ifTrue:[freeBytes]
- ifFalse:[freeClusters * sectorsPerCluster * bytesPerSector]).
+ ifTrue:[freeBytes]
+ ifFalse:[freeClusters * sectorsPerCluster * bytesPerSector]).
info at:#totalBytes put:(totalBytes notNil
- ifTrue:[totalBytes]
- ifFalse:[totalClusters * sectorsPerCluster * bytesPerSector]).
+ ifTrue:[totalBytes]
+ ifFalse:[totalClusters * sectorsPerCluster * bytesPerSector]).
info at:#freeBytesForUsersQuota put:freeBytesForUsersQuota.
type notNil ifTrue:[
- info at:#type put:type
+ info at:#type put:type
].
^ info
@@ -4969,13 +4989,13 @@
getDriveType:aPathName
"returns:
- 0 -> Unknown
- 1 -> Invalid
- 2 -> removable
- 3 -> fixed
- 4 -> remote
- 5 -> cdrom
- 6 -> ramdisk.
+ 0 -> Unknown
+ 1 -> Invalid
+ 2 -> removable
+ 3 -> fixed
+ 4 -> remote
+ 5 -> cdrom
+ 6 -> ramdisk.
This is a stupid interface - do not use."
%{
@@ -4983,20 +5003,20 @@
if (__isStringLike(aPathName)) {
#ifdef DO_WRAP_CALLS
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetDriveType", GetDriveType, _aPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- ret = GetDriveType((char *) __stringVal(aPathName));
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- RETURN (__MKSMALLINT(ret));
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetDriveType", GetDriveType, _aPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ ret = GetDriveType((char *) __stringVal(aPathName));
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ RETURN (__MKSMALLINT(ret));
}
%}.
^ self primitiveFailed
@@ -5019,24 +5039,24 @@
DWORD dummy;
if (__isStringLike(aPathName)) {
- sz = GetFileVersionInfoSizeA(__stringVal(aPathName), &dummy);
+ sz = GetFileVersionInfoSizeA(__stringVal(aPathName), &dummy);
} else if (__isUnicode16String(aPathName)) {
- sz = GetFileVersionInfoSizeW(__unicode16StringVal(aPathName), &dummy);
+ sz = GetFileVersionInfoSizeW(__unicode16StringVal(aPathName), &dummy);
} else {
- goto badArgument;
+ goto badArgument;
}
if (sz > 0) {
- OBJ versionData;
-
- versionData = __BYTEARRAY_UNINITIALIZED_NEW_INT(sz);
- if (versionData == nil) {
- RETURN (nil);
- }
- if (GetFileVersionInfo(__stringVal(aPathName), 0, sz, __ByteArrayInstPtr(versionData)->ba_element) == FALSE) {
- RETURN (nil);
- }
- RETURN (versionData);
+ OBJ versionData;
+
+ versionData = __BYTEARRAY_UNINITIALIZED_NEW_INT(sz);
+ if (versionData == nil) {
+ RETURN (nil);
+ }
+ if (GetFileVersionInfo(__stringVal(aPathName), 0, sz, __ByteArrayInstPtr(versionData)->ba_element) == FALSE) {
+ RETURN (nil);
+ }
+ RETURN (versionData);
}
RETURN (nil);
badArgument: ;
@@ -5054,35 +5074,35 @@
wchar_t _aPathName[MAX_PATH+1];
if (__isStringLike(aPathName)) {
- int i;
- int l = __stringSize(aPathName);
- if (l > MAX_PATH) l = MAX_PATH;
-
- for (i=0; i<l; i++) {
- _aPathName[i] = __stringVal(aPathName)[i];
- }
- _aPathName[i] = 0;
+ int i;
+ int l = __stringSize(aPathName);
+ if (l > MAX_PATH) l = MAX_PATH;
+
+ for (i=0; i<l; i++) {
+ _aPathName[i] = __stringVal(aPathName)[i];
+ }
+ _aPathName[i] = 0;
} else if (__isUnicode16String(aPathName)) {
- int i;
- int l = __unicode16StringSize(aPathName);
- if (l > MAX_PATH) l = MAX_PATH;
-
- for (i=0; i<l; i++) {
- _aPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _aPathName[i] = 0;
+ int i;
+ int l = __unicode16StringSize(aPathName);
+ if (l > MAX_PATH) l = MAX_PATH;
+
+ for (i=0; i<l; i++) {
+ _aPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _aPathName[i] = 0;
} else
- goto badArgument;
+ goto badArgument;
#ifdef DO_WRAP_CALLS
do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL3( "GetLongPathNameW", GetLongPathNameW, _aPathName, _aPathName, MAX_PATH+1);
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL3( "GetLongPathNameW", GetLongPathNameW, _aPathName, _aPathName, MAX_PATH+1);
} while ((ret == 0) && (__threadErrno == EINTR));
#else
ret = GetLongPathNameW(_aPathName, _aPathName, MAX_PATH+1);
if (ret == 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
+ __threadErrno = __WIN32_ERR(GetLastError());
}
#endif
RETURN ( __MKU16STRING(_aPathName));
@@ -5112,35 +5132,35 @@
wchar_t _aPathName[MAX_PATH+1];
if (__isStringLike(aPathName)) {
- int i;
- int l = __stringSize(aPathName);
- if (l > MAX_PATH) l = MAX_PATH;
-
- for (i=0; i<l; i++) {
- _aPathName[i] = __stringVal(aPathName)[i];
- }
- _aPathName[i] = 0;
+ int i;
+ int l = __stringSize(aPathName);
+ if (l > MAX_PATH) l = MAX_PATH;
+
+ for (i=0; i<l; i++) {
+ _aPathName[i] = __stringVal(aPathName)[i];
+ }
+ _aPathName[i] = 0;
} else if (__isUnicode16String(aPathName)) {
- int i;
- int l = __unicode16StringSize(aPathName);
- if (l > MAX_PATH) l = MAX_PATH;
-
- for (i=0; i<l; i++) {
- _aPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _aPathName[i] = 0;
+ int i;
+ int l = __unicode16StringSize(aPathName);
+ if (l > MAX_PATH) l = MAX_PATH;
+
+ for (i=0; i<l; i++) {
+ _aPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _aPathName[i] = 0;
} else
- goto badArgument;
+ goto badArgument;
#ifdef DO_WRAP_CALLS
do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL3( "GetShortPathNameW", GetShortPathNameW, _aPathName, _aPathName, MAX_PATH+1);
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL3( "GetShortPathNameW", GetShortPathNameW, _aPathName, _aPathName, MAX_PATH+1);
} while ((ret == 0) && (__threadErrno == EINTR));
#else
ret = GetShortPathNameW(_aPathName, _aPathName, MAX_PATH+1);
if (ret == 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
+ __threadErrno = __WIN32_ERR(GetLastError());
}
#endif
RETURN ( __MKU16STRING(_aPathName));
@@ -5173,16 +5193,16 @@
"return some object filled with info for the file 'aPathName';
the info (for which corresponding access methods are understood by
the returned object) is:
- type - a symbol giving the files type
- mode - numeric access mode
- uid - owners user id
- gid - owners group id
- size - files size
- id - files number (i.e. inode number)
- accessed - last access time (as Timestamp)
- modified - last modification time (as Timestamp)
- statusChanged - last status change time (as Timestamp)
- alternativeName - (windows only:) the MSDOS name of the file
+ type - a symbol giving the files type
+ mode - numeric access mode
+ uid - owners user id
+ gid - owners group id
+ size - files size
+ id - files number (i.e. inode number)
+ accessed - last access time (as Timestamp)
+ modified - last modification time (as Timestamp)
+ statusChanged - last status change time (as Timestamp)
+ alternativeName - (windows only:) the MSDOS name of the file
Some of the fields may be returned as nil on systems which do not provide
all of the information.
@@ -5196,10 +5216,10 @@
info := self linkInfoOf:aPathName.
(info notNil and:[info isSymbolicLink]) ifTrue:[
- target := info path.
- target notNil ifTrue:[
- ^ self linkInfoOf:target.
- ]
+ target := info path.
+ target notNil ifTrue:[
+ ^ self linkInfoOf:target.
+ ]
].
^ info
@@ -5224,46 +5244,46 @@
if (__isStringLike(aPathName)) {
#ifdef DO_WRAP_CALLS
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName);
- } while ((ret == -1) && (__threadErrno == EINTR));
-#else
- ret = GetFileAttributesA((char *) __stringVal(aPathName));
- if (ret == -1) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName);
+ } while ((ret == -1) && (__threadErrno == EINTR));
+#else
+ ret = GetFileAttributesA((char *) __stringVal(aPathName));
+ if (ret == -1) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
#endif
} else if (__isUnicode16String(aPathName)) {
- wchar_t _wPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(aPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _wPathName[i] = 0;
+ wchar_t _wPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(aPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _wPathName[i] = 0;
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName);
- } while ((ret == -1) && (__threadErrno == EINTR));
-#else
- ret = GetFileAttributesW(_wPathName);
- if (ret == -1) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName);
+ } while ((ret == -1) && (__threadErrno == EINTR));
+#else
+ ret = GetFileAttributesW(_wPathName);
+ if (ret == -1) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
#endif
} else
- goto err;
+ goto err;
if (ret < 0) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN ( false );
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN ( false );
}
RETURN ( (ret & FILE_ATTRIBUTE_DIRECTORY) ? true : false);
err:;
@@ -5271,7 +5291,7 @@
^ self primitiveFailed
"an alternative implementation would be:
- ^ (self infoOf:aPathName) type == #directory
+ ^ (self infoOf:aPathName) type == #directory
"
"
self isDirectory:'.'
@@ -5315,65 +5335,65 @@
%{
if (__isStringLike(aPathName)) {
- int ret;
-
- /*
- * under windows, all files are readable ...
- * so, only check for the files existence here.
- */
+ int ret;
+
+ /*
+ * under windows, all files are readable ...
+ * so, only check for the files existence here.
+ */
#ifdef DO_WRAP_CALLS
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- ret = GetFileAttributesA((char *) __stringVal(aPathName));
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if (ret < 0) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ ret = GetFileAttributesA((char *) __stringVal(aPathName));
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if (ret < 0) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
if (__isUnicode16String(aPathName)) {
- int ret;
-
- /*
- * under windows, all files are readable ...
- * so, only check for the files existence here.
- */
- wchar_t _wPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(aPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _wPathName[i] = 0;
+ int ret;
+
+ /*
+ * under windows, all files are readable ...
+ * so, only check for the files existence here.
+ */
+ wchar_t _wPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(aPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _wPathName[i] = 0;
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- ret = GetFileAttributesW(_wPathName);
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if (ret < 0) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN (false);
- }
- RETURN (true);
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ ret = GetFileAttributesW(_wPathName);
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if (ret < 0) {
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN (false);
+ }
+ RETURN (true);
}
%}.
^ self primitiveFailed
@@ -5408,46 +5428,46 @@
if (__isStringLike(aPathName)) {
#ifdef DO_WRAP_CALLS
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName);
- } while ((ret == -1) && (__threadErrno == EINTR));
-#else
- ret = GetFileAttributesA((char *) __stringVal(aPathName));
- if (ret == -1) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName);
+ } while ((ret == -1) && (__threadErrno == EINTR));
+#else
+ ret = GetFileAttributesA((char *) __stringVal(aPathName));
+ if (ret == -1) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
#endif
} else if (__isUnicode16String(aPathName)) {
- wchar_t _wPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(aPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _wPathName[i] = 0;
+ wchar_t _wPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(aPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _wPathName[i] = 0;
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName);
- } while ((ret == -1) && (__threadErrno == EINTR));
-#else
- ret = GetFileAttributesW(_wPathName);
- if (ret == -1) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName);
+ } while ((ret == -1) && (__threadErrno == EINTR));
+#else
+ ret = GetFileAttributesW(_wPathName);
+ if (ret == -1) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
#endif
} else
- goto err;
+ goto err;
if (ret == -1) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN ( false );
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN ( false );
}
RETURN (true);
@@ -5470,8 +5490,8 @@
attr := self primGetFileAttributes:aPathName.
attr notNil ifTrue:[
- ^ (attr bitAnd: (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_READONLY ))
- ~~ FILE_ATTRIBUTE_READONLY
+ ^ (attr bitAnd: (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_READONLY ))
+ ~~ FILE_ATTRIBUTE_READONLY
].
^ false
@@ -5486,16 +5506,16 @@
"return some object filled with info for the file 'aPathName';
the info (for which corresponding access methods are understood by
the returned object) is:
- type - a symbol giving the files type
- mode - numeric access mode
- uid - owners user id
- gid - owners group id
- size - files size
- id - files number (i.e. inode number)
- accessed - last access time (as Timestamp)
- modified - last modification time (as Timestamp)
- statusChanged - last status change time (as Timestamp)
- alternativeName - (windows only:) the MSDOS name of the file
+ type - a symbol giving the files type
+ mode - numeric access mode
+ uid - owners user id
+ gid - owners group id
+ size - files size
+ id - files number (i.e. inode number)
+ accessed - last access time (as Timestamp)
+ modified - last modification time (as Timestamp)
+ statusChanged - last status change time (as Timestamp)
+ alternativeName - (windows only:) the MSDOS name of the file
Some of the fields may be returned as nil on systems which do not provide
all of the information.
@@ -5521,45 +5541,45 @@
wchar_t _aPathName[MAX_PATH+1];
if (__isStringLike(aPathName)) {
- int i;
- int l = __stringSize(aPathName);
- if (l > MAX_PATH) l = MAX_PATH;
-
- for (i=0; i<l; i++) {
- _aPathName[i] = __stringVal(aPathName)[i];
- }
- _aPathName[i] = 0;
+ int i;
+ int l = __stringSize(aPathName);
+ if (l > MAX_PATH) l = MAX_PATH;
+
+ for (i=0; i<l; i++) {
+ _aPathName[i] = __stringVal(aPathName)[i];
+ }
+ _aPathName[i] = 0;
} else if (__isUnicode16String(aPathName)) {
- int i;
- int l = __unicode16StringSize(aPathName);
- if (l > MAX_PATH) l = MAX_PATH;
-
- for (i=0; i<l; i++) {
- _aPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _aPathName[i] = 0;
+ int i;
+ int l = __unicode16StringSize(aPathName);
+ if (l > MAX_PATH) l = MAX_PATH;
+
+ for (i=0; i<l; i++) {
+ _aPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _aPathName[i] = 0;
} else
- goto badArgument;
+ goto badArgument;
#ifdef DO_WRAP_CALLS
{
- do {
- __threadErrno = 0;
- result = STX_API_NOINT_CALL3( "GetFileAttributesExW", GetFileAttributesExW, _aPathName, GetFileExInfoStandard, &fileAttributeData);
- } while (!result && (__threadErrno == EINTR));
+ do {
+ __threadErrno = 0;
+ result = STX_API_NOINT_CALL3( "GetFileAttributesExW", GetFileAttributesExW, _aPathName, GetFileExInfoStandard, &fileAttributeData);
+ } while (!result && (__threadErrno == EINTR));
}
#else
result = GetFileAttributesExW(_aPathName, GetFileExInfoStandard, &fileAttributeData);
if (!result) {
- __threadErrno = __WIN32_ERR(GetLastError());
+ __threadErrno = __WIN32_ERR(GetLastError());
}
#endif
if (!result) {
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
} else {
- id = __mkSmallInteger(0); /* could get it by opening ... */
- size = __MKLARGEINT64(1, fileAttributeData.nFileSizeLow, fileAttributeData.nFileSizeHigh);
+ id = __mkSmallInteger(0); /* could get it by opening ... */
+ size = __MKLARGEINT64(1, fileAttributeData.nFileSizeLow, fileAttributeData.nFileSizeHigh);
// if (fileAttributeData.cFileName[0] != '\0') {
// bcopy(fileAttributeData.cFileName, fileNameBuffer, MAX_PATH*sizeof(wchar_t));
@@ -5573,83 +5593,83 @@
// alternativeName = __MKU16STRING(alternativeFileNameBuffer); /* DOS name */
// }
- /*
- * simulate access bits
- */
- if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
- modeBits = 0444;
- } else {
- modeBits = 0666;
- }
-
- if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
- type = @symbol(directory);
- modeBits = 0777; /* executable and WRITABLE - refer to comment in #isWritable: */
- } else if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
- type = @symbol(symbolicLink);
- modeBits = 0777; /* even in UNIX symlinks have 0777 */
- } else {
- type = @symbol(regular);
- }
-
- mode = __mkSmallInteger(modeBits);
-
- cOsTime = FileTimeToOsTime(&fileAttributeData.ftCreationTime);
- aOsTime = FileTimeToOsTime(&fileAttributeData.ftLastAccessTime);
- mOsTime = FileTimeToOsTime(&fileAttributeData.ftLastWriteTime);
+ /*
+ * simulate access bits
+ */
+ if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
+ modeBits = 0444;
+ } else {
+ modeBits = 0666;
+ }
+
+ if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
+ type = @symbol(directory);
+ modeBits = 0777; /* executable and WRITABLE - refer to comment in #isWritable: */
+ } else if (fileAttributeData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
+ type = @symbol(symbolicLink);
+ modeBits = 0777; /* even in UNIX symlinks have 0777 */
+ } else {
+ type = @symbol(regular);
+ }
+
+ mode = __mkSmallInteger(modeBits);
+
+ cOsTime = FileTimeToOsTime(&fileAttributeData.ftCreationTime);
+ aOsTime = FileTimeToOsTime(&fileAttributeData.ftLastAccessTime);
+ mOsTime = FileTimeToOsTime(&fileAttributeData.ftLastWriteTime);
}
badArgument: ;
%}.
(aPathName endsWith:'.lnk') ifTrue:[
- type := #symbolicLink.
- "/ now done lazyly in FileStatusInfo, when the path is accessed
- "/ path := self getLinkTarget:aPathName.
+ type := #symbolicLink.
+ "/ now done lazyly in FileStatusInfo, when the path is accessed
+ "/ path := self getLinkTarget:aPathName.
].
mode isNil ifTrue:[
- (self isDirectory:aPathName) ifTrue:[
- "/ the code above fails for root directories (these do not exist).
- "/ simulate here
- mode := 8r777.
- type := #directory.
- uid := gid := 0.
- size := 0.
- id := 0.
- atime := mtime := ctime := Timestamp now.
- ].
+ (self isDirectory:aPathName) ifTrue:[
+ "/ the code above fails for root directories (these do not exist).
+ "/ simulate here
+ mode := 8r777.
+ type := #directory.
+ uid := gid := 0.
+ size := 0.
+ id := 0.
+ atime := mtime := ctime := Timestamp now.
+ ].
].
mode notNil ifTrue:[
- atime isNil ifTrue:[
- atime := Timestamp new fromOSTime:aOsTime.
- ].
- mtime isNil ifTrue:[
- mtime := Timestamp new fromOSTime:mOsTime.
- ].
- ctime isNil ifTrue:[
- ctime := Timestamp new fromOSTime:cOsTime.
- ].
- fileName notNil ifTrue:[
- fileName := fileName asSingleByteStringIfPossible
- ].
- alternativeName notNil ifTrue:[
- alternativeName := alternativeName asSingleByteStringIfPossible
- ].
- info := FileStatusInfo
- type:type
- mode:mode
- uid:uid
- gid:gid
- size:size
- id:id
- accessed:atime
- modified:mtime
- created:ctime
- sourcePath:aPathName
- fullName:fileName
- alternativeName:alternativeName.
- ^ info
+ atime isNil ifTrue:[
+ atime := Timestamp new fromOSTime:aOsTime.
+ ].
+ mtime isNil ifTrue:[
+ mtime := Timestamp new fromOSTime:mOsTime.
+ ].
+ ctime isNil ifTrue:[
+ ctime := Timestamp new fromOSTime:cOsTime.
+ ].
+ fileName notNil ifTrue:[
+ fileName := fileName asSingleByteStringIfPossible
+ ].
+ alternativeName notNil ifTrue:[
+ alternativeName := alternativeName asSingleByteStringIfPossible
+ ].
+ info := FileStatusInfo
+ type:type
+ mode:mode
+ uid:uid
+ gid:gid
+ size:size
+ id:id
+ accessed:atime
+ modified:mtime
+ created:ctime
+ sourcePath:aPathName
+ fullName:fileName
+ alternativeName:alternativeName.
+ ^ info
].
^ nil
@@ -5670,8 +5690,8 @@
Returns nil if no mimeType for the given suffix is known."
^ RegistryEntry
- stringValueFor:'Content Type'
- atKey:('HKEY_CLASSES_ROOT\.' , aFileSuffix)
+ stringValueFor:'Content Type'
+ atKey:('HKEY_CLASSES_ROOT\.' , aFileSuffix)
"
self mimeTypeForSuffix:'au'
@@ -5704,20 +5724,20 @@
path := self primPathNameOf:pathName.
path isNil ifTrue:[
- (self isValidPath:pathName) ifFalse:[
- p := pathName.
- [(p size > 1)
- and:[p endsWith:(self fileSeparator)]
- ] whileTrue:[
- p := p copyWithoutLast:1.
- ].
- ^ p
- ].
-
- "/
- "/ return the original - there is nothing else can we do
- "/
- path := self compressPath:pathName
+ (self isValidPath:pathName) ifFalse:[
+ p := pathName.
+ [(p size > 1)
+ and:[p endsWith:(self fileSeparator)]
+ ] whileTrue:[
+ p := p copyWithoutLast:1.
+ ].
+ ^ p
+ ].
+
+ "/
+ "/ return the original - there is nothing else can we do
+ "/
+ path := self compressPath:pathName
].
^ path.
@@ -5772,52 +5792,52 @@
if (__isStringLike(aPathName)) {
#ifdef DO_WRAP_CALLS
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- ret = GetFileAttributesA((char *) __stringVal(aPathName));
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if (ret >= 0) {
- RETURN ( __mkSmallInteger(ret) );
- }
- __threadErrno = __WIN32_ERR(GetLastError());
- RETURN (nil);
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetFileAttributesA", GetFileAttributesA, _aPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ ret = GetFileAttributesA((char *) __stringVal(aPathName));
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if (ret >= 0) {
+ RETURN ( __mkSmallInteger(ret) );
+ }
+ __threadErrno = __WIN32_ERR(GetLastError());
+ RETURN (nil);
}
if (__isUnicode16String(aPathName)) {
- wchar_t _wPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(aPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _wPathName[i] = 0;
+ wchar_t _wPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(aPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _wPathName[i] = 0;
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName);
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- ret = GetFileAttributesW(_wPathName);
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if (ret >= 0) {
- RETURN ( __mkSmallInteger(ret) );
- }
- __threadErrno = __WIN32_ERR(GetLastError());
- RETURN (nil);
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL1( "GetFileAttributesW", GetFileAttributesW, _wPathName);
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ ret = GetFileAttributesW(_wPathName);
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if (ret >= 0) {
+ RETURN ( __mkSmallInteger(ret) );
+ }
+ __threadErrno = __WIN32_ERR(GetLastError());
+ RETURN (nil);
}
%}.
^ self primitiveFailed
@@ -5847,102 +5867,102 @@
%{ /* xxSTACK: 16000 */
if (__isStringLike(aPathName)) {
- char nameBuffer[MAXPATHLEN + 1 + MAXPATHLEN + 1];
- char *pFinal;
- int rslt;
+ char nameBuffer[MAXPATHLEN + 1 + MAXPATHLEN + 1];
+ char *pFinal;
+ int rslt;
#ifdef DO_WRAP_CALLS
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- rslt = STX_API_NOINT_CALL4( "GetFullPathName", GetFullPathName, _aPathName, sizeof(nameBuffer), nameBuffer, &pFinal);
- } while ((rslt < 0) && (__threadErrno == EINTR));
-#else
- rslt = GetFullPathName(__stringVal(aPathName), sizeof(nameBuffer), nameBuffer, &pFinal);
-#endif
-
- if (rslt > 0) {
- /*
- * Attention: GetLongPathName is not available on old NT4.0/W95/W98
- */
- static FARPROC GetLongPathName_entry = NULL;
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ rslt = STX_API_NOINT_CALL4( "GetFullPathName", GetFullPathName, _aPathName, sizeof(nameBuffer), nameBuffer, &pFinal);
+ } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+ rslt = GetFullPathName(__stringVal(aPathName), sizeof(nameBuffer), nameBuffer, &pFinal);
+#endif
+
+ if (rslt > 0) {
+ /*
+ * Attention: GetLongPathName is not available on old NT4.0/W95/W98
+ */
+ static FARPROC GetLongPathName_entry = NULL;
#ifdef NO_NT4_0_COMPATIBILITY
- GetLongPathName_entry = (FARPROC) GetLongPathName;
-#else
- if (GetLongPathName_entry == NULL) {
- GetLongPathName_entry = __get_kernel32_functionAddress("GetLongPathNameA");
- }
+ GetLongPathName_entry = (FARPROC) GetLongPathName;
+#else
+ if (GetLongPathName_entry == NULL) {
+ GetLongPathName_entry = __get_kernel32_functionAddress("GetLongPathNameA");
+ }
#endif /* NO_NT4_0_COMPATIBILITY */
- if (GetLongPathName_entry) {
+ if (GetLongPathName_entry) {
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- rslt = STX_API_NOINT_CALL3( "GetLongPathName", GetLongPathName_entry, nameBuffer, nameBuffer, sizeof(nameBuffer));
- } while ((rslt < 0) && (__threadErrno == EINTR));
-#else
- rslt = (*GetLongPathName_entry)(nameBuffer, nameBuffer, sizeof(nameBuffer));
-#endif
- }
- }
- if (rslt > 0) {
- RETURN ( __MKSTRING(nameBuffer) );
- }
- __threadErrno = __WIN32_ERR(GetLastError());
- RETURN (nil);
+ do {
+ __threadErrno = 0;
+ rslt = STX_API_NOINT_CALL3( "GetLongPathName", GetLongPathName_entry, nameBuffer, nameBuffer, sizeof(nameBuffer));
+ } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+ rslt = (*GetLongPathName_entry)(nameBuffer, nameBuffer, sizeof(nameBuffer));
+#endif
+ }
+ }
+ if (rslt > 0) {
+ RETURN ( __MKSTRING(nameBuffer) );
+ }
+ __threadErrno = __WIN32_ERR(GetLastError());
+ RETURN (nil);
}
if (__isUnicode16String(aPathName)) {
- wchar_t nameBuffer[MAXPATHLEN + 1 + MAXPATHLEN + 1];
- char *pFinal;
- int rslt;
- wchar_t _aPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(aPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _aPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _aPathName[i] = 0;
+ wchar_t nameBuffer[MAXPATHLEN + 1 + MAXPATHLEN + 1];
+ char *pFinal;
+ int rslt;
+ wchar_t _aPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(aPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _aPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _aPathName[i] = 0;
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- rslt = STX_API_NOINT_CALL4( "GetFullPathNameW", GetFullPathNameW, _aPathName, MAXPATHLEN, nameBuffer, &pFinal);
- } while ((rslt < 0) && (__threadErrno == EINTR));
-#else
- rslt = GetFullPathName(_aPathName, MAXPATHLEN, nameBuffer, &pFinal);
-#endif
- if (rslt > 0) {
- /*
- * Attention: GetLongPathName is not available on old NT4.0/W95/W98
- */
- static FARPROC GetLongPathNameW_entry = NULL;
+ do {
+ __threadErrno = 0;
+ rslt = STX_API_NOINT_CALL4( "GetFullPathNameW", GetFullPathNameW, _aPathName, MAXPATHLEN, nameBuffer, &pFinal);
+ } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+ rslt = GetFullPathName(_aPathName, MAXPATHLEN, nameBuffer, &pFinal);
+#endif
+ if (rslt > 0) {
+ /*
+ * Attention: GetLongPathName is not available on old NT4.0/W95/W98
+ */
+ static FARPROC GetLongPathNameW_entry = NULL;
#ifdef NO_NT4_0_COMPATIBILITY
- GetLongPathNameW_entry = (FARPROC) GetLongPathNameW;
-#else
- if (GetLongPathNameW_entry == NULL) {
- GetLongPathNameW_entry = __get_kernel32_functionAddress("GetLongPathNameW");
- }
+ GetLongPathNameW_entry = (FARPROC) GetLongPathNameW;
+#else
+ if (GetLongPathNameW_entry == NULL) {
+ GetLongPathNameW_entry = __get_kernel32_functionAddress("GetLongPathNameW");
+ }
#endif /* NO_NT4_0_COMPATIBILITY */
- if (GetLongPathNameW_entry) {
+ if (GetLongPathNameW_entry) {
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- rslt = STX_API_NOINT_CALL3( "GetLongPathNameW", GetLongPathNameW_entry, nameBuffer, nameBuffer, MAXPATHLEN);
- } while ((rslt < 0) && (__threadErrno == EINTR));
-#else
- rslt = (*GetLongPathNameW_entry)(nameBuffer, nameBuffer, MAXPATHLEN);
-#endif
- }
- }
- if (rslt > 0) {
- RETURN ( __MKU16STRING(nameBuffer) );
- }
- __threadErrno = __WIN32_ERR(GetLastError());
+ do {
+ __threadErrno = 0;
+ rslt = STX_API_NOINT_CALL3( "GetLongPathNameW", GetLongPathNameW_entry, nameBuffer, nameBuffer, MAXPATHLEN);
+ } while ((rslt < 0) && (__threadErrno == EINTR));
+#else
+ rslt = (*GetLongPathNameW_entry)(nameBuffer, nameBuffer, MAXPATHLEN);
+#endif
+ }
+ }
+ if (rslt > 0) {
+ RETURN ( __MKU16STRING(nameBuffer) );
+ }
+ __threadErrno = __WIN32_ERR(GetLastError());
}
%}.
^ nil
@@ -5980,55 +6000,55 @@
int ret;
if (__isSmallInteger(anInteger)) {
- if (__isStringLike(aPathName)) {
+ if (__isStringLike(aPathName)) {
#ifdef DO_WRAP_CALLS
- char _aPathName[MAXPATHLEN];
-
- strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL2( "SetFileAttributesA", SetFileAttributesA, _aPathName, __intVal(anInteger) );
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- ret = SetFileAttributesA((char *) __stringVal(aPathName), __intVal(anInteger));
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if (ret >= 0) {
- RETURN ( true );
- }
- __threadErrno = __WIN32_ERR(GetLastError());
- RETURN (false);
- }
-
- if (__isUnicode16String(aPathName)) {
- wchar_t _wPathName[MAXPATHLEN+1];
- int i, l;
-
- l = __unicode16StringSize(aPathName);
- if (l > MAXPATHLEN) l = MAXPATHLEN;
- for (i=0; i<l; i++) {
- _wPathName[i] = __unicode16StringVal(aPathName)[i];
- }
- _wPathName[i] = 0;
+ char _aPathName[MAXPATHLEN];
+
+ strncpy(_aPathName, __stringVal(aPathName), MAXPATHLEN-1); _aPathName[MAXPATHLEN-1] = '\0';
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL2( "SetFileAttributesA", SetFileAttributesA, _aPathName, __intVal(anInteger) );
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ ret = SetFileAttributesA((char *) __stringVal(aPathName), __intVal(anInteger));
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if (ret >= 0) {
+ RETURN ( true );
+ }
+ __threadErrno = __WIN32_ERR(GetLastError());
+ RETURN (false);
+ }
+
+ if (__isUnicode16String(aPathName)) {
+ wchar_t _wPathName[MAXPATHLEN+1];
+ int i, l;
+
+ l = __unicode16StringSize(aPathName);
+ if (l > MAXPATHLEN) l = MAXPATHLEN;
+ for (i=0; i<l; i++) {
+ _wPathName[i] = __unicode16StringVal(aPathName)[i];
+ }
+ _wPathName[i] = 0;
#ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- ret = STX_API_NOINT_CALL2( "SetFileAttributesW", SetFileAttributesW, _wPathName, __intVal(anInteger) );
- } while ((ret < 0) && (__threadErrno == EINTR));
-#else
- ret = SetFileAttributesW(_wPathName, __intVal(anInteger));
- if (ret < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if (ret >= 0) {
- RETURN ( true );
- }
- __threadErrno = __WIN32_ERR(GetLastError());
- RETURN (false);
- }
+ do {
+ __threadErrno = 0;
+ ret = STX_API_NOINT_CALL2( "SetFileAttributesW", SetFileAttributesW, _wPathName, __intVal(anInteger) );
+ } while ((ret < 0) && (__threadErrno == EINTR));
+#else
+ ret = SetFileAttributesW(_wPathName, __intVal(anInteger));
+ if (ret < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if (ret >= 0) {
+ RETURN ( true );
+ }
+ __threadErrno = __WIN32_ERR(GetLastError());
+ RETURN (false);
+ }
}
%}.
^ self primitiveFailed
@@ -6036,9 +6056,9 @@
setCurrentDirectory:pathName
pathName bitsPerCharacter == 16 ifTrue:[
- self primSetCurrentDirectoryW:(pathName copyWith:(Character value:0))
+ self primSetCurrentDirectoryW:(pathName copyWith:(Character value:0))
] ifFalse:[
- self primSetCurrentDirectoryA:pathName
+ self primSetCurrentDirectoryA:pathName
].
"
@@ -6056,7 +6076,7 @@
attr := self primGetFileAttributes:aPathName.
(attr bitTest:FILE_ATTRIBUTE_HIDDEN ) ifFalse:[
- ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
+ ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
].
^ true "/ aready set
@@ -6071,7 +6091,7 @@
attr := self primGetFileAttributes:aPathName.
(attr bitTest:FILE_ATTRIBUTE_NORMAL ) ifFalse:[
- ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
+ ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
].
^ true "/ aready set
!
@@ -6083,7 +6103,7 @@
attr := self primGetFileAttributes:aPathName.
(attr bitTest:FILE_ATTRIBUTE_TEMPORARY ) ifFalse:[
- ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
+ ^ self primSetFileAttributes:aPathName to:(attr bitOr:2).
].
^ true "/ aready set
!
@@ -6093,7 +6113,7 @@
For nonexistent files, nil is returned."
"could be implemented as:
- (self infoOf:aPathName) accessed
+ (self infoOf:aPathName) accessed
"
| i|
@@ -6111,7 +6131,7 @@
For nonexistent files, nil is returned."
"could be implemented as:
- (self infoOf:aPathName) modified
+ (self infoOf:aPathName) modified
"
| i|
@@ -6134,7 +6154,7 @@
"
this could have been implemented as:
- (self infoOf:aPathName) type
+ (self infoOf:aPathName) type
"
i := self infoOf:aPathName.
@@ -6151,31 +6171,31 @@
volumeLabelOf: aFilenameOrString
- "Answer the volume label of the disk containing aFilenameOrString."
+ "Answer the volume label of the disk containing aFilenameOrString."
| volName |
volName := String new: 255.
( self
- getVolumeInformation: aFilenameOrString asFilename volume, '\'
- name: volName
- nameSize: volName size
- serialNumber: nil
- maximumComponentLength: nil
- fileSystemFlags: nil
- fileSystemName: nil
- fileSystemNameSize: 0 )
- ifFalse: [
- Transcript showCR:'GetVolumeInformation error'.
- ^ ''
- ].
+ getVolumeInformation: aFilenameOrString asFilename volume, '\'
+ name: volName
+ nameSize: volName size
+ serialNumber: nil
+ maximumComponentLength: nil
+ fileSystemFlags: nil
+ fileSystemName: nil
+ fileSystemNameSize: 0 )
+ ifFalse: [
+ Transcript showCR:'GetVolumeInformation error'.
+ ^ ''
+ ].
^ volName copyUpTo: Character null
"
- self volumeLabelOf: 'C:\pepe.pep'
- self volumeLabelOf: 'C:'
- self volumeLabelOf: 'C:\\'
- self volumeLabelOf: 'C:\'
+ self volumeLabelOf: 'C:\pepe.pep'
+ self volumeLabelOf: 'C:'
+ self volumeLabelOf: 'C:\\'
+ self volumeLabelOf: 'C:\'
"
!
@@ -6188,7 +6208,7 @@
aPathString size < 2 ifTrue:[^ ''].
(aPathString at:2) == $: ifTrue:[
- ^ (aPathString at:1) asString.
+ ^ (aPathString at:1) asString.
].
^ ''
! !
@@ -6205,11 +6225,11 @@
html documents, pdf documents etc."
Error
- handle:[:ex |
- Dialog warn:'Shell execution failed'
- ] do:[
- self openApplicationForDocument:aFilenameOrString operation:#open
- ]
+ handle:[:ex |
+ Dialog warn:'Shell execution failed'
+ ] do:[
+ self openApplicationForDocument:aFilenameOrString operation:#open
+ ]
"
self openDocumentationFilename: 'C:\WINDOWS\Help\clipbrd.chm' asFilename
@@ -6266,8 +6286,8 @@
%{
while(1) {
- console_printf("blocking...");
- Sleep(50);
+ console_printf("blocking...");
+ Sleep(50);
}
%}.
"
@@ -6281,8 +6301,8 @@
%{
while(1) {
- console_printf("blocking...");
- STX_API_CALL1("Sleep", Sleep, 50);
+ console_printf("blocking...");
+ STX_API_CALL1("Sleep", Sleep, 50);
}
%}.
"
@@ -6299,7 +6319,7 @@
int ret;
do {
- ret = STX_API_NOINT_CALL1("Sleep", Sleep, 60000);
+ ret = STX_API_NOINT_CALL1("Sleep", Sleep, 60000);
} while (ret < 0 && __threadErrno == EINTR);
%}.
"
@@ -6316,7 +6336,7 @@
int ret;
do {
- ret = STX_API_CALL1("Sleep", Sleep, 60000);
+ ret = STX_API_CALL1("Sleep", Sleep, 60000);
} while (ret < 0 && __threadErrno == EINTR);
%}.
"
@@ -6338,8 +6358,8 @@
if (__isSmallInteger(signalNumber)) {
#ifdef SIG_DFL
- signal(__intVal(signalNumber), SIG_DFL);
- RETURN (self);
+ signal(__intVal(signalNumber), SIG_DFL);
+ RETURN (self);
#endif
}
%}.
@@ -6382,14 +6402,14 @@
%{ /* NOCONTEXT */
if (__isSmallInteger(signalNumber)) {
- int sigNo = __intVal(signalNumber);
-
- if (sigNo == 0) {
- RETURN (self);
- }
+ int sigNo = __intVal(signalNumber);
+
+ if (sigNo == 0) {
+ RETURN (self);
+ }
#ifdef SIG_IGN
- signal(sigNo, SIG_IGN);
- RETURN (self);
+ signal(sigNo, SIG_IGN);
+ RETURN (self);
#endif
}
%}.
@@ -6410,8 +6430,8 @@
disableTimer
"disable timer interrupts.
WARNING:
- the system will not operate correctly with timer interrupts
- disabled, because no scheduling or timeouts are possible."
+ the system will not operate correctly with timer interrupts
+ disabled, because no scheduling or timeouts are possible."
%{ /* NOCONTEXT */
@@ -6537,121 +6557,121 @@
&& (sigNr <= SIG_LIMIT)
#endif
) {
- /*
- * standard signals are forced into standard handlers
- * - all others go into general signalInterrupt
- */
+ /*
+ * standard signals are forced into standard handlers
+ * - all others go into general signalInterrupt
+ */
#if defined(SIGPOLL) && defined(SIGIO)
- if (sigNr == SIGPOLL)
- sigNr = SIGIO;
-#endif
- switch (sigNr) {
- case 0:
- /* enabling a non-supported signal */
- RETURN (self);
+ if (sigNr == SIGPOLL)
+ sigNr = SIGIO;
+#endif
+ switch (sigNr) {
+ case 0:
+ /* enabling a non-supported signal */
+ RETURN (self);
#ifdef SIGBREAK
- case SIGBREAK:
+ case SIGBREAK:
#endif
#ifdef SIGINT
- case SIGINT:
+ case SIGINT:
#endif
#ifdef SIGQUIT
- case SIGQUIT:
+ case SIGQUIT:
#endif
#ifdef SIGNALDEBUGWIN32
- console_printf("ConsoleSignal %d\n",sigNr);
-#endif
- SetConsoleCtrlHandler((PHANDLER_ROUTINE)__signalUserInterruptWIN32,TRUE);
- RETURN (self);
+ console_printf("ConsoleSignal %d\n",sigNr);
+#endif
+ SetConsoleCtrlHandler((PHANDLER_ROUTINE)__signalUserInterruptWIN32,TRUE);
+ RETURN (self);
#ifdef SIGFPE
- case SIGFPE:
- handler = __signalFpExceptionInterrupt;
- break;
+ case SIGFPE:
+ handler = __signalFpExceptionInterrupt;
+ break;
#endif
#ifdef SIGPIPE
- case SIGPIPE:
- handler = __signalPIPEInterrupt;
- break;
+ case SIGPIPE:
+ handler = __signalPIPEInterrupt;
+ break;
#endif
#ifdef SIGBUS
- case SIGBUS:
- handler = __signalBUSInterrupt;
- break;
+ case SIGBUS:
+ handler = __signalBUSInterrupt;
+ break;
#endif
#ifdef SIGSEGV
- case SIGSEGV:
- handler = __signalSEGVInterrupt;
- break;
+ case SIGSEGV:
+ handler = __signalSEGVInterrupt;
+ break;
#endif
#ifdef SIGILL
- case SIGILL:
- handler = __signalTrapInterrupt;
- break;
+ case SIGILL:
+ handler = __signalTrapInterrupt;
+ break;
#endif
#ifdef SIGEMT
- case SIGEMT:
- handler = __signalTrapInterrupt;
- break;
+ case SIGEMT:
+ handler = __signalTrapInterrupt;
+ break;
#endif
#ifdef SIGIO
- case SIGIO:
- handler = __signalIoInterrupt;
- break;
+ case SIGIO:
+ handler = __signalIoInterrupt;
+ break;
#endif
#ifdef CHILD_SIGNAL
- case CHILD_SIGNAL:
- handler = __signalChildInterrupt;
- break;
-#endif
-
- default:
- handler = __signalInterrupt;
- break;
- }
-
- {
+ case CHILD_SIGNAL:
+ handler = __signalChildInterrupt;
+ break;
+#endif
+
+ default:
+ handler = __signalInterrupt;
+ break;
+ }
+
+ {
#ifdef HAS_SIGACTION
- struct sigaction act;
-
- /*
- * Do not add SA_RESTART here. A signal can cause a
- * thread switch, another thread can do a garbage collect
- * and restarted system calls may write into old
- * (collected) addresses.
- */
-
- act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
- sigemptyset(&act.sa_mask);
- act.sa_handler = handler;
- sigaction(sigNr, &act, 0);
+ struct sigaction act;
+
+ /*
+ * Do not add SA_RESTART here. A signal can cause a
+ * thread switch, another thread can do a garbage collect
+ * and restarted system calls may write into old
+ * (collected) addresses.
+ */
+
+ act.sa_flags = SA_SIGINFO; /* <- if you add more, remember dummys at the top */
+ sigemptyset(&act.sa_mask);
+ act.sa_handler = handler;
+ sigaction(sigNr, &act, 0);
#else
# ifdef HAS_SIGVEC
- struct sigvec vec;
-
- vec.sv_flags = SV_INTERRUPT;
- sigemptyset(&vec.sv_mask);
- vec.sv_handler = handler;
- sigvec(sigNr, &vec, NULL);
+ struct sigvec vec;
+
+ vec.sv_flags = SV_INTERRUPT;
+ sigemptyset(&vec.sv_mask);
+ vec.sv_handler = handler;
+ sigvec(sigNr, &vec, NULL);
# else
# ifdef WIN32
# ifdef SIGNALDEBUGWIN32
- console_printf("signal %d can't change handler\n",sigNr);
+ console_printf("signal %d can't change handler\n",sigNr);
# endif
# else
- (void) signal(sigNr, handler);
+ (void) signal(sigNr, handler);
# endif
# endif
#endif
- }
-
- /*
- * maybe, we should Return the old enable-status
- * as boolean here ...
- */
- RETURN (self);
+ }
+
+ /*
+ * maybe, we should Return the old enable-status
+ * as boolean here ...
+ */
+ RETURN (self);
}
%}.
@@ -6669,8 +6689,8 @@
extern void __win32SetTimer();
if (__isSmallInteger(milliSeconds)) {
- __win32SetTimer( __intVal(milliSeconds) );
- RETURN (true);
+ __win32SetTimer( __intVal(milliSeconds) );
+ RETURN (true);
}
%}.
^ false
@@ -6690,8 +6710,8 @@
The process terminates immediately and has no chance to perform any cleanup actions.
WARNING: in order to avoid zombie processes (on unix),
- you have to fetch the processes exitstatus with
- OperatingSystem>>getStatusOfProcess:aProcessId."
+ you have to fetch the processes exitstatus with
+ OperatingSystem>>getStatusOfProcess:aProcessId."
self terminateProcess:processId
!
@@ -6703,9 +6723,9 @@
Do not confuse UNIX signals with Smalltalk-Signals.
WARNING: in order to avoid zombie processes (on unix),
- you may have to fetch the processes exitstatus with
- OperatingSystem>>getStatusOfProcess:aProcessId
- if the signal terminates that process."
+ you may have to fetch the processes exitstatus with
+ OperatingSystem>>getStatusOfProcess:aProcessId
+ if the signal terminates that process."
"/
"/ either invalid argument (non-integers)
@@ -6718,15 +6738,15 @@
"terminate a process.
The process has a chance to do some cleanup.
WIN32:
- Under unix, we have terminateProcess, which does a soft
- terminate (giving the process a chance to cleanup) and
- killProcess, which does a hard terminate.
- Under WIN32, both (currently) use the TerminateProcess
- function, which unconditionally causes a process to exit.
- I.e. under WIN32, the process has no chance to perform cleanup.
- Use it only in extreme circumstances. The state of
- global data maintained by dynamic-link libraries (DLLs)
- may be compromised if TerminateProcess is used.
+ Under unix, we have terminateProcess, which does a soft
+ terminate (giving the process a chance to cleanup) and
+ killProcess, which does a hard terminate.
+ Under WIN32, both (currently) use the TerminateProcess
+ function, which unconditionally causes a process to exit.
+ I.e. under WIN32, the process has no chance to perform cleanup.
+ Use it only in extreme circumstances. The state of
+ global data maintained by dynamic-link libraries (DLLs)
+ may be compromised if TerminateProcess is used.
TODO: send it a WM_QUIT instead, to allow for proper shutdown."
self terminateProcess:processHandleOrPid exitCode:0
@@ -6736,33 +6756,33 @@
"terminate a process.
The process should have a chance to do some cleanup.
WIN32:
- Under unix, we have terminateProcess, which does a soft
- terminate (giving the process a chance to cleanup) and
- killProcess, which does a hard terminate.
- Under WIN32, both (currently) use the TerminateProcess
- function, which unconditionally causes a process to exit.
- I.e. under WIN32, the process has no chance to perform cleanup.
- Use it only in extreme circumstances. The state of
- global data maintained by dynamic-link libraries (DLLs)
- may be compromised if TerminateProcess is used.
+ Under unix, we have terminateProcess, which does a soft
+ terminate (giving the process a chance to cleanup) and
+ killProcess, which does a hard terminate.
+ Under WIN32, both (currently) use the TerminateProcess
+ function, which unconditionally causes a process to exit.
+ I.e. under WIN32, the process has no chance to perform cleanup.
+ Use it only in extreme circumstances. The state of
+ global data maintained by dynamic-link libraries (DLLs)
+ may be compromised if TerminateProcess is used.
TODO: send it a WM_QUIT instead, to allow for proper shutdown."
%{
if (__isExternalAddressLike(processHandleOrPid) ) {
- HANDLE hProcess = _HANDLEVal(processHandleOrPid);
-
- if (hProcess != 0) {
- TerminateProcess( hProcess, __intVal(exitCode) );
- }
- RETURN( true );
+ HANDLE hProcess = _HANDLEVal(processHandleOrPid);
+
+ if (hProcess != 0) {
+ TerminateProcess( hProcess, __intVal(exitCode) );
+ }
+ RETURN( true );
} else if( __isSmallInteger(processHandleOrPid) ) {
- HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, __smallIntegerVal(processHandleOrPid));
-
- if( hProcess != 0 ) {
- TerminateProcess( hProcess, __intVal(exitCode) );
- CloseHandle(hProcess);
- }
- RETURN( true );
+ HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0, __smallIntegerVal(processHandleOrPid));
+
+ if( hProcess != 0 ) {
+ TerminateProcess( hProcess, __intVal(exitCode) );
+ CloseHandle(hProcess);
+ }
+ RETURN( true );
}
%}.
self primitiveFailed:#invalidParameter.
@@ -6776,8 +6796,8 @@
"terminate a process group.
The processes should have a chance to do some cleanup.
WIN32:
- The processGroup is terminated by sending it a CTRL-C
- using GenerateConsoleCtrlEvent."
+ The processGroup is terminated by sending it a CTRL-C
+ using GenerateConsoleCtrlEvent."
| pid list |
@@ -6785,14 +6805,14 @@
list size == 0 ifTrue:[^ self ].
processGroupHandleOrPid isInteger ifTrue:[
- pid := processGroupHandleOrPid
+ pid := processGroupHandleOrPid
] ifFalse:[
- pid := processGroupHandleOrPid pid.
+ pid := processGroupHandleOrPid pid.
].
list do:[:anOSProcess |
- ( anOSProcess parentPid == pid ) ifTrue:[
- self terminateProcess:( anOSProcess pid ).
- ].
+ ( anOSProcess parentPid == pid ) ifTrue:[
+ self terminateProcess:( anOSProcess pid ).
+ ].
].
! !
@@ -6819,8 +6839,8 @@
sa.bInheritHandle = TRUE;
if( ! CreatePipe( &pipeRead, &pipeWrite, &sa, 0 ) ) {
- @global(LastErrorNumber) = error = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
- goto out;
+ @global(LastErrorNumber) = error = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
+ goto out;
}
#if 1
@@ -6840,9 +6860,9 @@
out:;
%}.
(fd1 notNil and:[fd2 notNil]) ifTrue:[
- (fd1 ~~ -1 and:[fd2 ~~ -1]) ifTrue:[
- ^ Array with:fd1 with:fd2.
- ].
+ (fd1 ~~ -1 and:[fd2 ~~ -1]) ifTrue:[
+ ^ Array with:fd1 with:fd2.
+ ].
].
^ nil
@@ -6854,15 +6874,15 @@
"free pid resource"
%{
if (__isExternalAddressLike(pid) ) {
- HANDLE __pid = _HANDLEVal(pid);
-
- if (__pid != 0) {
+ HANDLE __pid = _HANDLEVal(pid);
+
+ if (__pid != 0) {
#ifdef PROCESSDEBUGWIN32
- console_printf("Close ProcessHandle %x\n", __pid);
-#endif
- CloseHandle(__pid);
- _HANDLEVal(pid) = 0;
- }
+ console_printf("Close ProcessHandle %x\n", __pid);
+#endif
+ CloseHandle(__pid);
+ _HANDLEVal(pid) = 0;
+ }
}
%}.
^ true.
@@ -6877,17 +6897,17 @@
spaceForTargetHandle := ExternalLong new.
hMe := self getCurrentProcess.
rslt := self
- primDuplicateHandle_hSourcProcessHandle:hMe
- hSourceHandle:aHandle
- hTargetProcesshandle:targetProcessHandle
- lpTargetHandle:spaceForTargetHandle
- dwDesiredAccess:0
- bInheritHandle:false
- dwOptions:2 "DUPLICATE_SAME_ACCESS".
+ primDuplicateHandle_hSourcProcessHandle:hMe
+ hSourceHandle:aHandle
+ hTargetProcesshandle:targetProcessHandle
+ lpTargetHandle:spaceForTargetHandle
+ dwDesiredAccess:0
+ bInheritHandle:false
+ dwOptions:2 "DUPLICATE_SAME_ACCESS".
rslt ifFalse:[
- self primitiveFailed.
- ^ nil
+ self primitiveFailed.
+ ^ nil
].
^ ExternalAddress newAddress:(spaceForTargetHandle value).
@@ -6909,20 +6929,20 @@
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if( hProcessSnap != INVALID_HANDLE_VALUE ) {
- pe32.dwSize = sizeof(PROCESSENTRY32);
- Process32First( hProcessSnap, & pe32 );
-
- do {
- st_perProc = __SSEND0(@global(OSProcess), @symbol(new), 0);
-
- __SSEND1(st_perProc, @symbol(commandLine:), 0, __MKSTRING(pe32.szExeFile) );
- __SSEND1(st_perProc, @symbol(pid:), 0, __mkSmallInteger(pe32.th32ProcessID) );
- __SSEND1(st_perProc, @symbol(parentPid:), 0, __mkSmallInteger(pe32.th32ParentProcessID) );
-
- __SSEND1(list, @symbol(add:), 0, st_perProc );
- }
- while(Process32Next(hProcessSnap,&pe32));
- CloseHandle( hProcessSnap );
+ pe32.dwSize = sizeof(PROCESSENTRY32);
+ Process32First( hProcessSnap, & pe32 );
+
+ do {
+ st_perProc = __SSEND0(@global(OSProcess), @symbol(new), 0);
+
+ __SSEND1(st_perProc, @symbol(commandLine:), 0, __MKSTRING(pe32.szExeFile) );
+ __SSEND1(st_perProc, @symbol(pid:), 0, __mkSmallInteger(pe32.th32ProcessID) );
+ __SSEND1(st_perProc, @symbol(parentPid:), 0, __mkSmallInteger(pe32.th32ParentProcessID) );
+
+ __SSEND1(list, @symbol(add:), 0, st_perProc );
+ }
+ while(Process32Next(hProcessSnap,&pe32));
+ CloseHandle( hProcessSnap );
}
#endif /* TLHELP32_H_INCLUDE */
@@ -6943,8 +6963,8 @@
getPrivateProfileString:appNameString key:keyNameString default:defaultString fileName:fileName
^ self
- getProfileString:appNameString key:keyNameString default:defaultString
- fileName:fileName private:true
+ getProfileString:appNameString key:keyNameString default:defaultString
+ fileName:fileName private:true
"Modified: / 27-07-2006 / 11:57:03 / fm"
!
@@ -6962,40 +6982,40 @@
OBJ retVal;
if (__isStringLike(appNameString)) {
- __appNameString = __stringVal(appNameString);
+ __appNameString = __stringVal(appNameString);
} else if (appNameString != nil)
- goto primitiveFail;
+ goto primitiveFail;
if (__isStringLike(keyNameString)) {
- __keyNameString = __stringVal(keyNameString);
+ __keyNameString = __stringVal(keyNameString);
} else if (keyNameString != nil)
- goto primitiveFail;
+ goto primitiveFail;
if (__isStringLike(defaultString)) {
- __defaultString = __stringVal(defaultString);
+ __defaultString = __stringVal(defaultString);
} else if (defaultString != nil)
- goto primitiveFail;
+ goto primitiveFail;
do {
- nChars = GetProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize);
- if (nChars >= 0) {
- if (nChars != bufferSize-1) {
- retVal = __MKSTRING_L(usedBuffer, nChars);
- if (usedBuffer != quickBuffer) free(usedBuffer);
- RETURN (retVal);
- }
-
- {
- /* use a bigger buffer */
- char *newBuffer;
- int newBufferSize = bufferSize * 2;
-
- newBuffer = (char *)malloc( newBufferSize );
- if (usedBuffer != quickBuffer) free(usedBuffer);
- usedBuffer = newBuffer;
- bufferSize = newBufferSize;
- }
- }
+ nChars = GetProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize);
+ if (nChars >= 0) {
+ if (nChars != bufferSize-1) {
+ retVal = __MKSTRING_L(usedBuffer, nChars);
+ if (usedBuffer != quickBuffer) free(usedBuffer);
+ RETURN (retVal);
+ }
+
+ {
+ /* use a bigger buffer */
+ char *newBuffer;
+ int newBufferSize = bufferSize * 2;
+
+ newBuffer = (char *)malloc( newBufferSize );
+ if (usedBuffer != quickBuffer) free(usedBuffer);
+ usedBuffer = newBuffer;
+ bufferSize = newBufferSize;
+ }
+ }
} while (nChars > 0);
RETURN (nil);
@@ -7020,49 +7040,49 @@
OBJ retVal;
if (__isStringLike(appNameString)) {
- __appNameString = __stringVal(appNameString);
+ __appNameString = __stringVal(appNameString);
} else if (appNameString != nil)
- goto primitiveFail;
+ goto primitiveFail;
if (__isStringLike(keyNameString)) {
- __keyNameString = __stringVal(keyNameString);
+ __keyNameString = __stringVal(keyNameString);
} else if (keyNameString != nil)
- goto primitiveFail;
+ goto primitiveFail;
if (__isStringLike(defaultString)) {
- __defaultString = __stringVal(defaultString);
+ __defaultString = __stringVal(defaultString);
} else if (defaultString != nil)
- goto primitiveFail;
+ goto primitiveFail;
if (private == true) {
- if (! __isStringLike(fileName)) goto primitiveFail;
- __fileName = __stringVal(fileName);
+ if (! __isStringLike(fileName)) goto primitiveFail;
+ __fileName = __stringVal(fileName);
}
do {
- if (private == true) {
- nChars = GetPrivateProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize, __fileName);
- } else {
- nChars = GetProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize);
- }
- if (nChars >= 0) {
- if (nChars != bufferSize-1) {
- retVal = __MKSTRING_L(usedBuffer, nChars);
- if (usedBuffer != quickBuffer) free(usedBuffer);
- RETURN (retVal);
- }
-
- {
- /* use a bigger buffer */
- char *newBuffer;
- int newBufferSize = bufferSize * 2;
-
- newBuffer = (char *)malloc( newBufferSize );
- if (usedBuffer != quickBuffer) free(usedBuffer);
- usedBuffer = newBuffer;
- bufferSize = newBufferSize;
- }
- }
+ if (private == true) {
+ nChars = GetPrivateProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize, __fileName);
+ } else {
+ nChars = GetProfileString(__appNameString, __keyNameString, __defaultString, usedBuffer, bufferSize);
+ }
+ if (nChars >= 0) {
+ if (nChars != bufferSize-1) {
+ retVal = __MKSTRING_L(usedBuffer, nChars);
+ if (usedBuffer != quickBuffer) free(usedBuffer);
+ RETURN (retVal);
+ }
+
+ {
+ /* use a bigger buffer */
+ char *newBuffer;
+ int newBufferSize = bufferSize * 2;
+
+ newBuffer = (char *)malloc( newBufferSize );
+ if (usedBuffer != quickBuffer) free(usedBuffer);
+ usedBuffer = newBuffer;
+ bufferSize = newBufferSize;
+ }
+ }
} while (nChars > 0);
RETURN (nil);
@@ -7091,13 +7111,13 @@
"Convert the multi-byte string encoding in <lpstr> to a Unicode encoding in <lpwstr>."
" int MultiByteToWideChar(
- UINT CodePage, // code page
- DWORD dwFlags, // character-type options
- LPCSTR lpMultiByteStr, // address of string to map
- int cchMultiByte, // number of characters in string
- LPWSTR lpWideCharStr, // address of wide-character buffer
- int cchWideChar // size of buffer
- );"
+ UINT CodePage, // code page
+ DWORD dwFlags, // character-type options
+ LPCSTR lpMultiByteStr, // address of string to map
+ int cchMultiByte, // number of characters in string
+ LPWSTR lpWideCharStr, // address of wide-character buffer
+ int cchWideChar // size of buffer
+ );"
<apicall: ulongReturn "MultiByteToWideChar" ( uint32 uint32 structIn int32 structOut int32) module: "kernel32.dll" >
^self primitiveFailed
@@ -7116,7 +7136,7 @@
"
self
- playSound:'C:\Dokumente und Einstellungen\cg\work\exept\expecco\resources\sounds\start.wav'
+ playSound:'C:\Dokumente und Einstellungen\cg\work\exept\expecco\resources\sounds\start.wav'
"
"Created: / 06-11-2007 / 00:46:57 / cg"
@@ -7134,8 +7154,8 @@
"
self
- playSound:'C:\Dokumente und Einstellungen\cg\work\exept\expecco\resources\sounds\start.wav'
- mode:1
+ playSound:'C:\Dokumente und Einstellungen\cg\work\exept\expecco\resources\sounds\start.wav'
+ mode:1
"
"Modified: / 06-11-2007 / 00:46:27 / cg"
@@ -7165,7 +7185,7 @@
<apicall: dword "GetLastError" () module: "kernel32.dll" >
"
- self primGetLastError
+ self primGetLastError
"
!
@@ -7174,7 +7194,7 @@
<apicall: void "SetLastError" (dword) module: "kernel32.dll" >
"
- self primSetLastError: 0
+ self primSetLastError: 0
"
!
@@ -7198,15 +7218,15 @@
"Convert the Unicode encoding in <lpWideCharStr> to a multi-byte string encoding in <lpstr>."
"int WideCharToMultiByte(
- UINT CodePage, // code page
- DWORD dwFlags, // performance and mapping flags
- LPCWSTR lpWideCharStr, // address of wide-character string
- int cchWideChar, // number of characters in string
- LPSTR lpMultiByteStr, // address of buffer for new string
- int cchMultiByte, // size of buffer
- LPCSTR lpDefaultChar, // address of default for unmappable characters
- LPBOOL lpUsedDefaultChar // address of flag set when default char. used
- );"
+ UINT CodePage, // code page
+ DWORD dwFlags, // performance and mapping flags
+ LPCWSTR lpWideCharStr, // address of wide-character string
+ int cchWideChar, // number of characters in string
+ LPSTR lpMultiByteStr, // address of buffer for new string
+ int cchMultiByte, // size of buffer
+ LPCSTR lpDefaultChar, // address of default for unmappable characters
+ LPBOOL lpUsedDefaultChar // address of flag set when default char. used
+ );"
<apicall: ulongReturn "MultiByteToWideChar" ( uint32 uint32 structIn int32 structOut int32 structIn structOut) module: "kernel32.dll" >
^self primitiveFailed
@@ -7248,8 +7268,8 @@
"/ lastErrorCode == 5 "ERROR_ACCESS_DENIED" ifTrue:[Transcript showCR: 'Mutex not accesible (GetLastError = ERROR_ACCESS_DENIED)'.].
"/ lastErrorCode == 183 "ERROR_ALREADY_EXISTS" ifTrue:[Transcript showCR: 'Mutex already exists (GetLastError = ERROR_ALREADY_EXISTS)'.].
(handle isNil or:[handle address ~~ 0]) ifFalse:[
- Transcript showCR: 'CreateMutexNamed: "', name printString, '" failed'.
- handle := nil.
+ Transcript showCR: 'CreateMutexNamed: "', name printString, '" failed'.
+ handle := nil.
].
^ Array with: handle with: lastErrorCode
@@ -7269,8 +7289,8 @@
lastErrorCode := handleAndLastErrorCode second.
"/ self assert: lastErrorCode == 0.
^ handle isNil
- or:[lastErrorCode == 183 "ERROR_ALREADY_EXISTS"
- or:[ lastErrorCode == 5 "ERROR_ACCESS_DENIED"]]
+ or:[lastErrorCode == 183 "ERROR_ALREADY_EXISTS"
+ or:[ lastErrorCode == 5 "ERROR_ACCESS_DENIED"]]
"Modified: / 03-08-2010 / 16:59:41 / cg"
!
@@ -7287,8 +7307,8 @@
"/ lastErrorCode = 2 ifTrue:[Transcript showCR: 'Mutex does not exist (GetLastError = ERROR_FILE_NOT_FOUND)'.].
"/ lastErrorCode = 5 ifTrue:[Transcript showCR: 'Mutex not accesible (GetLastError = ERROR_ACCESS_DENIED)'.].
(handle isNil or:[handle address ~~ 0]) ifFalse:[
- Transcript showCR: 'OpenMutexNamed: "', name printString, '" failed'.
- ^ nil.
+ Transcript showCR: 'OpenMutexNamed: "', name printString, '" failed'.
+ ^ nil.
].
^ handle
@@ -7345,8 +7365,8 @@
| released|
hMutex isNil ifTrue:[
- Transcript showCR: 'hMutex is nil - cannot release'.
- ^ false
+ Transcript showCR: 'hMutex is nil - cannot release'.
+ ^ false
].
released := self primReleaseMutex: hMutex.
released ifFalse:[Transcript showCR: 'Release Mutex failed'.].
@@ -7362,8 +7382,8 @@
hMutex := self openMutexNamed: name.
hMutex isNil ifTrue:[
- Transcript showCR: 'Cannot release Mutex named: "', name printString,'"'.
- ^ false
+ Transcript showCR: 'Cannot release Mutex named: "', name printString,'"'.
+ ^ false
].
^ self releaseMutex: hMutex.
@@ -7394,53 +7414,53 @@
getDomainName
"return the DNS domain this host is in.
Notice:
- not all systems support this; on some, 'unknown' is returned."
+ not all systems support this; on some, 'unknown' is returned."
|domainName idx hostName k|
DomainName notNil ifTrue:[
- ^ DomainName
+ ^ DomainName
].
"/ sometimes, we can extract the domainName from the hostName ...
hostName := self getHostName.
hostName notEmptyOrNil ifTrue:[
- idx := hostName indexOf:$..
- idx ~~ 0 ifTrue:[
- domainName := hostName copyFrom:idx+1.
- ]
+ idx := hostName indexOf:$..
+ idx ~~ 0 ifTrue:[
+ domainName := hostName copyFrom:idx+1.
+ ]
].
domainName isNil ifTrue:[
- domainName := self getEnvironment:'DOMAIN'.
- domainName isNil ifTrue:[
- domainName := self getEnvironment:'DOMAINNAME'.
- ].
-
- domainName isNil ifTrue:[
- "/ ok, search the registry ...
- "/ under NT and later, it is found there ...
- k := RegistryEntry key:'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'.
- k notNil ifTrue:[
- domainName := k valueNamed:'Domain'.
- k close.
- ].
- ].
-
- domainName isNil ifTrue:[
- "/ under Win95/Win98, it is found there ...
- k := RegistryEntry key:'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP'.
- k notNil ifTrue:[
- domainName := k valueNamed:'Domain'.
- k close.
- ]
- ].
-
- domainName isNil ifTrue:[
- 'Win32OperatingSystem [warning]: cannot find out domainName' errorPrintCR.
- domainName := 'unknown'.
- ].
- DomainName := domainName. "cache only, if it is fixed"
+ domainName := self getEnvironment:'DOMAIN'.
+ domainName isNil ifTrue:[
+ domainName := self getEnvironment:'DOMAINNAME'.
+ ].
+
+ domainName isNil ifTrue:[
+ "/ ok, search the registry ...
+ "/ under NT and later, it is found there ...
+ k := RegistryEntry key:'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'.
+ k notNil ifTrue:[
+ domainName := k valueNamed:'Domain'.
+ k close.
+ ].
+ ].
+
+ domainName isNil ifTrue:[
+ "/ under Win95/Win98, it is found there ...
+ k := RegistryEntry key:'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP'.
+ k notNil ifTrue:[
+ domainName := k valueNamed:'Domain'.
+ k close.
+ ]
+ ].
+
+ domainName isNil ifTrue:[
+ 'Win32OperatingSystem [warning]: cannot find out domainName' errorPrintCR.
+ domainName := 'unknown'.
+ ].
+ DomainName := domainName. "cache only, if it is fixed"
].
^ domainName
@@ -7460,28 +7480,28 @@
char *env;
if (__isStringLike(aStringOrSymbol)) {
- char buff[1024];
- int nNeeded;
- OBJ ret = nil;
-
- nNeeded = GetEnvironmentVariable(__stringVal(aStringOrSymbol),
- buff,
- sizeof(buff));
- if (nNeeded > sizeof(buff)) {
- char *buff2;
-
- buff2 = (char *)malloc(nNeeded);
- GetEnvironmentVariable(__stringVal(aStringOrSymbol),
- buff2,
- nNeeded);
- ret = __MKSTRING(buff2);
- free(buff2);
- } else {
- if (nNeeded > 0) {
- ret = __MKSTRING(buff);
- }
- }
- RETURN (ret);
+ char buff[1024];
+ int nNeeded;
+ OBJ ret = nil;
+
+ nNeeded = GetEnvironmentVariable(__stringVal(aStringOrSymbol),
+ buff,
+ sizeof(buff));
+ if (nNeeded > sizeof(buff)) {
+ char *buff2;
+
+ buff2 = (char *)malloc(nNeeded);
+ GetEnvironmentVariable(__stringVal(aStringOrSymbol),
+ buff2,
+ nNeeded);
+ ret = __MKSTRING(buff2);
+ free(buff2);
+ } else {
+ if (nNeeded > 0) {
+ ret = __MKSTRING(buff);
+ }
+ }
+ RETURN (ret);
}
%}
.
@@ -7510,7 +7530,7 @@
DWORD buffSize = sizeof(buffer);
if (GetComputerNameEx(ComputerNameDnsFullyQualified, buffer, &buffSize) == TRUE) {
- hostName = __MKSTRING(buffer);
+ hostName = __MKSTRING(buffer);
}
%}.
^ hostName
@@ -7528,14 +7548,14 @@
lang := self getEnvironment:'LANG'.
(lang isNil or:[lang = 'default']) ifTrue:[
- "/ ok, search the registry ...
- "/ under XP, it is found there ...
- lang := RegistryEntry
- stringValueFor:'sLanguage'
- atKey:'HKEY_CURRENT_USER\Control Panel\International'.
- lang notNil ifTrue:[
- lang := self mapLanguage:lang.
- ].
+ "/ ok, search the registry ...
+ "/ under XP, it is found there ...
+ lang := RegistryEntry
+ stringValueFor:'sLanguage'
+ atKey:'HKEY_CURRENT_USER\Control Panel\International'.
+ lang notNil ifTrue:[
+ lang := self mapLanguage:lang.
+ ].
].
^ lang
@@ -7549,42 +7569,42 @@
"return a dictionary filled with values from the locale information;
Not all fields may be present, depending on the OS's setup and capabilities.
Possible fields are:
- decimalPoint <String>
-
- thousandsSep <String>
-
- internationalCurrencySymbol <String>
-
- currencySymbol <String>
-
- monetaryDecimalPoint <String>
-
- monetaryThousandsSeparator <String>
-
- positiveSign <String>
-
- negativeSign <String>
-
- internationalFractionalDigits <Integer>
-
- fractionalDigits <Integer>
-
- positiveSignPrecedesCurrencySymbol <Boolean>
-
- negativeSignPrecedesCurrencySymbol <Boolean>
-
- positiveSignSeparatedBySpaceFromCurrencySymbol <Boolean>
-
- negativeSignSeparatedBySpaceFromCurrencySymbol <Boolean>
-
- positiveSignPosition <Symbol>
- one of: #parenthesesAround,
- #signPrecedes,
- #signSuceeds,
- #signPrecedesCurrencySymbol,
- #signSuceedsCurrencySymbol
-
- negativeSignPosition <like above>
+ decimalPoint <String>
+
+ thousandsSep <String>
+
+ internationalCurrencySymbol <String>
+
+ currencySymbol <String>
+
+ monetaryDecimalPoint <String>
+
+ monetaryThousandsSeparator <String>
+
+ positiveSign <String>
+
+ negativeSign <String>
+
+ internationalFractionalDigits <Integer>
+
+ fractionalDigits <Integer>
+
+ positiveSignPrecedesCurrencySymbol <Boolean>
+
+ negativeSignPrecedesCurrencySymbol <Boolean>
+
+ positiveSignSeparatedBySpaceFromCurrencySymbol <Boolean>
+
+ negativeSignSeparatedBySpaceFromCurrencySymbol <Boolean>
+
+ positiveSignPosition <Symbol>
+ one of: #parenthesesAround,
+ #signPrecedes,
+ #signSuceeds,
+ #signPrecedesCurrencySymbol,
+ #signSuceedsCurrencySymbol
+
+ negativeSignPosition <like above>
it is up to the application to deal with undefined values.
@@ -7595,9 +7615,9 @@
|info val|
LocaleInfo notNil ifTrue:[
- "/ return the internal info; useful on systems which do not
- "/ support this.
- ^ LocaleInfo
+ "/ return the internal info; useful on systems which do not
+ "/ support this.
+ ^ LocaleInfo
].
info := IdentityDictionary new.
@@ -7618,31 +7638,31 @@
int csNegSepBySpace; /* money: 1 if currency symbol should be separated by a space from a negative value; 0 if no space */
int csPosSignPosition; /* money: 0: ()'s around the value & currency symbol */
int csNegSignPosition; /* 1: sign precedes the value & currency symbol */
- /* 2: sign succeeds the value & currency symbol */
- /* 3: sign immediately precedes the currency symbol */
- /* 4: sign immediately suceeds the currency symbol */
+ /* 2: sign succeeds the value & currency symbol */
+ /* 3: sign immediately precedes the currency symbol */
+ /* 4: sign immediately suceeds the currency symbol */
#if defined(HAS_LOCALECONV)
struct lconv *conf;
conf = localeconv();
if (conf) {
- decimalPoint = conf->decimal_point;
- thousandsSep = conf->thousands_sep;
- intCurrencySymbol = conf->int_curr_symbol;
- currencySymbol = conf->currency_symbol;
- monDecimalPoint = conf->mon_decimal_point;
- monThousandsSep = conf->mon_thousands_sep;
- positiveSign = conf->positive_sign;
- negativeSign = conf->negative_sign;
- intFractDigits = conf->int_frac_digits;
- fractDigits = conf->frac_digits;
- csPosPrecedes = conf->p_cs_precedes;
- csNegPrecedes = conf->n_cs_precedes;
- csPosSepBySpace = conf->p_sep_by_space;
- csNegSepBySpace = conf->n_sep_by_space;
- csPosSignPosition = conf->p_sign_posn;
- csNegSignPosition = conf->n_sign_posn;
+ decimalPoint = conf->decimal_point;
+ thousandsSep = conf->thousands_sep;
+ intCurrencySymbol = conf->int_curr_symbol;
+ currencySymbol = conf->currency_symbol;
+ monDecimalPoint = conf->mon_decimal_point;
+ monThousandsSep = conf->mon_thousands_sep;
+ positiveSign = conf->positive_sign;
+ negativeSign = conf->negative_sign;
+ intFractDigits = conf->int_frac_digits;
+ fractDigits = conf->frac_digits;
+ csPosPrecedes = conf->p_cs_precedes;
+ csNegPrecedes = conf->n_cs_precedes;
+ csPosSepBySpace = conf->p_sep_by_space;
+ csNegSepBySpace = conf->n_sep_by_space;
+ csPosSignPosition = conf->p_sign_posn;
+ csNegSignPosition = conf->n_sign_posn;
}
#else
decimalPoint = (char *)0;
@@ -7663,129 +7683,129 @@
csNegSignPosition = -1;
#endif
if (decimalPoint) {
- val = __MKSTRING(decimalPoint);
- __AT_PUT_(info, @symbol(decimalPoint), val);
+ val = __MKSTRING(decimalPoint);
+ __AT_PUT_(info, @symbol(decimalPoint), val);
}
if (thousandsSep) {
- val = __MKSTRING(thousandsSep);
- __AT_PUT_(info, @symbol(thousandsSeparator), val);
+ val = __MKSTRING(thousandsSep);
+ __AT_PUT_(info, @symbol(thousandsSeparator), val);
}
if (intCurrencySymbol) {
- val = __MKSTRING(intCurrencySymbol);
- __AT_PUT_(info, @symbol(internationCurrencySymbol), val);
+ val = __MKSTRING(intCurrencySymbol);
+ __AT_PUT_(info, @symbol(internationCurrencySymbol), val);
}
if (currencySymbol) {
- val = __MKSTRING(currencySymbol);
- __AT_PUT_(info, @symbol(currencySymbol), val);
+ val = __MKSTRING(currencySymbol);
+ __AT_PUT_(info, @symbol(currencySymbol), val);
}
if (monDecimalPoint) {
- val = __MKSTRING(monDecimalPoint);
- __AT_PUT_(info, @symbol(monetaryDecimalPoint), val);
+ val = __MKSTRING(monDecimalPoint);
+ __AT_PUT_(info, @symbol(monetaryDecimalPoint), val);
}
if (monThousandsSep) {
- val = __MKSTRING(monThousandsSep);
- __AT_PUT_(info, @symbol(monetaryThousandsSeparator), val);
+ val = __MKSTRING(monThousandsSep);
+ __AT_PUT_(info, @symbol(monetaryThousandsSeparator), val);
}
if (positiveSign) {
- val = __MKSTRING(positiveSign);
- __AT_PUT_(info, @symbol(positiveSign), val);
+ val = __MKSTRING(positiveSign);
+ __AT_PUT_(info, @symbol(positiveSign), val);
}
if (negativeSign) {
- val = __MKSTRING(negativeSign);
- __AT_PUT_(info, @symbol(negativeSign), val);
+ val = __MKSTRING(negativeSign);
+ __AT_PUT_(info, @symbol(negativeSign), val);
}
if (intFractDigits >= 0) {
- __AT_PUT_(info, @symbol(internationalFractionalDigits), __mkSmallInteger(intFractDigits));
+ __AT_PUT_(info, @symbol(internationalFractionalDigits), __mkSmallInteger(intFractDigits));
}
if (fractDigits >= 0) {
- __AT_PUT_(info, @symbol(fractionalDigits), __mkSmallInteger(fractDigits));
+ __AT_PUT_(info, @symbol(fractionalDigits), __mkSmallInteger(fractDigits));
}
if (csPosPrecedes >= 0) {
- if (csPosPrecedes == 0) {
- val = false;
- } else {
- val = true;
- }
- __AT_PUT_(info, @symbol(positiveSignPrecedesCurrencySymbol), val );
+ if (csPosPrecedes == 0) {
+ val = false;
+ } else {
+ val = true;
+ }
+ __AT_PUT_(info, @symbol(positiveSignPrecedesCurrencySymbol), val );
}
if (csNegPrecedes >= 0) {
- if (csNegPrecedes == 0) {
- val = false;
- } else {
- val = true;
- }
- __AT_PUT_(info, @symbol(negativeSignPrecedesCurrencySymbol), val );
+ if (csNegPrecedes == 0) {
+ val = false;
+ } else {
+ val = true;
+ }
+ __AT_PUT_(info, @symbol(negativeSignPrecedesCurrencySymbol), val );
}
if (csPosSepBySpace >= 0) {
- if (csPosSepBySpace == 0) {
- val = false;
- } else {
- val = true;
- }
- __AT_PUT_(info, @symbol(positiveSignSeparatedBySpaceFromCurrencySymbol), val);
+ if (csPosSepBySpace == 0) {
+ val = false;
+ } else {
+ val = true;
+ }
+ __AT_PUT_(info, @symbol(positiveSignSeparatedBySpaceFromCurrencySymbol), val);
}
if (csNegSepBySpace >= 0) {
- if (csNegSepBySpace == 0) {
- val = false;
- } else {
- val = true;
- }
- __AT_PUT_(info, @symbol(negativeSignSeparatedBySpaceFromCurrencySymbol), val);
+ if (csNegSepBySpace == 0) {
+ val = false;
+ } else {
+ val = true;
+ }
+ __AT_PUT_(info, @symbol(negativeSignSeparatedBySpaceFromCurrencySymbol), val);
}
switch (csPosSignPosition) {
- case 0:
- val = @symbol(parenthesesAround);
- break;
-
- case 1:
- val = @symbol(signPrecedes);
- break;
-
- case 2:
- val = @symbol(signSuceeds);
- break;
-
- case 3:
- val = @symbol(signPrecedesCurrencySymbol);
- break;
-
- case 4:
- val = @symbol(signSuceedsCurrencySymbol);
- break;
-
- default:
- val = nil;
+ case 0:
+ val = @symbol(parenthesesAround);
+ break;
+
+ case 1:
+ val = @symbol(signPrecedes);
+ break;
+
+ case 2:
+ val = @symbol(signSuceeds);
+ break;
+
+ case 3:
+ val = @symbol(signPrecedesCurrencySymbol);
+ break;
+
+ case 4:
+ val = @symbol(signSuceedsCurrencySymbol);
+ break;
+
+ default:
+ val = nil;
}
if (val != nil) {
- __AT_PUT_(info, @symbol(positiveSignPosition), val);
+ __AT_PUT_(info, @symbol(positiveSignPosition), val);
}
switch (csNegSignPosition) {
- case 0:
- val = @symbol(parenthesesAround);
- break;
-
- case 1:
- val = @symbol(signPrecedes);
- break;
-
- case 2:
- val = @symbol(signSuceeds);
- break;
-
- case 3:
- val = @symbol(signPrecedesCurrencySymbol);
- break;
-
- case 4:
- val = @symbol(signSuceedsCurrencySymbol);
- break;
-
- default:
- val = nil;
+ case 0:
+ val = @symbol(parenthesesAround);
+ break;
+
+ case 1:
+ val = @symbol(signPrecedes);
+ break;
+
+ case 2:
+ val = @symbol(signSuceeds);
+ break;
+
+ case 3:
+ val = @symbol(signPrecedesCurrencySymbol);
+ break;
+
+ case 4:
+ val = @symbol(signSuceedsCurrencySymbol);
+ break;
+
+ default:
+ val = nil;
}
if (val != nil) {
- __AT_PUT_(info, @symbol(negativeSignPosition), val);
+ __AT_PUT_(info, @symbol(negativeSignPosition), val);
}
%}.
^ info
@@ -7799,8 +7819,8 @@
getNetworkMACAddresses
"return a dictionary filled with
- key -> name of interface
- value -> the MAC adress (as ByteArray)
+ key -> name of interface
+ value -> the MAC adress (as ByteArray)
for each interface
"
@@ -7829,27 +7849,27 @@
GetAdaptersInfo_entry = (FARPROC) GetAdaptersInfo;
#else
if (GetAdaptersInfo_entry == NULL) {
- GetAdaptersInfo_entry = __get_iphlpapi_functionAddress("GetAdaptersInfo");
+ GetAdaptersInfo_entry = __get_iphlpapi_functionAddress("GetAdaptersInfo");
}
#endif /* NO_NT4_0_COMPATIBILITY */
if (GetAdaptersInfo_entry) {
- dwStatus = (*GetAdaptersInfo_entry)(
- AdapterInfo, // [out] buffer to receive data
- &dwBufLen); // [in] size of receive data buffer
- if (dwStatus == ERROR_SUCCESS) {
- PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
- unsigned char *bP;
- int nA = 0;
-
- bP = __byteArrayVal(rawData);
- do {
- name = __MKSTRING(pAdapterInfo->AdapterName);
- description = __MKSTRING(pAdapterInfo->Description);
- macAddress = __MKBYTEARRAY(pAdapterInfo->Address, 6);
- ipAddress = __MKSTRING(pAdapterInfo->IpAddressList.IpAddress.String);
- ipAddressMask = __MKSTRING(pAdapterInfo->IpAddressList.IpMask.String);
- entry = __ARRAY_NEW_INT(5);
+ dwStatus = (*GetAdaptersInfo_entry)(
+ AdapterInfo, // [out] buffer to receive data
+ &dwBufLen); // [in] size of receive data buffer
+ if (dwStatus == ERROR_SUCCESS) {
+ PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
+ unsigned char *bP;
+ int nA = 0;
+
+ bP = __byteArrayVal(rawData);
+ do {
+ name = __MKSTRING(pAdapterInfo->AdapterName);
+ description = __MKSTRING(pAdapterInfo->Description);
+ macAddress = __MKBYTEARRAY(pAdapterInfo->Address, 6);
+ ipAddress = __MKSTRING(pAdapterInfo->IpAddressList.IpAddress.String);
+ ipAddressMask = __MKSTRING(pAdapterInfo->IpAddressList.IpMask.String);
+ entry = __ARRAY_NEW_INT(5);
/*
* back to ST/X's String definition
*/
@@ -7859,33 +7879,33 @@
# ifdef __DEF_String
# define Context __DEF_Context
# endif
- __ArrayInstPtr(entry)->a_element[0] = name; __STORE(entry, name);
- __ArrayInstPtr(entry)->a_element[1] = description; __STORE(entry, description);
- __ArrayInstPtr(entry)->a_element[2] = macAddress; __STORE(entry, macAddress);
- __ArrayInstPtr(entry)->a_element[3] = ipAddress; __STORE(entry, ipAddress);
- __ArrayInstPtr(entry)->a_element[4] = ipAddressMask; __STORE(entry, ipAddressMask);
-
- __ArrayInstPtr(rawData)->a_element[nA] = entry; __STORE(rawData, entry);
- nA++;
- pAdapterInfo = pAdapterInfo->Next;
- } while(pAdapterInfo);
- nAdapters = __mkSmallInteger(nA);
- }
+ __ArrayInstPtr(entry)->a_element[0] = name; __STORE(entry, name);
+ __ArrayInstPtr(entry)->a_element[1] = description; __STORE(entry, description);
+ __ArrayInstPtr(entry)->a_element[2] = macAddress; __STORE(entry, macAddress);
+ __ArrayInstPtr(entry)->a_element[3] = ipAddress; __STORE(entry, ipAddress);
+ __ArrayInstPtr(entry)->a_element[4] = ipAddressMask; __STORE(entry, ipAddressMask);
+
+ __ArrayInstPtr(rawData)->a_element[nA] = entry; __STORE(rawData, entry);
+ nA++;
+ pAdapterInfo = pAdapterInfo->Next;
+ } while(pAdapterInfo);
+ nAdapters = __mkSmallInteger(nA);
+ }
}
#endif /* NO_GETADAPTERSINFO */
%}.
info := Dictionary new.
nAdapters notNil ifTrue:[
- 1 to:nAdapters do:[:i |
- |entry name description macAddr ipAddr|
-
- entry := rawData at:i.
- name := entry at:1.
- "/ description := entry at:2.
- macAddr := entry at:3.
- "/ ipAddr := entry at:4.
- info at:name put:macAddr.
- ].
+ 1 to:nAdapters do:[:i |
+ |entry name description macAddr ipAddr|
+
+ entry := rawData at:i.
+ name := entry at:1.
+ "/ description := entry at:2.
+ macAddr := entry at:3.
+ "/ ipAddr := entry at:4.
+ info at:name put:macAddr.
+ ].
].
^ info
@@ -7898,14 +7918,14 @@
"answer the number of physical processors in the system"
%{
- SYSTEM_INFO sInfo;
- GetSystemInfo(&sInfo);
-
- return __mkSmallInteger(sInfo.dwNumberOfProcessors);
+ SYSTEM_INFO sInfo;
+ GetSystemInfo(&sInfo);
+
+ return __mkSmallInteger(sInfo.dwNumberOfProcessors);
%}.
"
- self getNumberOfProcessors
+ self getNumberOfProcessors
"
!
@@ -7928,7 +7948,7 @@
"if supported by the OS, return the systemID;
a unique per machine identification.
WARNING:
- not all systems support this; on some, 'unknown' is returned."
+ not all systems support this; on some, 'unknown' is returned."
%{ /* NO_CONTEXT */
#if defined(HAS_GETHOSTID)
@@ -7942,15 +7962,15 @@
#endif
#if defined(HAS_SYSINFO) && defined(SI_HW_SERIAL)
{
- char buffer[128];
-
- buffer[0] = 0;
- if (sysinfo(SI_HW_SERIAL, buffer, sizeof(buffer))) {
- buffer[127] = 0;
- if (strlen(buffer) > 0) {
- RETURN(__MKSTRING(buffer));
- }
- }
+ char buffer[128];
+
+ buffer[0] = 0;
+ if (sysinfo(SI_HW_SERIAL, buffer, sizeof(buffer))) {
+ buffer[127] = 0;
+ if (strlen(buffer) > 0) {
+ RETURN(__MKSTRING(buffer));
+ }
+ }
}
#endif
%}.
@@ -7974,25 +7994,25 @@
This method is mainly provided to augment error reports with some system
information.
(in case of system/version specific OS errors, conditional workarounds and patches
- may be based upon this info).
+ may be based upon this info).
Your application should NOT depend upon this in any way.
The returned info may (or may not) contain:
- #system -> some operating system identification (irix, Linux, nt, win32s ...)
- #version -> OS version (some os version identification)
- #release -> OS release (3.5, 1.2.1 ...)
- #node -> some host identification (hostname)
- #domain -> domain name (hosts domain)
- #machine -> type of machine (i586, mips ...)
+ #system -> some operating system identification (irix, Linux, nt, win32s ...)
+ #version -> OS version (some os version identification)
+ #release -> OS release (3.5, 1.2.1 ...)
+ #node -> some host identification (hostname)
+ #domain -> domain name (hosts domain)
+ #machine -> type of machine (i586, mips ...)
win32:
- #physicalRam -> total amount of physical memory
- #freeRam -> amount of free memory
- #swapSize -> size of swapSpace (page file)
- #freeSwap -> free bytes in swapSpace
- #virtualRam -> total amount of virtual memory
- #freeVirtual -> amount of free virtual memory
- #memoryLoad -> percentage of memory usage (useless)
+ #physicalRam -> total amount of physical memory
+ #freeRam -> amount of free memory
+ #swapSize -> size of swapSpace (page file)
+ #freeSwap -> free bytes in swapSpace
+ #virtualRam -> total amount of virtual memory
+ #freeVirtual -> amount of free virtual memory
+ #memoryLoad -> percentage of memory usage (useless)
"
|sys node rel ver minorVer majorVer mach dom info arch
@@ -8018,20 +8038,20 @@
majorVer = __mkSmallInteger(verMajor);
if (HIWORD(vsn) & 0x8000) {
- sys = @symbol(win95);
+ sys = @symbol(win95);
} else {
- if ((verMajor > 5)
- || ((verMajor == 5) && (verMinor >= 1))) {
- sys = @symbol(xp);
- if (verMajor >= 6) {
- sys = @symbol(vista);
- if (verMinor >= 1) {
- sys = @symbol(win7);
- }
- }
- } else {
- sys = @symbol(nt);
- }
+ if ((verMajor > 5)
+ || ((verMajor == 5) && (verMinor >= 1))) {
+ sys = @symbol(xp);
+ if (verMajor >= 6) {
+ sys = @symbol(vista);
+ if (verMinor >= 1) {
+ sys = @symbol(win7);
+ }
+ }
+ } else {
+ sys = @symbol(nt);
+ }
}
len = snprintf(vsnBuffer, sizeof(vsnBuffer), "%d.%d", verMajor, verMinor);
rel = __MKSTRING_L(vsnBuffer, len);
@@ -8057,160 +8077,160 @@
#endif
{
#ifdef PROCESSOR_ARCHITECTURE_INTEL
- case PROCESSOR_ARCHITECTURE_INTEL:
- arch = @symbol(intel);
- break;
+ case PROCESSOR_ARCHITECTURE_INTEL:
+ arch = @symbol(intel);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_AMD64
- case PROCESSOR_ARCHITECTURE_AMD64:
- arch = @symbol(x64);
- break;
+ case PROCESSOR_ARCHITECTURE_AMD64:
+ arch = @symbol(x64);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_MIPS
- case PROCESSOR_ARCHITECTURE_MIPS:
- arch = @symbol(mips);
- break;
+ case PROCESSOR_ARCHITECTURE_MIPS:
+ arch = @symbol(mips);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_ALPHA
- case PROCESSOR_ARCHITECTURE_ALPHA:
- arch = @symbol(alpha);
- break;
+ case PROCESSOR_ARCHITECTURE_ALPHA:
+ arch = @symbol(alpha);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_ALPHA64
- case PROCESSOR_ARCHITECTURE_ALPHA64:
- arch = @symbol(alpha64);
- break;
+ case PROCESSOR_ARCHITECTURE_ALPHA64:
+ arch = @symbol(alpha64);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_PPC
- case PROCESSOR_ARCHITECTURE_PPC:
- arch = @symbol(ppc);
- break;
+ case PROCESSOR_ARCHITECTURE_PPC:
+ arch = @symbol(ppc);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_ARM
- case PROCESSOR_ARCHITECTURE_ARM:
- arch = @symbol(arm);
- break;
+ case PROCESSOR_ARCHITECTURE_ARM:
+ arch = @symbol(arm);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_SHX
- case PROCESSOR_ARCHITECTURE_SHX:
- arch = @symbol(shx);
- break;
+ case PROCESSOR_ARCHITECTURE_SHX:
+ arch = @symbol(shx);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_IA64
- case PROCESSOR_ARCHITECTURE_IA64:
- arch = @symbol(ia64);
- break;
+ case PROCESSOR_ARCHITECTURE_IA64:
+ arch = @symbol(ia64);
+ break;
#endif
#ifdef PROCESSOR_ARCHITECTURE_MSIL
- case PROCESSOR_ARCHITECTURE_MSIL:
- arch = @symbol(msil);
- break;
-#endif
- default:
- arch = @symbol(unknown);
- break;
+ case PROCESSOR_ARCHITECTURE_MSIL:
+ arch = @symbol(msil);
+ break;
+#endif
+ default:
+ arch = @symbol(unknown);
+ break;
}
switch (sysInfo.dwProcessorType) {
#ifdef PROCESSOR_INTEL_386
- case PROCESSOR_INTEL_386:
- mach = @symbol(i386);
- break;
+ case PROCESSOR_INTEL_386:
+ mach = @symbol(i386);
+ break;
#endif
#ifdef PROCESSOR_INTEL_486
- case PROCESSOR_INTEL_486:
- mach = @symbol(i486);
- break;
+ case PROCESSOR_INTEL_486:
+ mach = @symbol(i486);
+ break;
#endif
#ifdef PROCESSOR_INTEL_PENTIUM
- case PROCESSOR_INTEL_PENTIUM:
- mach = @symbol(i586);
- break;
+ case PROCESSOR_INTEL_PENTIUM:
+ mach = @symbol(i586);
+ break;
#endif
#ifdef PROCESSOR_INTEL_860
- case PROCESSOR_INTEL_860:
- mach = @symbol(i860);
- break;
+ case PROCESSOR_INTEL_860:
+ mach = @symbol(i860);
+ break;
#endif
#ifdef PROCESSOR_INTEL_IA64
- case PROCESSOR_INTEL_IA64:
- mach = @symbol(ia64);
- break;
+ case PROCESSOR_INTEL_IA64:
+ mach = @symbol(ia64);
+ break;
#endif
#ifdef PROCESSOR_MIPS_R2000
- case PROCESSOR_MIPS_R2000:
- mach = @symbol(r2000);
- break;
+ case PROCESSOR_MIPS_R2000:
+ mach = @symbol(r2000);
+ break;
#endif
#ifdef PROCESSOR_MIPS_R3000
- case PROCESSOR_MIPS_R3000:
- mach = @symbol(r3000);
- break;
+ case PROCESSOR_MIPS_R3000:
+ mach = @symbol(r3000);
+ break;
#endif
#ifdef PROCESSOR_MIPS_R4000
- case PROCESSOR_MIPS_R4000:
- mach = @symbol(r4000);
- break;
+ case PROCESSOR_MIPS_R4000:
+ mach = @symbol(r4000);
+ break;
#endif
#ifdef PROCESSOR_ALPHA_21064
- case PROCESSOR_ALPHA_21064:
- mach = @symbol(alpha21064);
- break;
+ case PROCESSOR_ALPHA_21064:
+ mach = @symbol(alpha21064);
+ break;
#endif
#ifdef PROCESSOR_ARM720
- case PROCESSOR_ARM720:
- mach = @symbol(arm720);
- break;
+ case PROCESSOR_ARM720:
+ mach = @symbol(arm720);
+ break;
#endif
#ifdef PROCESSOR_ARM820
- case PROCESSOR_ARM820:
- mach = @symbol(arm820);
- break;
+ case PROCESSOR_ARM820:
+ mach = @symbol(arm820);
+ break;
#endif
#ifdef PROCESSOR_ARM920
- case PROCESSOR_ARM920:
- mach = @symbol(arm920);
- break;
+ case PROCESSOR_ARM920:
+ mach = @symbol(arm920);
+ break;
#endif
#ifdef PROCESSOR_ARM_7TDMI
- case PROCESSOR_ARM_7TDMI:
- mach = @symbol(arm70001);
- break;
+ case PROCESSOR_ARM_7TDMI:
+ mach = @symbol(arm70001);
+ break;
#endif
#ifdef PROCESSOR_PPC_601
- case PROCESSOR_PPC_601:
- mach = @symbol(ppc601);
- break;
+ case PROCESSOR_PPC_601:
+ mach = @symbol(ppc601);
+ break;
#endif
#ifdef PROCESSOR_PPC_603
- case PROCESSOR_PPC_603:
- mach = @symbol(ppc603);
- break;
+ case PROCESSOR_PPC_603:
+ mach = @symbol(ppc603);
+ break;
#endif
#ifdef PROCESSOR_PPC_604
- case PROCESSOR_PPC_604:
- mach = @symbol(ppc604);
- break;
+ case PROCESSOR_PPC_604:
+ mach = @symbol(ppc604);
+ break;
#endif
#ifdef PROCESSOR_PPC_620
- case PROCESSOR_PPC_620:
- mach = @symbol(ppc620);
- break;
-#endif
-
- default:
- sprintf(vsnBuffer, "%d", sysInfo.dwProcessorType);
- mach = __MKSTRING(vsnBuffer);
- break;
+ case PROCESSOR_PPC_620:
+ mach = @symbol(ppc620);
+ break;
+#endif
+
+ default:
+ sprintf(vsnBuffer, "%d", sysInfo.dwProcessorType);
+ mach = __MKSTRING(vsnBuffer);
+ break;
}
numberOfCPUs = __MKUINT(sysInfo.dwNumberOfProcessors);
%}.
node isNil ifTrue:[
- node := self getHostName.
+ node := self getHostName.
].
dom isNil ifTrue:[
- dom := self getDomainName.
+ dom := self getDomainName.
].
info := IdentityDictionary new.
@@ -8281,7 +8301,7 @@
char buffer[MAXPATHLEN];
if (GetWindowsDirectory(buffer, MAXPATHLEN)) {
- RETURN (__MKSTRING(buffer));
+ RETURN (__MKSTRING(buffer));
}
%}.
^ nil
@@ -8302,7 +8322,7 @@
char buffer[MAXPATHLEN];
if (GetSystemDirectory(buffer, MAXPATHLEN)) {
- RETURN (__MKSTRING(buffer));
+ RETURN (__MKSTRING(buffer));
}
%}.
^ nil
@@ -8340,7 +8360,7 @@
%{ /* NOCONTEXT */
if (__isWinNT)
- RETURN(true);
+ RETURN(true);
%}.
^ false.
!
@@ -8363,48 +8383,48 @@
int err;
if (__isExternalAddressLike(processHandleOrPid) ) {
- DWORD exitCode;
-
- processHandle = _HANDLEVal(processHandleOrPid);
-
- if (processHandle == 0) {
- error = @symbol(invalidParameter);
- } else {
- /* check if the handle still refers to a running process */
- if (GetExitCodeProcess(processHandle, &exitCode) != 0) {
- if (exitCode == STILL_ACTIVE) {
- RETURN(true);
- } else {
- RETURN(false);
- }
- } else {
- goto checkError;
- }
+ DWORD exitCode;
+
+ processHandle = _HANDLEVal(processHandleOrPid);
+
+ if (processHandle == 0) {
+ error = @symbol(invalidParameter);
+ } else {
+ /* check if the handle still refers to a running process */
+ if (GetExitCodeProcess(processHandle, &exitCode) != 0) {
+ if (exitCode == STILL_ACTIVE) {
+ RETURN(true);
+ } else {
+ RETURN(false);
+ }
+ } else {
+ goto checkError;
+ }
}
} else if( __isSmallInteger(processHandleOrPid) ) {
- // assume, that synchronize needs less privilege...
- processHandle = OpenProcess(SYNCHRONIZE, FALSE, __smallIntegerVal(processHandleOrPid));
- if (processHandle) {
- CloseHandle(processHandle);
- RETURN(true);
- }
+ // assume, that synchronize needs less privilege...
+ processHandle = OpenProcess(SYNCHRONIZE, FALSE, __smallIntegerVal(processHandleOrPid));
+ if (processHandle) {
+ CloseHandle(processHandle);
+ RETURN(true);
+ }
checkError:
- err = GetLastError();
- // we do not have access to the process (so pid does exist ;-))
- if (err == ERROR_ACCESS_DENIED) {
- RETURN(true);
- }
- // pid does not exist
- if (err == ERROR_INVALID_PARAMETER) {
- RETURN(false);
- }
-
- // any other error - raise signal
- __threadErrno = __WIN32_ERR(err);
- error = __mkSmallInteger(__threadErrno);
+ err = GetLastError();
+ // we do not have access to the process (so pid does exist ;-))
+ if (err == ERROR_ACCESS_DENIED) {
+ RETURN(true);
+ }
+ // pid does not exist
+ if (err == ERROR_INVALID_PARAMETER) {
+ RETURN(false);
+ }
+
+ // any other error - raise signal
+ __threadErrno = __WIN32_ERR(err);
+ error = __mkSmallInteger(__threadErrno);
} else {
- error = @symbol(invalidParameter);
+ error = @symbol(invalidParameter);
}
%}.
@@ -8447,11 +8467,11 @@
maxFileNameLength
"return the max number of characters in a filename.
CAVEAT:
- Actually, the following is somewhat wrong - some systems
- support different sizes, depending on the volume.
- We return a somewhat conservative number here.
- Another entry, to query for volume specific max
- will be added in the future."
+ Actually, the following is somewhat wrong - some systems
+ support different sizes, depending on the volume.
+ We return a somewhat conservative number here.
+ Another entry, to query for volume specific max
+ will be added in the future."
%{ /* NOCONTEXT */
@@ -8484,12 +8504,12 @@
osVersion := OperatingSystem osVersion.
^ 'Windows ',
- (#('NT' '2000' 'XP' 'VISTA' '7')
- at: (#('4.1' '5.0' '5.1' '6.0' '6.1') indexOf:osVersion)
- ifAbsent:osVersion).
-
- "
- self osName
+ (#('NT' '2000' 'XP' 'VISTA' '7')
+ at: (#('4.1' '5.0' '5.1' '6.0' '6.1') indexOf:osVersion)
+ ifAbsent:osVersion).
+
+ "
+ self osName
"
"Modified (comment): / 30-07-2011 / 17:00:50 / cg"
@@ -8527,11 +8547,11 @@
randomBytesInto:bufferOrInteger
"If bufferOrInteger is a String or a ByteArray,
- fill a given buffer with random bytes from the RtlGenRandom function
- and nswer the buffer.
+ fill a given buffer with random bytes from the RtlGenRandom function
+ and nswer the buffer.
If bufferOrInteger is a SmallInteger,
- return this many bytes (max 4) as a SmallInteger.
+ return this many bytes (max 4) as a SmallInteger.
Return nil on error (and raise PrimitiveFailure).
@@ -8549,38 +8569,38 @@
unsigned int __localBuffer = 0;
if (__isSmallInteger(bufferOrInteger)) {
- __useLocalBuffer = 1;
- __buffer = (unsigned char *)&__localBuffer;
- __bufferSize = __smallIntegerVal(bufferOrInteger);
- if (__bufferSize > sizeof(INT))
- __bufferSize = sizeof(INT);
+ __useLocalBuffer = 1;
+ __buffer = (unsigned char *)&__localBuffer;
+ __bufferSize = __smallIntegerVal(bufferOrInteger);
+ if (__bufferSize > sizeof(INT))
+ __bufferSize = sizeof(INT);
} else if (__isString(bufferOrInteger)) {
- __buffer = __stringVal(bufferOrInteger);
- __bufferSize = __stringSize(bufferOrInteger);
+ __buffer = __stringVal(bufferOrInteger);
+ __bufferSize = __stringSize(bufferOrInteger);
} else if (__isByteArray(bufferOrInteger)) {
- __buffer = __byteArrayVal(bufferOrInteger);
- __bufferSize = __byteArraySize(bufferOrInteger);
+ __buffer = __byteArrayVal(bufferOrInteger);
+ __bufferSize = __byteArraySize(bufferOrInteger);
} else {
- goto error;
+ goto error;
}
if (P_RtlGenRandom == 0) {
- HINSTANCE hAdvapi32 = LoadLibrary("advapi32.dll");
- // console_printf("hAdvapi32: %x\n", hAdvapi32);
- if (hAdvapi32) {
- P_RtlGenRandom = (BOOL (__stdcall *)(PVOID , ULONG))
- GetProcAddress(hAdvapi32, "SystemFunction036");
- // console_printf("P_RtlGenRandom: %x\n", P_RtlGenRandom);
- if (P_RtlGenRandom == 0) {
- goto error;
- }
- }
+ HINSTANCE hAdvapi32 = LoadLibrary("advapi32.dll");
+ // console_printf("hAdvapi32: %x\n", hAdvapi32);
+ if (hAdvapi32) {
+ P_RtlGenRandom = (BOOL (__stdcall *)(PVOID , ULONG))
+ GetProcAddress(hAdvapi32, "SystemFunction036");
+ // console_printf("P_RtlGenRandom: %x\n", P_RtlGenRandom);
+ if (P_RtlGenRandom == 0) {
+ goto error;
+ }
+ }
}
if ((*P_RtlGenRandom)(__buffer, __bufferSize)) {
- if (__useLocalBuffer) {
- RETURN(__mkSmallInteger(__localBuffer & _MAX_INT));
- }
- RETURN (bufferOrInteger);
+ if (__useLocalBuffer) {
+ RETURN(__mkSmallInteger(__localBuffer & _MAX_INT));
+ }
+ RETURN (bufferOrInteger);
}
error: ;
%}.
@@ -8602,9 +8622,9 @@
if (__isStringLike(aStringOrSymbol)
&& __isStringLike(newValueString) ) {
- if (SetEnvironmentVariable(__stringVal(aStringOrSymbol), __stringVal(newValueString)) != 0) {
- RETURN(self);
- }
+ if (SetEnvironmentVariable(__stringVal(aStringOrSymbol), __stringVal(newValueString)) != 0) {
+ RETURN(self);
+ }
}
%}.
self primitiveFailed
@@ -8768,13 +8788,13 @@
pPath := super defaultPackagePath.
pkgDirPath := self stxPackageDirPath.
pkgDirPath notNil ifTrue:[
- "/ and also add the packageDirPath from the registry ...
- dirs := pkgDirPath asCollectionOfSubstringsSeparatedBy:$;.
- dirs do:[:aDir |
- (pPath includes:aDir) ifFalse:[
- pPath add:aDir.
- ]
- ]
+ "/ and also add the packageDirPath from the registry ...
+ dirs := pkgDirPath asCollectionOfSubstringsSeparatedBy:$;.
+ dirs do:[:aDir |
+ (pPath includes:aDir) ifFalse:[
+ pPath add:aDir.
+ ]
+ ]
] ifFalse:[
"/ #(
"/ '\smalltalk'
@@ -8797,10 +8817,10 @@
"/ under windows, the commandName includes the path - good.
p := Smalltalk commandName.
p notNil ifTrue:[
- p := p asFilename directory constructString:'packages'.
- (pPath includes:p) ifFalse:[
- pPath add:p.
- ]
+ p := p asFilename directory constructString:'packages'.
+ (pPath includes:p) ifFalse:[
+ pPath add:p.
+ ]
].
pPath := pPath select:[:p | p asFilename exists].
^ pPath
@@ -8820,10 +8840,10 @@
libDirPath := self stxLibDirPath.
libDirPath notNil ifTrue:[
- "/ and also add the libDirPath from the registry ...
- (sysPath includes:libDirPath) ifFalse:[
- sysPath add:libDirPath
- ].
+ "/ and also add the libDirPath from the registry ...
+ (sysPath includes:libDirPath) ifFalse:[
+ sysPath add:libDirPath
+ ].
].
"/ #(
"/ '\programs\eXept\smalltalk'
@@ -8859,7 +8879,7 @@
k := RegistryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString.
k notNil ifTrue:[
- p := k valueNamed:'BinDir'.
+ p := k valueNamed:'BinDir'.
].
^ p
@@ -8872,17 +8892,17 @@
"ask the registry for the lib directory"
(Array
- with:('HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString)
- with:('HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'))
+ with:('HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString)
+ with:('HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'))
do:[:eachKeyToTry |
- |k p|
-
- k := RegistryEntry key:eachKeyToTry.
- k notNil ifTrue:[
- p := k valueNamed:'LibDir'.
- k closeKey.
- ^ p
- ].
+ |k p|
+
+ k := RegistryEntry key:eachKeyToTry.
+ k notNil ifTrue:[
+ p := k valueNamed:'LibDir'.
+ k closeKey.
+ ^ p
+ ].
].
^ nil
@@ -8898,7 +8918,7 @@
k := RegistryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X\' , Smalltalk versionString.
k notNil ifTrue:[
- p := k valueNamed:'PackageDirPath'.
+ p := k valueNamed:'PackageDirPath'.
].
^ p
@@ -8976,22 +8996,22 @@
#define DM_OUT_DEFAULT DM_UPDATE
"
nBytesNeeded := self
- primDocumentProperties:nil
- hPrinter:hPrinter
- pDeviceName: deviceName
- pDevModeOutput:nil
- pDevModeInput:nil
- fMode:0.
+ primDocumentProperties:nil
+ hPrinter:hPrinter
+ pDeviceName: deviceName
+ pDevModeOutput:nil
+ pDevModeInput:nil
+ fMode:0.
devModeOutput := DevModeStructure new:(nBytesNeeded * 2 "never trust MS !!").
rslt := self
- primDocumentProperties:nil
- hPrinter:hPrinter
- pDeviceName: deviceName
- pDevModeOutput:devModeOutput
- pDevModeInput:pDevModeInputOrNil
- fMode:4+2.
+ primDocumentProperties:nil
+ hPrinter:hPrinter
+ pDeviceName: deviceName
+ pDevModeOutput:devModeOutput
+ pDevModeInput:pDevModeInputOrNil
+ fMode:4+2.
^ devModeOutput
@@ -9056,23 +9076,23 @@
#define DM_OUT_DEFAULT DM_UPDATE
"
nBytesNeeded := self
- primDocumentProperties:nil
- hPrinter:hPrinter
- pDeviceName: deviceName
- pDevModeOutput:nil
- pDevModeInput:nil
- fMode:0.
+ primDocumentProperties:nil
+ hPrinter:hPrinter
+ pDeviceName: deviceName
+ pDevModeOutput:nil
+ pDevModeInput:nil
+ fMode:0.
nBytesNeeded < 0 ifTrue:[^nil].
devModeOutput := DevModeStructure new:(nBytesNeeded * 2 "never trust MS !!").
rslt := self
- primDocumentProperties:nil
- hPrinter:hPrinter
- pDeviceName: deviceName
- pDevModeOutput:devModeOutput
- pDevModeInput:nil
- fMode:2.
+ primDocumentProperties:nil
+ hPrinter:hPrinter
+ pDeviceName: deviceName
+ pDevModeOutput:devModeOutput
+ pDevModeInput:nil
+ fMode:2.
^ devModeOutput
@@ -9095,19 +9115,19 @@
sizeBytesArray := ByteArray new:4.
bytesNeeded := self
- primGetPrinter:hPrinter
- level:2
- informationBuffer: nil
- bufferSize: 0
- bufferNeededSize:sizeBytesArray.
+ primGetPrinter:hPrinter
+ level:2
+ informationBuffer: nil
+ bufferSize: 0
+ bufferNeededSize:sizeBytesArray.
bytesNeeded := sizeBytesArray longAt:1.
informationBuffer := PrinterInfo2Structure new: bytesNeeded.
rslt := self
- primGetPrinter:hPrinter
- level:2
- informationBuffer:informationBuffer
- bufferSize: bytesNeeded
- bufferNeededSize:sizeBytesArray.
+ primGetPrinter:hPrinter
+ level:2
+ informationBuffer:informationBuffer
+ bufferSize: bytesNeeded
+ bufferNeededSize:sizeBytesArray.
self closePrinter: printerName.
^informationBuffer
@@ -9127,47 +9147,47 @@
printerNames := self getPrintersNames.
collectedInfo := OrderedCollection new.
printerNames do:[:eachName |
- |fn vol attributes nm deviceInfo infoFields driverName|
-
- attributes := Dictionary new.
-
- fn := eachName asFilename.
- vol := fn volume.
- vol notEmptyOrNil ifTrue:[
- (vol startsWith:'\\') ifTrue:[
- "/ a remote printer
- attributes at:#isRemotePrinter put:true.
- attributes at:#remotePrinterName put:(fn baseName).
- attributes at:#remotePrinterHost put:(fn directoryName copyFrom:3).
- ] ifFalse:[
- "/ some other printer
- ].
- ] ifFalse:[
- "/ some other printer
- ].
-
- deviceInfo := self getProfileString:'PrinterPorts' key:eachName default:''.
- "gives us smething like 'winspool,Ne00:,15,45',
- which is: driverName, deviceName, ? , ?"
-
- infoFields := deviceInfo asCollectionOfSubstringsSeparatedBy:$,.
- driverName := infoFields at:1.
- 2 to: infoFields size by:3 do:[:i |
- |medium longName|
-
- medium := infoFields at:i.
- longName := eachName ,',' , driverName , ',' , medium.
- attributes at:#driverName put:driverName.
- attributes at:#longName put:longName.
- attributes at:#medium put:medium.
-
- collectedInfo add:
- (AbstractOperatingSystem::PrinterInfo new
- printerName:eachName
- attributes:attributes;
- setDocumentProperties;
- yourself)
- ].
+ |fn vol attributes nm deviceInfo infoFields driverName|
+
+ attributes := Dictionary new.
+
+ fn := eachName asFilename.
+ vol := fn volume.
+ vol notEmptyOrNil ifTrue:[
+ (vol startsWith:'\\') ifTrue:[
+ "/ a remote printer
+ attributes at:#isRemotePrinter put:true.
+ attributes at:#remotePrinterName put:(fn baseName).
+ attributes at:#remotePrinterHost put:(fn directoryName copyFrom:3).
+ ] ifFalse:[
+ "/ some other printer
+ ].
+ ] ifFalse:[
+ "/ some other printer
+ ].
+
+ deviceInfo := self getProfileString:'PrinterPorts' key:eachName default:''.
+ "gives us smething like 'winspool,Ne00:,15,45',
+ which is: driverName, deviceName, ? , ?"
+
+ infoFields := deviceInfo asCollectionOfSubstringsSeparatedBy:$,.
+ driverName := infoFields at:1.
+ 2 to: infoFields size by:3 do:[:i |
+ |medium longName|
+
+ medium := infoFields at:i.
+ longName := eachName ,',' , driverName , ',' , medium.
+ attributes at:#driverName put:driverName.
+ attributes at:#longName put:longName.
+ attributes at:#medium put:medium.
+
+ collectedInfo add:
+ (AbstractOperatingSystem::PrinterInfo new
+ printerName:eachName
+ attributes:attributes;
+ setDocumentProperties;
+ yourself)
+ ].
].
^ collectedInfo
@@ -9185,7 +9205,7 @@
|printerNames|
printerNames := (self getProfileString:'PrinterPorts' key:nil default:'')
- asCollectionOfSubstringsSeparatedBy:(Character value:0).
+ asCollectionOfSubstringsSeparatedBy:(Character value:0).
printerNames := printerNames reject:[:nm | nm isEmpty].
^printerNames
@@ -9274,12 +9294,12 @@
hPrinter := self openPrinter:'\\http://exept.exept.de:631\lj4' .
rslt := self
- primDocumentProperties:nil
- hPrinter:hPrinter
- pDeviceName: '\\http://exept.exept.de:631\lj4'
- pDevModeOutput:nil
- pDevModeInput:nil
- fMode:0.
+ primDocumentProperties:nil
+ hPrinter:hPrinter
+ pDeviceName: '\\http://exept.exept.de:631\lj4'
+ pDevModeOutput:nil
+ pDevModeInput:nil
+ fMode:0.
self halt.
"
@@ -9296,12 +9316,12 @@
hPrinter := self openPrinter:'\\http://exept.exept.de:631\lj4' .
rslt := self
- primDocumentProperties:nil
- hPrinter:hPrinter
- pDeviceName: '\\http://exept.exept.de:631\lj4'
- pDevModeOutput:nil
- pDevModeInput:nil
- fMode:0.
+ primDocumentProperties:nil
+ hPrinter:hPrinter
+ pDeviceName: '\\http://exept.exept.de:631\lj4'
+ pDevModeOutput:nil
+ pDevModeInput:nil
+ fMode:0.
self halt.
"
@@ -9318,12 +9338,12 @@
hPrinter := self openPrinter:'\\http://exept.exept.de:631\lj4' .
rslt := self
- primDocumentProperties:nil
- hPrinter:hPrinter
- pDeviceName: '\\http://exept.exept.de:631\lj4'
- pDevModeOutput:nil
- pDevModeInput:nil
- fMode:0.
+ primDocumentProperties:nil
+ hPrinter:hPrinter
+ pDeviceName: '\\http://exept.exept.de:631\lj4'
+ pDevModeOutput:nil
+ pDevModeInput:nil
+ fMode:0.
self halt.
"
@@ -9352,20 +9372,20 @@
sizeBytesArray := ByteArray new:4.
ok := self
- primGetPrinter:hPrinter
- level:2
- informationBuffer: nil
- bufferSize: 0
- bufferNeededSize:sizeBytesArray.
+ primGetPrinter:hPrinter
+ level:2
+ informationBuffer: nil
+ bufferSize: 0
+ bufferNeededSize:sizeBytesArray.
bytesNeeded := sizeBytesArray longAt:1.
informationBuffer := PrinterInfo2Structure new: bytesNeeded.
rslt := self
- primGetPrinter:hPrinter
- level:2
- informationBuffer:informationBuffer
- bufferSize: bytesNeeded
- bufferNeededSize:sizeBytesArray.
+ primGetPrinter:hPrinter
+ level:2
+ informationBuffer:informationBuffer
+ bufferSize: bytesNeeded
+ bufferNeededSize:sizeBytesArray.
self assert: rslt.
informationBuffer inspect.
self closePrinter: printerName.
@@ -9495,9 +9515,9 @@
'NON' 'no_NO'
'NOR' 'no_NO'
) pairWiseDo:[:key :mappedValue|
- key = windowsLanguageString ifTrue:[
- ^ mappedValue
- ]
+ key = windowsLanguageString ifTrue:[
+ ^ mappedValue
+ ]
].
"no mapping"
@@ -9517,24 +9537,24 @@
!Win32OperatingSystem class methodsFor:'regional settings'!
country
- "Answer the current system value for country."
+ "Answer the current system value for country."
^self queryNationalProfileString: 'iCountry' default: 0
"
- self country
+ self country
"
"Modified: / 22-12-2006 / 16:45:32 / User"
!
countryName
- "Answer the current system value for country name."
+ "Answer the current system value for country name."
^self queryNationalProfileString: 'sCountry' default: 'Deutschland'
"
- self countryName
+ self countryName
"
"Modified: / 22-12-2006 / 16:45:32 / User"
@@ -9543,8 +9563,8 @@
dateFormat
"Answer the current system value for date format.
Answer DfMDY = Month-Day-Year
- DfDMY = Day-Month-Year
- DfYMD = Year-Month-Day."
+ DfDMY = Day-Month-Year
+ DfYMD = Year-Month-Day."
|separatorString code|
@@ -9566,49 +9586,49 @@
!
dateFormatCode
- "Answer the current system value for date format.
- Answer DfMDY = Month-Day-Year = 0
- DfDMY = Day-Month-Year = 1
- DfYMD = Year-Month-Day = 2"
+ "Answer the current system value for date format.
+ Answer DfMDY = Month-Day-Year = 0
+ DfDMY = Day-Month-Year = 1
+ DfYMD = Year-Month-Day = 2"
^self queryNationalProfileInt: 'iDate' default: 0
"
- self dateFormatCode
+ self dateFormatCode
"
"Modified: / 22-12-2006 / 16:45:53 / User"
!
dateSeparator
- "Answer the current system value for date separator."
+ "Answer the current system value for date separator."
^self queryNationalProfileString: 'sDate' default: '/'
"
- self dateSeparator
+ self dateSeparator
"
"Modified: / 22-12-2006 / 16:45:32 / User"
!
decimalSeparator
- "Answer the current system value for decimal separator."
+ "Answer the current system value for decimal separator."
^self queryNationalProfileString: 'sDecimal' default: '.'
"
- self decimalSeparator
+ self decimalSeparator
"
"Created: / 22-12-2006 / 16:45:11 / User"
!
isDateFormatDMY
- "Answer the current system value for date format.
- Answer DfMDY = Month-Day-Year
- DfDMY = Day-Month-Year
- DfYMD = Year-Month-Day."
+ "Answer the current system value for date format.
+ Answer DfMDY = Month-Day-Year
+ DfDMY = Day-Month-Year
+ DfYMD = Year-Month-Day."
^self dateFormatCode = 1
@@ -9616,10 +9636,10 @@
!
isDateFormatMDY
- "Answer the current system value for date format.
- Answer DfMDY = Month-Day-Year
- DfDMY = Day-Month-Year
- DfYMD = Year-Month-Day."
+ "Answer the current system value for date format.
+ Answer DfMDY = Month-Day-Year
+ DfDMY = Day-Month-Year
+ DfYMD = Year-Month-Day."
^self dateFormatCode = 0
@@ -9627,10 +9647,10 @@
!
isDateFormatYMD
- "Answer the current system value for date format.
- Answer DfMDY = Month-Day-Year
- DfDMY = Day-Month-Year
- DfYMD = Year-Month-Day."
+ "Answer the current system value for date format.
+ Answer DfMDY = Month-Day-Year
+ DfDMY = Day-Month-Year
+ DfYMD = Year-Month-Day."
^self dateFormatCode = 2
@@ -9638,7 +9658,7 @@
!
isTimeFormat12Hour
- "Answer whether the current system time format is 12-hour."
+ "Answer whether the current system time format is 12-hour."
^self timeFormat = 0
@@ -9665,11 +9685,11 @@
| answer |
answer := self primGetProfileInt: 'Intl'
- keyName: aKeyName
- default: -1 asUnsigned32.
+ keyName: aKeyName
+ default: -1 asUnsigned32.
^answer = -1 asUnsigned32
- ifTrue: [ defaultValue ]
- ifFalse: [ answer ]
+ ifTrue: [ defaultValue ]
+ ifFalse: [ answer ]
"
self queryNationalProfileInt: 'iDate' default: 0
@@ -9679,43 +9699,43 @@
!
queryNationalProfileString: aKeyName default: defaultValue
- "Answer the string value of key aKeyName in
- the [Intl] application section of the WIN.INI profile file.
- Answer defaultValue if aKeyName cannot be found."
+ "Answer the string value of key aKeyName in
+ the [Intl] application section of the WIN.INI profile file.
+ Answer defaultValue if aKeyName cannot be found."
| extString result |
extString := String new: 80.
result := self primGetProfileString: 'Intl'
- keyName: aKeyName
- default: ''
- returnedString: extString
- size: extString size.
+ keyName: aKeyName
+ default: ''
+ returnedString: extString
+ size: extString size.
^result > 0
- ifTrue: [extString copyFrom: 1 to: result]
- ifFalse: [ defaultValue ]
+ ifTrue: [extString copyFrom: 1 to: result]
+ ifFalse: [ defaultValue ]
"Created: / 22-12-2006 / 16:13:01 / User"
!
thousandsSeparator
- "Answer the current system value
- for the thousands separator."
+ "Answer the current system value
+ for the thousands separator."
^self queryNationalProfileString: 'sThousand' default: ','
"
- self thousandsSeparator
+ self thousandsSeparator
"
"Created: / 22-12-2006 / 16:46:50 / User"
!
timeFormat
- "Answer the current system value for time format."
+ "Answer the current system value for time format."
^self queryNationalProfileInt: 'iTime' default: 0
"
- self timeFormat
+ self timeFormat
"
"Created: / 22-12-2006 / 16:48:27 / User"
@@ -9744,22 +9764,22 @@
This looks for the files extension, and is typically used to present help-files,
html documents, pdf documents etc.
operationSymbol is one of:
- open
- edit
- explore
- print
+ open
+ edit
+ explore
+ print
"
|result filename|
filename := aFilenameOrString asFilename.
result := self
- shellExecute:nil
- lpOperation:operationSymbol
- lpFile:filename pathName
- lpParameters:nil
- lpDirectory:filename directory pathName
- nShowCmd:#SW_SHOWNORMAL.
+ shellExecute:nil
+ lpOperation:operationSymbol
+ lpFile:filename pathName
+ lpParameters:nil
+ lpDirectory:filename directory pathName
+ nShowCmd:#SW_SHOWNORMAL.
^ self.
"
@@ -9796,27 +9816,27 @@
I added this in order to be able to shutdown w95 cleanly"
confirmationMessageOrNil notNil ifTrue:[
- (Dialog confirm:confirmationMessageOrNil) ifFalse:[
- ^ false
- ].
+ (Dialog confirm:confirmationMessageOrNil) ifFalse:[
+ ^ false
+ ].
].
%{
int flag;
if (how == @symbol(shutdown)) {
- flag = EWX_SHUTDOWN;
+ flag = EWX_SHUTDOWN;
} else if (how == @symbol(reboot)) {
- flag = EWX_REBOOT;
+ flag = EWX_REBOOT;
} else if (how == @symbol(logoff)) {
- flag = EWX_LOGOFF;
+ flag = EWX_LOGOFF;
} else if (how == @symbol(forceShutdown)) {
- flag = EWX_SHUTDOWN | EWX_FORCE;
+ flag = EWX_SHUTDOWN | EWX_FORCE;
} else if (how == @symbol(forceReboot)) {
- flag = EWX_REBOOT | EWX_FORCE;
+ flag = EWX_REBOOT | EWX_FORCE;
} else if (how == @symbol(forceLogoff)) {
- flag = EWX_LOGOFF | EWX_FORCE;
+ flag = EWX_LOGOFF | EWX_FORCE;
} else {
- RETURN (false);
+ RETURN (false);
}
RETURN ((ExitWindowsEx(flag, 0) == TRUE) ? true : false);
%}
@@ -9833,22 +9853,22 @@
&& __bothSmallInteger(d, h)
&& __bothSmallInteger(min, s)
&& __isSmallInteger(millis)) {
- SYSTEMTIME sysTime;
- FILETIME fileTime;
-
- sysTime.wHour = __intVal(h);
- sysTime.wMinute = __intVal(min);
- sysTime.wSecond = __intVal(s);
- sysTime.wMilliseconds = __intVal(millis);
-
- sysTime.wYear = __intVal(y);
- sysTime.wMonth = __intVal(m);
- sysTime.wDay = __intVal(d);
-
- if (SystemTimeToFileTime(&sysTime, &fileTime) == 0)
- goto error;
-
- RETURN(FileTimeToOsTime(&fileTime));
+ SYSTEMTIME sysTime;
+ FILETIME fileTime;
+
+ sysTime.wHour = __intVal(h);
+ sysTime.wMinute = __intVal(min);
+ sysTime.wSecond = __intVal(s);
+ sysTime.wMilliseconds = __intVal(millis);
+
+ sysTime.wYear = __intVal(y);
+ sysTime.wMonth = __intVal(m);
+ sysTime.wDay = __intVal(d);
+
+ if (SystemTimeToFileTime(&sysTime, &fileTime) == 0)
+ goto error;
+
+ RETURN(FileTimeToOsTime(&fileTime));
}
error:;
%}.
@@ -9874,30 +9894,30 @@
&& __bothSmallInteger(d, h)
&& __bothSmallInteger(min, s)
&& __isSmallInteger(millis)) {
- SYSTEMTIME sysTime;
- FILETIME fileTime;
-
- sysTime.wHour = __intVal(h);
- sysTime.wMinute = __intVal(min);
- sysTime.wSecond = __intVal(s);
- sysTime.wMilliseconds = __intVal(millis);
-
- sysTime.wYear = __intVal(y);
- sysTime.wMonth = __intVal(m);
- sysTime.wDay = __intVal(d);
+ SYSTEMTIME sysTime;
+ FILETIME fileTime;
+
+ sysTime.wHour = __intVal(h);
+ sysTime.wMinute = __intVal(min);
+ sysTime.wSecond = __intVal(s);
+ sysTime.wMilliseconds = __intVal(millis);
+
+ sysTime.wYear = __intVal(y);
+ sysTime.wMonth = __intVal(m);
+ sysTime.wDay = __intVal(d);
#if 0
- /* Sorry, but this function is not supported in Win2000
- - we use LocalFileTimeToFileTime */
- if (TzSpecificLocalTimeToSystemTime(0, &sysTime, &sysTime) == 0)
- goto error;
-#endif
- if (SystemTimeToFileTime(&sysTime, &fileTime) == 0)
- goto error;
- if (LocalFileTimeToFileTime(&fileTime, &fileTime) == 0)
- goto error;
-
- RETURN(FileTimeToOsTime(&fileTime));
+ /* Sorry, but this function is not supported in Win2000
+ - we use LocalFileTimeToFileTime */
+ if (TzSpecificLocalTimeToSystemTime(0, &sysTime, &sysTime) == 0)
+ goto error;
+#endif
+ if (SystemTimeToFileTime(&sysTime, &fileTime) == 0)
+ goto error;
+ if (LocalFileTimeToFileTime(&fileTime, &fileTime) == 0)
+ goto error;
+
+ RETURN(FileTimeToOsTime(&fileTime));
}
error:;
%}.
@@ -9927,10 +9947,10 @@
LONGLONG micros;
if (! frequencyKnown) {
- // get the high resolution counter's accuracy
- QueryPerformanceFrequency(&ticksPerSecond);
- frequencyKnown = 1;
- divisor = ticksPerSecond / (LONGLONG)1000000;
+ // get the high resolution counter's accuracy
+ QueryPerformanceFrequency(&ticksPerSecond);
+ frequencyKnown = 1;
+ divisor = ticksPerSecond / (LONGLONG)1000000;
}
// what time is it?
@@ -9966,8 +9986,8 @@
Use the millisecondTimeXXX:-methods to compare and add time deltas - these know about the wrap.
BAD DESIGN:
- This should be changed to return some instance of RelativeTime,
- and these computations moved there.
+ This should be changed to return some instance of RelativeTime,
+ and these computations moved there.
Don't use this method in application code since it is an internal (private)
interface. For compatibility with ST-80, use Time millisecondClockValue.
@@ -10025,57 +10045,57 @@
retVal = GetTimeZoneInformation(&tzInfo);
switch (retVal) {
- case TIME_ZONE_ID_INVALID:
- error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
- break;
-
- case TIME_ZONE_ID_UNKNOWN:
- case TIME_ZONE_ID_STANDARD:
- case TIME_ZONE_ID_DAYLIGHT:
- default:
- bias = __mkSmallInteger(tzInfo.Bias);
- memmove(nm, tzInfo.StandardName, 32*sizeof(WCHAR));
- nm[32] = 0;
- standardName = __MKU16STRING(nm);
- standardDate_y = __mkSmallInteger(tzInfo.StandardDate.wYear);
- standardDate_m = __mkSmallInteger(tzInfo.StandardDate.wMonth);
- standardDate_d = __mkSmallInteger(tzInfo.StandardDate.wDay);
- standardDate_wd = __mkSmallInteger(tzInfo.StandardDate.wDayOfWeek);
- standardDate_h = __mkSmallInteger(tzInfo.StandardDate.wHour);
- standardDate_min = __mkSmallInteger(tzInfo.StandardDate.wMinute);
- standardDate_s = __mkSmallInteger(tzInfo.StandardDate.wSecond);
- standardBias = __mkSmallInteger(tzInfo.StandardBias);
- memmove(nm, tzInfo.DaylightName, 32*sizeof(WCHAR));
- nm[32] = 0;
- daylightName = __MKU16STRING(nm);
- daylightDate_y = __mkSmallInteger(tzInfo.DaylightDate.wYear);
- daylightDate_m = __mkSmallInteger(tzInfo.DaylightDate.wMonth);
- daylightDate_d = __mkSmallInteger(tzInfo.DaylightDate.wDay);
- daylightDate_wd = __mkSmallInteger(tzInfo.DaylightDate.wDayOfWeek);
- daylightDate_h = __mkSmallInteger(tzInfo.DaylightDate.wHour);
- daylightDate_min = __mkSmallInteger(tzInfo.DaylightDate.wMinute);
- daylightDate_s = __mkSmallInteger(tzInfo.DaylightDate.wSecond);
- daylightBias = __mkSmallInteger(tzInfo.DaylightBias);
- break;
+ case TIME_ZONE_ID_INVALID:
+ error = __mkSmallInteger(__WIN32_ERR(GetLastError()));
+ break;
+
+ case TIME_ZONE_ID_UNKNOWN:
+ case TIME_ZONE_ID_STANDARD:
+ case TIME_ZONE_ID_DAYLIGHT:
+ default:
+ bias = __mkSmallInteger(tzInfo.Bias);
+ memmove(nm, tzInfo.StandardName, 32*sizeof(WCHAR));
+ nm[32] = 0;
+ standardName = __MKU16STRING(nm);
+ standardDate_y = __mkSmallInteger(tzInfo.StandardDate.wYear);
+ standardDate_m = __mkSmallInteger(tzInfo.StandardDate.wMonth);
+ standardDate_d = __mkSmallInteger(tzInfo.StandardDate.wDay);
+ standardDate_wd = __mkSmallInteger(tzInfo.StandardDate.wDayOfWeek);
+ standardDate_h = __mkSmallInteger(tzInfo.StandardDate.wHour);
+ standardDate_min = __mkSmallInteger(tzInfo.StandardDate.wMinute);
+ standardDate_s = __mkSmallInteger(tzInfo.StandardDate.wSecond);
+ standardBias = __mkSmallInteger(tzInfo.StandardBias);
+ memmove(nm, tzInfo.DaylightName, 32*sizeof(WCHAR));
+ nm[32] = 0;
+ daylightName = __MKU16STRING(nm);
+ daylightDate_y = __mkSmallInteger(tzInfo.DaylightDate.wYear);
+ daylightDate_m = __mkSmallInteger(tzInfo.DaylightDate.wMonth);
+ daylightDate_d = __mkSmallInteger(tzInfo.DaylightDate.wDay);
+ daylightDate_wd = __mkSmallInteger(tzInfo.DaylightDate.wDayOfWeek);
+ daylightDate_h = __mkSmallInteger(tzInfo.DaylightDate.wHour);
+ daylightDate_min = __mkSmallInteger(tzInfo.DaylightDate.wMinute);
+ daylightDate_s = __mkSmallInteger(tzInfo.DaylightDate.wSecond);
+ daylightBias = __mkSmallInteger(tzInfo.DaylightBias);
+ break;
}
%}.
error notNil ifTrue:[
- self primitiveFailed.
+ self primitiveFailed.
].
info := AbstractOperatingSystem::TimeZoneInfo new.
info
- bias:bias
- name:standardName standardBias:standardBias
- daylightName:daylightName daylightBias:daylightBias.
+ bias:bias
+ name:standardName standardBias:standardBias
+ daylightName:daylightName daylightBias:daylightBias.
standardDate_m ~~ 0 ifTrue:[
- info standardYear:standardDate_y standardMonth:standardDate_m standardDay:standardDate_d
- standardWeekDay:standardDate_wd standardHour:standardDate_h standardMinute:standardDate_min.
+ info standardYear:standardDate_y standardMonth:standardDate_m standardDay:standardDate_d
+ standardWeekDay:standardDate_wd standardHour:standardDate_h standardMinute:standardDate_min.
].
daylightDate_m ~~ 0 ifTrue:[
- info daylightYear:daylightDate_y daylightMonth:daylightDate_m daylightDay:daylightDate_d
- daylightWeekDay:daylightDate_wd daylightHour:daylightDate_h daylightMinute:daylightDate_min.
+ info daylightYear:daylightDate_y daylightMonth:daylightDate_m daylightDay:daylightDate_d
+ daylightWeekDay:daylightDate_wd daylightHour:daylightDate_h daylightMinute:daylightDate_min.
].
^ info
@@ -10099,8 +10119,8 @@
%{ /* NOCONTEXT */
if (__isSmallInteger(numberOfSeconds)) {
- sleep(__intVal(numberOfSeconds));
- RETURN ( self );
+ sleep(__intVal(numberOfSeconds));
+ RETURN ( self );
}
%}.
"
@@ -10130,43 +10150,43 @@
/* try cache */
{
- OBJ lastSeconds, lastTimeInfo;
-
- lastSeconds = @global(LastTimeInfoSeconds);
- if (lastSeconds
- && (__longIntVal(lastSeconds) == t)
- && (@global(LastTimeInfoMilliseconds) == osMilliseconds)
- && (@global(LastTimeInfoIsLocal) == isLocalTime)
- ) {
- lastTimeInfo = @global(LastTimeInfo);
- if (lastTimeInfo != nil) {
- RETURN (lastTimeInfo);
- }
- }
+ OBJ lastSeconds, lastTimeInfo;
+
+ lastSeconds = @global(LastTimeInfoSeconds);
+ if (lastSeconds
+ && (__longIntVal(lastSeconds) == t)
+ && (@global(LastTimeInfoMilliseconds) == osMilliseconds)
+ && (@global(LastTimeInfoIsLocal) == isLocalTime)
+ ) {
+ lastTimeInfo = @global(LastTimeInfo);
+ if (lastTimeInfo != nil) {
+ RETURN (lastTimeInfo);
+ }
+ }
}
TimetToFileTime((time_t)t, &fileTime);
if (isLocalTime == true) {
- TIME_ZONE_INFORMATION tzInfo;
- int tzState;
- LONGLONG longTime;
-
- FileTimeToLocalFileTime(&fileTime, &localFileTime);
- FileTimeToSystemTime(&localFileTime, &sysTime);
-
- longTime = ((LONGLONG)fileTime.dwHighDateTime << 32) + fileTime.dwLowDateTime;
- longTime -= ((LONGLONG)localFileTime.dwHighDateTime << 32) + localFileTime.dwLowDateTime;
- utcOffset = __mkSmallInteger((INT)(longTime / 10000000));
-
- if ((tzState = GetTimeZoneInformation(&tzInfo)) < 0) {
- reason = @symbol(getTimeZoneFailed);
- goto error;
- }
- dstOffset = __mkSmallInteger((tzInfo.Bias + tzInfo.DaylightBias) * 60);
+ TIME_ZONE_INFORMATION tzInfo;
+ int tzState;
+ LONGLONG longTime;
+
+ FileTimeToLocalFileTime(&fileTime, &localFileTime);
+ FileTimeToSystemTime(&localFileTime, &sysTime);
+
+ longTime = ((LONGLONG)fileTime.dwHighDateTime << 32) + fileTime.dwLowDateTime;
+ longTime -= ((LONGLONG)localFileTime.dwHighDateTime << 32) + localFileTime.dwLowDateTime;
+ utcOffset = __mkSmallInteger((INT)(longTime / 10000000));
+
+ if ((tzState = GetTimeZoneInformation(&tzInfo)) < 0) {
+ reason = @symbol(getTimeZoneFailed);
+ goto error;
+ }
+ dstOffset = __mkSmallInteger((tzInfo.Bias + tzInfo.DaylightBias) * 60);
} else {
- FileTimeToSystemTime(&fileTime, &sysTime);
- utcOffset = __mkSmallInteger(0);
+ FileTimeToSystemTime(&fileTime, &sysTime);
+ utcOffset = __mkSmallInteger(0);
}
hours = __mkSmallInteger(sysTime.wHour);
@@ -10181,22 +10201,22 @@
error:;
%}.
year isNil ifTrue:[
- ^ self primitiveFailed
+ ^ self primitiveFailed
].
info := self timeInfoClass new.
info
- year:year
- month:month
- day:day
- hours:hours
- minutes:minutes
- seconds:seconds
- milliseconds:osMilliseconds
- utcOffset:utcOffset
- dst:(utcOffset = dstOffset)
- dayInYear:yDay
- dayInWeek:weekDay.
+ year:year
+ month:month
+ day:day
+ hours:hours
+ minutes:minutes
+ seconds:seconds
+ milliseconds:osMilliseconds
+ utcOffset:utcOffset
+ dst:(utcOffset = dstOffset)
+ dayInYear:yDay
+ dayInWeek:weekDay.
LastTimeInfo := info.
LastTimeInfoSeconds := osSeconds.
@@ -10248,13 +10268,13 @@
appDataDirFromEnv := self getEnvironment:'APPDATA'.
appDataDirFromEnv notNil ifTrue:[
- ^ appDataDirFromEnv , '\' , appName
+ ^ appDataDirFromEnv , '\' , appName
].
appDataDirFromRegistry :=
- (self registryEntry key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
- valueNamed:'AppData'.
+ (self registryEntry key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
+ valueNamed:'AppData'.
appDataDirFromRegistry notNil ifTrue:[
- ^ appDataDirFromRegistry , '\' , appName
+ ^ appDataDirFromRegistry , '\' , appName
].
^ super getApplicationDataDirectoryFor:appName
@@ -10273,15 +10293,15 @@
|dir path|
path := (self registryEntry
- key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
- valueNamed:'Desktop'.
+ key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
+ valueNamed:'Desktop'.
path isNil ifTrue:[
- "Fallback"
- dir := self getHomeDirectory.
- dir isNil ifTrue:[ ^ nil ].
-
- path := dir , '\Desktop'.
+ "Fallback"
+ dir := self getHomeDirectory.
+ dir isNil ifTrue:[ ^ nil ].
+
+ path := dir , '\Desktop'.
].
(self isValidPath:path) ifFalse:[ ^ nil ].
@@ -10302,11 +10322,11 @@
|dir|
dir := (self registryEntry
- key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
- valueNamed:'Personal'.
+ key:'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
+ valueNamed:'Personal'.
dir isNil ifTrue:[
- dir := self getHomeDirectory.
+ dir := self getHomeDirectory.
].
^ dir.
@@ -10355,11 +10375,11 @@
info := self userInfoOf:userID.
(info notNil
and:[info includesKey:#gecos]) ifTrue:[
- gecos := info at:#gecos.
- (gecos includes:$,) ifTrue:[
- ^ gecos copyTo:(gecos indexOf:$,) - 1
- ].
- ^ gecos
+ gecos := info at:#gecos.
+ (gecos includes:$,) ifTrue:[
+ ^ gecos copyTo:(gecos indexOf:$,) - 1
+ ].
+ ^ gecos
].
^ self getUserNameFromID:userID
@@ -10407,7 +10427,7 @@
dir := self getEnvironment:'USERPROFILE'.
dir isNil ifTrue:[
- dir := '.'.
+ dir := '.'.
].
^ dir.
@@ -10432,33 +10452,33 @@
char *name = (char *)0;
if (firstCall) {
- DWORD nameSize = sizeof(cachedName);
-
- if (GetUserName(cachedName, &nameSize) == TRUE) {
- name = cachedName;
- firstCall = 0;
- }
+ DWORD nameSize = sizeof(cachedName);
+
+ if (GetUserName(cachedName, &nameSize) == TRUE) {
+ name = cachedName;
+ firstCall = 0;
+ }
} else {
- name = cachedName;
+ name = cachedName;
}
/*
* try a few common environment variables ...
*/
if (! name || (name[0] == 0) ) {
- name = getenv("LOGIN");
- if (! name || (name[0] == 0) ) {
- name = getenv("LOGNAME");
- if (! name || (name[0] == 0) ) {
- name = getenv("USER");
- }
- }
+ name = getenv("LOGIN");
+ if (! name || (name[0] == 0) ) {
+ name = getenv("LOGNAME");
+ if (! name || (name[0] == 0) ) {
+ name = getenv("USER");
+ }
+ }
}
/*
* nope - I really font know who you are.
*/
if (! name || (name[0] == 0) ) {
- name = "you";
+ name = "you";
}
RETURN ( __MKSTRING(name) );
@@ -10487,7 +10507,7 @@
This is the login name, not the fullName."
aNumber == self getUserID ifTrue:[
- ^ self getLoginName
+ ^ self getLoginName
].
^ '? (' , aNumber printString , ')'
@@ -10512,19 +10532,19 @@
info := IdentityDictionary new.
name isNil ifTrue:[
- aNameOrID == self getUserID ifTrue:[
- name := self getLoginName
- ].
+ aNameOrID == self getUserID ifTrue:[
+ name := self getLoginName
+ ].
].
name notNil ifTrue:[
- info at:#name put:name.
+ info at:#name put:name.
] ifFalse:[
- info at:#name put:'unknown'
+ info at:#name put:'unknown'
].
dir isNil ifTrue:[
- aNameOrID == self getUserID ifTrue:[
- dir := self getHomeDirectory
- ]
+ aNameOrID == self getUserID ifTrue:[
+ dir := self getHomeDirectory
+ ]
].
dir notNil ifTrue:[info at:#dir put:dir].
"/ uid notNil ifTrue:[info at:#uid put:uid].
@@ -10565,79 +10585,79 @@
DWORD endStatus;
if (__isExternalAddressLike(pidToWait) ) {
- HANDLE __pidToWait = _HANDLEVal(pidToWait);
- int t;
+ HANDLE __pidToWait = _HANDLEVal(pidToWait);
+ int t;
#ifdef PROCESSDEBUG_CHILDPROCESSWAIT
- console_printf("childProcessWait %x b %d\n",__pidToWait,blocking==true);
-#endif
- t = (blocking==true) ? INFINITE : 0;
+ console_printf("childProcessWait %x b %d\n",__pidToWait,blocking==true);
+#endif
+ t = (blocking==true) ? INFINITE : 0;
#ifdef DO_WRAP_CALLS
- if (t == 0) {
- /* no need for WRAP-call; does not block */
- endStatus = WaitForSingleObject(__pidToWait, t);
- if (endStatus < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
- } else {
- do {
- __threadErrno = 0;
- endStatus = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, __pidToWait, t);
- } while ((endStatus < 0) && (__threadErrno == EINTR));
- }
-#else
- endStatus = WaitForSingleObject(__pidToWait, t);
- if (endStatus < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
- }
-#endif
- if ( endStatus == WAIT_TIMEOUT ) {
- if (blocking==true)
- status = @symbol(timeout);
- else {
- status = @symbol(continue);
+ if (t == 0) {
+ /* no need for WRAP-call; does not block */
+ endStatus = WaitForSingleObject(__pidToWait, t);
+ if (endStatus < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+ } else {
+ do {
+ __threadErrno = 0;
+ endStatus = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, __pidToWait, t);
+ } while ((endStatus < 0) && (__threadErrno == EINTR));
+ }
+#else
+ endStatus = WaitForSingleObject(__pidToWait, t);
+ if (endStatus < 0) {
+ __threadErrno = __WIN32_ERR(GetLastError());
+ }
+#endif
+ if ( endStatus == WAIT_TIMEOUT ) {
+ if (blocking==true)
+ status = @symbol(timeout);
+ else {
+ status = @symbol(continue);
#ifdef PROCESSDEBUG_CHILDPROCESSWAIT
- console_printf("ret nil\n");
-#endif
- RETURN(nil);
- }
- } else {
- status = @symbol(exit);
+ console_printf("ret nil\n");
+#endif
+ RETURN(nil);
+ }
+ } else {
+ status = @symbol(exit);
#ifdef PROCESSDEBUG_CHILDPROCESSWAIT
- console_printf("exit\n");
-#endif
- if (endStatus == WAIT_OBJECT_0) {
- DWORD exitCode;
-
- if (GetExitCodeProcess(__pidToWait, &exitCode)) {
+ console_printf("exit\n");
+#endif
+ if (endStatus == WAIT_OBJECT_0) {
+ DWORD exitCode;
+
+ if (GetExitCodeProcess(__pidToWait, &exitCode)) {
#ifdef PROCESSDEBUG_CHILDPROCESSWAIT
- console_printf("exitCode: %d\n", exitCode);
-#endif
- if (exitCode == STILL_ACTIVE) {
- RETURN(nil);
- }
+ console_printf("exitCode: %d\n", exitCode);
+#endif
+ if (exitCode == STILL_ACTIVE) {
+ RETURN(nil);
+ }
#ifdef PROCESSDEBUG_CHILDPROCESSWAIT
- console_printf("exit %d\n", exitCode);
-#endif
- code = __mkSmallInteger(exitCode);
- } else {
+ console_printf("exit %d\n", exitCode);
+#endif
+ code = __mkSmallInteger(exitCode);
+ } else {
#ifdef PROCESSDEBUG_CHILDPROCESSWAIT
- console_printf("GetExitCodeProcess failed\n");
-#endif
- code = __mkSmallInteger(GetLastError());
- }
- } else {
- code = __mkSmallInteger(-1);
- }
- }
- core = false;
- pid = pidToWait;
+ console_printf("GetExitCodeProcess failed\n");
+#endif
+ code = __mkSmallInteger(GetLastError());
+ }
+ } else {
+ code = __mkSmallInteger(-1);
+ }
+ }
+ core = false;
+ pid = pidToWait;
}
%}.
(status isNil or:[pid isNil]) ifTrue:[
- ^ self primitiveFailed
+ ^ self primitiveFailed
].
"/ Transcript show:'pid: '; show:pid; show:' status: '; show:status;
@@ -10683,92 +10703,92 @@
int exceptCount;
if (__isNonNilObject(readFdArray)) {
- if (! __isArrayLike(readFdArray)) goto fail;
- readCount = __arraySize(readFdArray);
+ if (! __isArrayLike(readFdArray)) goto fail;
+ readCount = __arraySize(readFdArray);
} else {
- readCount = 0;
+ readCount = 0;
}
if (__isNonNilObject(writeFdArray)) {
- if (! __isArrayLike(writeFdArray)) goto fail;
- writeCount = __arraySize(writeFdArray);
+ if (! __isArrayLike(writeFdArray)) goto fail;
+ writeCount = __arraySize(writeFdArray);
} else {
- writeCount = 0;
+ writeCount = 0;
}
if (__isNonNilObject(exceptFdArray)) {
- if (! __isArrayLike(exceptFdArray)) goto fail;
- exceptCount = __arraySize(exceptFdArray);
+ if (! __isArrayLike(exceptFdArray)) goto fail;
+ exceptCount = __arraySize(exceptFdArray);
} else {
- exceptCount = 0;
+ exceptCount = 0;
}
for (i = 0; (i < readCount) && (numHandles < MAXHANDLE);i++) {
- fd = __ArrayInstPtr(readFdArray)->a_element[i];
-
- if (fd != nil) {
- if (__isExternalAddressLike(fd)) {
- hArray [numHandles] = _HANDLEVal(fd);
- retArray[numHandles] = i;
- ++numHandles;
- } else {
- int canRead = _canReadWithoutBlocking (__intVal(fd) );
-
- if (canRead > 0 ) {
- RETURN (fd);
- } else {
- if (canRead < 0 ) {
- @global(LastErrorNumber) = __mkSmallInteger(EBADF);
- RETURN ( @symbol(error) );
- }
- }
- }
- }
+ fd = __ArrayInstPtr(readFdArray)->a_element[i];
+
+ if (fd != nil) {
+ if (__isExternalAddressLike(fd)) {
+ hArray [numHandles] = _HANDLEVal(fd);
+ retArray[numHandles] = i;
+ ++numHandles;
+ } else {
+ int canRead = _canReadWithoutBlocking (__intVal(fd) );
+
+ if (canRead > 0 ) {
+ RETURN (fd);
+ } else {
+ if (canRead < 0 ) {
+ @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+ RETURN ( @symbol(error) );
+ }
+ }
+ }
+ }
}
for (i = 0; (i < writeCount) && (numHandles < MAXHANDLE);i++) {
- fd = __ArrayInstPtr(writeFdArray)->a_element[i];
-
- if (fd != nil) {
- if (__isExternalAddressLike(fd)) {
- hArray [numHandles] = _HANDLEVal(fd);
- retArray[numHandles] = i + 10000;
- ++numHandles;
- } else {
- int canWrite = _canWriteWithoutBlocking (__intVal(fd) );
-
- if (canWrite > 0 ) {
- RETURN (fd);
- } else {
- if (canWrite < 0 ) {
- @global(LastErrorNumber) = __mkSmallInteger(EBADF);
- RETURN ( @symbol(error) );
- }
- }
- }
- }
+ fd = __ArrayInstPtr(writeFdArray)->a_element[i];
+
+ if (fd != nil) {
+ if (__isExternalAddressLike(fd)) {
+ hArray [numHandles] = _HANDLEVal(fd);
+ retArray[numHandles] = i + 10000;
+ ++numHandles;
+ } else {
+ int canWrite = _canWriteWithoutBlocking (__intVal(fd) );
+
+ if (canWrite > 0 ) {
+ RETURN (fd);
+ } else {
+ if (canWrite < 0 ) {
+ @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+ RETURN ( @symbol(error) );
+ }
+ }
+ }
+ }
}
for (i = 0; (i < exceptCount) && (numHandles < MAXHANDLE);i++) {
- fd = __ArrayInstPtr(exceptFdArray)->a_element[i];
-
- if (fd != nil) {
- if (__isExternalAddressLike(fd)) {
- hArray [numHandles] = _HANDLEVal(fd);
- retArray[numHandles] = i + 20000;
- ++numHandles;
- }
- }
+ fd = __ArrayInstPtr(exceptFdArray)->a_element[i];
+
+ if (fd != nil) {
+ if (__isExternalAddressLike(fd)) {
+ hArray [numHandles] = _HANDLEVal(fd);
+ retArray[numHandles] = i + 20000;
+ ++numHandles;
+ }
+ }
}
if (__isSmallInteger(millis)) {
- t = __intVal(millis);
-
- if (t <= 0 && numHandles == 0) {
- RETURN (nil);
- }
+ t = __intVal(millis);
+
+ if (t <= 0 && numHandles == 0) {
+ RETURN (nil);
+ }
} else {
- t = INFINITE;
+ t = INFINITE;
}
#ifdef SELECT3DEBUGWIN32
@@ -10778,112 +10798,112 @@
res = __vmWait (numHandles, hArray, MAXHANDLE, t);
if (numHandles) {
- if (res == WAIT_FAILED) {
+ if (res == WAIT_FAILED) {
#ifdef SELECT2DEBUGWIN32
- console_printf("- error %d; ret nil\n",GetLastError());
-#endif
- if (__threadErrno == EINTR) {
- __threadErrno = 0;
- @global(LastErrorNumber) = nil;
- } else {
- __threadErrno = EBADF;
- if (@global(InfoPrinting) == true) {
- console_fprintf(stderr, "Win32OS [info]: select errno = %d\n", __threadErrno);
- }
- @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
- RETURN ( @symbol(error) );
- }
- RETURN ( nil );
- }
-
- if (res == WAIT_TIMEOUT) {
+ console_printf("- error %d; ret nil\n",GetLastError());
+#endif
+ if (__threadErrno == EINTR) {
+ __threadErrno = 0;
+ @global(LastErrorNumber) = nil;
+ } else {
+ __threadErrno = EBADF;
+ if (@global(InfoPrinting) == true) {
+ console_fprintf(stderr, "Win32OS [info]: select errno = %d\n", __threadErrno);
+ }
+ @global(LastErrorNumber) = __mkSmallInteger(__threadErrno);
+ RETURN ( @symbol(error) );
+ }
+ RETURN ( nil );
+ }
+
+ if (res == WAIT_TIMEOUT) {
#ifdef SELECT3DEBUGWIN32
- console_printf("- timeOut; ret nil\n" );
-#endif
- goto polling;
- }
-
- if (res == numHandles) {
- if (1 /* @global(InfoPrinting) == true */) {
- console_fprintf(stderr, "Win32OS [info]: plugIn event has been handled\n");
- }
- __threadErrno = 0;
- @global(LastErrorNumber) = nil;
- RETURN ( nil );
- }
- if ((res < 0) || (res > numHandles)) {
+ console_printf("- timeOut; ret nil\n" );
+#endif
+ goto polling;
+ }
+
+ if (res == numHandles) {
+ if (1 /* @global(InfoPrinting) == true */) {
+ console_fprintf(stderr, "Win32OS [info]: plugIn event has been handled\n");
+ }
+ __threadErrno = 0;
+ @global(LastErrorNumber) = nil;
+ RETURN ( nil );
+ }
+ if ((res < 0) || (res > numHandles)) {
#ifdef SELECTDEBUGWIN32
- console_printf("- res=%d error1 %d\n", res, GetLastError());
-#endif
- __threadErrno = 0;
- @global(LastErrorNumber) = nil;
- RETURN ( nil );
- }
-
- ret = res;
-
- if (ret < numHandles) {
- int fd = retArray[ret];
-
- @global(LastErrorNumber) = nil;
+ console_printf("- res=%d error1 %d\n", res, GetLastError());
+#endif
+ __threadErrno = 0;
+ @global(LastErrorNumber) = nil;
+ RETURN ( nil );
+ }
+
+ ret = res;
+
+ if (ret < numHandles) {
+ int fd = retArray[ret];
+
+ @global(LastErrorNumber) = nil;
#ifdef SELECTDEBUGWIN32
- if (ret) console_printf("wait Handles %d %d ret\n", ret, fd);
-#endif
- if (fd < 10000) {
- RETURN ( __ArrayInstPtr(readFdArray)->a_element[fd] );
- }
- if (fd < 20000) {
- RETURN ( __ArrayInstPtr(writeFdArray)->a_element[fd-10000] );
- }
- RETURN ( __ArrayInstPtr(exceptFdArray)->a_element[fd-20000] );
- }
- console_fprintf(stderr, "Win32OS [info]: wait Handles ret = %d error2 %d\n", ret, GetLastError());
- goto fail;
+ if (ret) console_printf("wait Handles %d %d ret\n", ret, fd);
+#endif
+ if (fd < 10000) {
+ RETURN ( __ArrayInstPtr(readFdArray)->a_element[fd] );
+ }
+ if (fd < 20000) {
+ RETURN ( __ArrayInstPtr(writeFdArray)->a_element[fd-10000] );
+ }
+ RETURN ( __ArrayInstPtr(exceptFdArray)->a_element[fd-20000] );
+ }
+ console_fprintf(stderr, "Win32OS [info]: wait Handles ret = %d error2 %d\n", ret, GetLastError());
+ goto fail;
} else {
polling:
- for (i=0; i < readCount;i++) {
- fd = __ArrayInstPtr(readFdArray)->a_element[i];
-
- if (fd != nil) {
- if (! __isExternalAddressLike(fd)) {
- int canRead = _canReadWithoutBlocking (__intVal(fd));
-
- if (canRead > 0 ) {
- RETURN (fd);
- } else {
- if (canRead < 0 ) {
- @global(LastErrorNumber) = __mkSmallInteger(EBADF);
- RETURN ( @symbol(error) );
- }
- }
- }
- }
- }
-
- for (i=0; i < writeCount;i++) {
- fd = __ArrayInstPtr(writeFdArray)->a_element[i];
-
- if (fd != nil) {
- if (! __isExternalAddressLike(fd)) {
- int canWrite = _canWriteWithoutBlocking (__intVal(fd));
-
- if (canWrite > 0 ) {
- RETURN (fd);
- } else {
- if (canWrite < 0 ) {
- @global(LastErrorNumber) = __mkSmallInteger(EBADF);
- RETURN ( @symbol(error) );
- }
- }
- }
- }
- }
-
- @global(LastErrorNumber) = nil;
- RETURN ( nil );
+ for (i=0; i < readCount;i++) {
+ fd = __ArrayInstPtr(readFdArray)->a_element[i];
+
+ if (fd != nil) {
+ if (! __isExternalAddressLike(fd)) {
+ int canRead = _canReadWithoutBlocking (__intVal(fd));
+
+ if (canRead > 0 ) {
+ RETURN (fd);
+ } else {
+ if (canRead < 0 ) {
+ @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+ RETURN ( @symbol(error) );
+ }
+ }
+ }
+ }
+ }
+
+ for (i=0; i < writeCount;i++) {
+ fd = __ArrayInstPtr(writeFdArray)->a_element[i];
+
+ if (fd != nil) {
+ if (! __isExternalAddressLike(fd)) {
+ int canWrite = _canWriteWithoutBlocking (__intVal(fd));
+
+ if (canWrite > 0 ) {
+ RETURN (fd);
+ } else {
+ if (canWrite < 0 ) {
+ @global(LastErrorNumber) = __mkSmallInteger(EBADF);
+ RETURN ( @symbol(error) );
+ }
+ }
+ }
+ }
+ }
+
+ @global(LastErrorNumber) = nil;
+ RETURN ( nil );
}
fail: ;
@@ -10924,51 +10944,51 @@
INT i, count;
if (! __isArrayLike(fdOrHandleArray)) {
- goto fail;
+ goto fail;
}
count = __arraySize(fdOrHandleArray);
for (i=0; i<count; i++) {
- OBJ fdOrHandle = __ArrayInstPtr(fdOrHandleArray)->a_element[i];
- HANDLE h;
-
- if (__isExternalAddressLike(fdOrHandle)) {
- h = _HANDLEVal(fdOrHandle);
- } else {
- if (__isSmallInteger(fdOrHandle)) {
- h = (HANDLE) _get_osfhandle (__intVal(fdOrHandle));
- } else {
- goto fail;
- }
- }
- hArray[i] = h;
+ OBJ fdOrHandle = __ArrayInstPtr(fdOrHandleArray)->a_element[i];
+ HANDLE h;
+
+ if (__isExternalAddressLike(fdOrHandle)) {
+ h = _HANDLEVal(fdOrHandle);
+ } else {
+ if (__isSmallInteger(fdOrHandle)) {
+ h = (HANDLE) _get_osfhandle (__intVal(fdOrHandle));
+ } else {
+ goto fail;
+ }
+ }
+ hArray[i] = h;
}
if (__isSmallInteger(millis)) {
- t = __intVal(millis);
+ t = __intVal(millis);
} else {
- t = INFINITE;
+ t = INFINITE;
}
#ifdef DO_WRAP_CALLS
do {
- __threadErrno = 0;
- res = STX_API_CALL4( "WaitForMultipleObjects", WaitForMultipleObjects, count, hArray, FALSE, t);
+ __threadErrno = 0;
+ res = STX_API_CALL4( "WaitForMultipleObjects", WaitForMultipleObjects, count, hArray, FALSE, t);
} while ((res < 0) && (__threadErrno == EINTR));
#else
res = WaitForMultipleObjects(count, hArray, FALSE, t);
if (res < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
+ __threadErrno = __WIN32_ERR(GetLastError());
}
#endif
if (res == WAIT_FAILED) {
- RETURN (nil);
+ RETURN (nil);
}
if (res == WAIT_TIMEOUT) {
- RETURN (nil);
+ RETURN (nil);
}
if ((res >= WAIT_OBJECT_0) && (res < (WAIT_OBJECT_0+count))) {
- RETURN (__ArrayInstPtr(fdOrHandleArray)->a_element[res-WAIT_OBJECT_0]);
+ RETURN (__ArrayInstPtr(fdOrHandleArray)->a_element[res-WAIT_OBJECT_0]);
}
RETURN (nil);
@@ -10993,37 +11013,37 @@
HANDLE h = NULL;
if (__isExternalAddressLike(fdOrHandle)) {
- h = _HANDLEVal(fdOrHandle);
+ h = _HANDLEVal(fdOrHandle);
} else {
- if (__isSmallInteger(fdOrHandle)) {
- h = (HANDLE) _get_osfhandle (__intVal(fdOrHandle));
- } else {
- goto fail;
- }
+ if (__isSmallInteger(fdOrHandle)) {
+ h = (HANDLE) _get_osfhandle (__intVal(fdOrHandle));
+ } else {
+ goto fail;
+ }
}
if (__isSmallInteger(millis)) {
- t = __intVal(millis);
+ t = __intVal(millis);
} else {
- t = INFINITE;
+ t = INFINITE;
}
#ifdef DO_WRAP_CALLS
do {
- __threadErrno = 0;
- res = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, h, t);
+ __threadErrno = 0;
+ res = STX_API_CALL2( "WaitForSingleObject", WaitForSingleObject, h, t);
} while ((res < 0) && (__threadErrno == EINTR));
#else
res = WaitForSingleObject(h, t);
if (res < 0) {
- __threadErrno = __WIN32_ERR(GetLastError());
+ __threadErrno = __WIN32_ERR(GetLastError());
}
#endif
if (res == WAIT_FAILED) {
- RETURN (nil);
+ RETURN (nil);
}
if (res == WAIT_TIMEOUT) {
- RETURN (nil);
+ RETURN (nil);
}
RETURN (fdOrHandle);
@@ -11218,11 +11238,11 @@
type:t mode:m uid:u gid:g size:s id:i accessed:aT modified:mT created:cT sourcePath:lP fullName:fullName alternativeName:name2
^ self basicNew
- type:t mode:m uid:u gid:g size:s
- id:i accessed:aT modified:mT created:cT
- sourcePath:lP
- fullName:fullName
- alternativeName:name2
+ type:t mode:m uid:u gid:g size:s
+ id:i accessed:aT modified:mT created:cT
+ sourcePath:lP
+ fullName:fullName
+ alternativeName:name2
! !
!Win32OperatingSystem::FileStatusInfo methodsFor:'accessing'!
@@ -11243,18 +11263,18 @@
path := self alternativePathName.
path notNil ifTrue:[
- idx := path lastIndexOf:$\ startingAt:path size-1.
- idx ~~ 0 ifTrue:[
- path := path copyFrom:(idx+1).
- ].
+ idx := path lastIndexOf:$\ startingAt:path size-1.
+ idx ~~ 0 ifTrue:[
+ path := path copyFrom:(idx+1).
+ ].
].
^ path
"
- 'C:\' asFilename info alternativeName
- 'C:\Dokumente und Einstellungen\' asFilename info alternativeName
- 'C:\Dokumente und Einstellungen' asFilename info alternativeName
+ 'C:\' asFilename info alternativeName
+ 'C:\Dokumente und Einstellungen\' asFilename info alternativeName
+ 'C:\Dokumente und Einstellungen' asFilename info alternativeName
"
!
@@ -11264,14 +11284,14 @@
"/ access lazily...
alternativePathName isNil ifTrue:[
- alternativePathName := (OperatingSystem getShortPathName:sourcePath) asSingleByteString.
+ alternativePathName := (OperatingSystem getShortPathName:sourcePath) asSingleByteString.
].
^ alternativePathName
"
- 'C:\' asFilename info alternativePathName
- 'C:\Dokumente und Einstellungen' asFilename info alternativePathName
+ 'C:\' asFilename info alternativePathName
+ 'C:\Dokumente und Einstellungen' asFilename info alternativePathName
"
!
@@ -11295,18 +11315,18 @@
path := self fullPathName.
path notNil ifTrue:[
- idx := path lastIndexOf:$\ startingAt:path size-1.
- idx ~~ 0 ifTrue:[
- path := path copyFrom:(idx+1).
- ].
+ idx := path lastIndexOf:$\ startingAt:path size-1.
+ idx ~~ 0 ifTrue:[
+ path := path copyFrom:(idx+1).
+ ].
].
^ path
"
- '\' asFilename info fullName
- 'C:\' asFilename info fullName
- 'C:\Dokumente und Einstellungen' asFilename info fullName
+ '\' asFilename info fullName
+ 'C:\' asFilename info fullName
+ 'C:\Dokumente und Einstellungen' asFilename info fullName
"
!
@@ -11316,14 +11336,14 @@
"/ access lazily...
fullPathName isNil ifTrue:[
- fullPathName := (OperatingSystem getLongPathName:sourcePath) asSingleByteStringIfPossible.
+ fullPathName := (OperatingSystem getLongPathName:sourcePath) asSingleByteStringIfPossible.
].
^ fullPathName
"
- 'C:\' asFilename info fullPathName
- 'C:\Dokumente und Einstellungen' asFilename info fullPathName
+ 'C:\' asFilename info fullPathName
+ 'C:\Dokumente und Einstellungen' asFilename info fullPathName
"
!
@@ -11344,9 +11364,9 @@
"/ access lazily...
linkTargetPath isNil ifTrue:[
- type == #symbolicLink ifTrue:[
- linkTargetPath := OperatingSystem getLinkTarget:sourcePath.
- ]
+ type == #symbolicLink ifTrue:[
+ linkTargetPath := OperatingSystem getLinkTarget:sourcePath.
+ ]
].
^ linkTargetPath
@@ -11608,20 +11628,20 @@
[Instance variables:]
- pid <Integer> OS-Process identifier
-
- status <Symbol> either #exit #signal #stop #continue
-
- code <Integer> either exitcode or signalnumber
-
- core <Boolean> true if core has been dumped
+ pid <Integer> OS-Process identifier
+
+ status <Symbol> either #exit #signal #stop #continue
+
+ code <Integer> either exitcode or signalnumber
+
+ core <Boolean> true if core has been dumped
[author:]
- Stefan Vogel
+ Stefan Vogel
[see also:]
- OperatingSystem
+ OperatingSystem
"
! !
@@ -11762,24 +11782,24 @@
counterIndexTextDictionary
"
- self counterIndexTextDictionary
+ self counterIndexTextDictionary
"
CounterIndexTextDictionary isNil ifTrue:[
- self synchronized:[
- CounterIndexTextDictionary isNil ifTrue:[
- |performanceText counterIndexTextDictionary|
-
- performanceText := self getPerformanceText valueNamed:'Counter'.
- counterIndexTextDictionary := IdentityDictionary new.
-
- 1 to:performanceText size by:2 do:[:index|
- counterIndexTextDictionary at:(performanceText at:index) asInteger put:(performanceText at:index + 1).
- ].
-
- CounterIndexTextDictionary := counterIndexTextDictionary.
- ].
- ].
+ self synchronized:[
+ CounterIndexTextDictionary isNil ifTrue:[
+ |performanceText counterIndexTextDictionary|
+
+ performanceText := self getPerformanceText valueNamed:'Counter'.
+ counterIndexTextDictionary := IdentityDictionary new.
+
+ 1 to:performanceText size by:2 do:[:index|
+ counterIndexTextDictionary at:(performanceText at:index) asInteger put:(performanceText at:index + 1).
+ ].
+
+ CounterIndexTextDictionary := counterIndexTextDictionary.
+ ].
+ ].
].
^ CounterIndexTextDictionary
@@ -11788,24 +11808,24 @@
helpIndexTextDictionary
"
- self helpIndexTextDictionary
+ self helpIndexTextDictionary
"
HelpIndexTextDictionary isNil ifTrue:[
- self synchronized:[
- HelpIndexTextDictionary isNil ifTrue:[
- |performanceText helpIndexTextDictionary|
-
- performanceText := self getPerformanceText valueNamed:'Help'.
- helpIndexTextDictionary := IdentityDictionary new.
-
- 1 to:performanceText size by:2 do:[:index|
- helpIndexTextDictionary at:(performanceText at:index) asInteger put:(performanceText at:index + 1).
- ].
-
- HelpIndexTextDictionary := helpIndexTextDictionary.
- ].
- ].
+ self synchronized:[
+ HelpIndexTextDictionary isNil ifTrue:[
+ |performanceText helpIndexTextDictionary|
+
+ performanceText := self getPerformanceText valueNamed:'Help'.
+ helpIndexTextDictionary := IdentityDictionary new.
+
+ 1 to:performanceText size by:2 do:[:index|
+ helpIndexTextDictionary at:(performanceText at:index) asInteger put:(performanceText at:index + 1).
+ ].
+
+ HelpIndexTextDictionary := helpIndexTextDictionary.
+ ].
+ ].
].
^ HelpIndexTextDictionary
@@ -11842,86 +11862,86 @@
documentation
"
- VISTA:
-
- Wer versucht unter Vista die Registy HKEY_PERFORMANCE_DATA abzufragen wird zunächst enttäuscht.
- Die UAC UserAccessControl verhindern dies nämlich (selbs für den admin).
-
- Um dies zu umgehen:
-
- To turn off UAC
-
- 1. Click Start, and then click Control Panel.
- 2. In Control Panel, click User Accounts.
- 3. In the User Accounts window, click User Accounts.
- 4. In the User Accounts tasks window, click Turn User Account Control on or off.
- 5. If UAC is currently configured in Admin Approval Mode, the User Account Control message appears. Click Continue.
- 6. Clear the Use User Account Control (UAC) to help protect your computer check box, and then click OK.
- 7. Click Restart Now to apply the change right away, or click Restart Later and close the User Accounts tasks window.
+ VISTA:
+
+ Wer versucht unter Vista die Registy HKEY_PERFORMANCE_DATA abzufragen wird zunächst enttäuscht.
+ Die UAC UserAccessControl verhindern dies nämlich (selbs für den admin).
+
+ Um dies zu umgehen:
+
+ To turn off UAC
+
+ 1. Click Start, and then click Control Panel.
+ 2. In Control Panel, click User Accounts.
+ 3. In the User Accounts window, click User Accounts.
+ 4. In the User Accounts tasks window, click Turn User Account Control on or off.
+ 5. If UAC is currently configured in Admin Approval Mode, the User Account Control message appears. Click Continue.
+ 6. Clear the Use User Account Control (UAC) to help protect your computer check box, and then click OK.
+ 7. Click Restart Now to apply the change right away, or click Restart Later and close the User Accounts tasks window.
"
!
examples
"
- ######################################### PRIMITIVE
- self getUsedMemoryInPercentage.
-
- self getPhysicalMemoryInKB.
- self getPhysicalMemoryInMB.
-
- self getFreePhysicalMemoryInKB.
- self getFreePhysicalMemoryInMB.
-
- self getPageFileSizeInKB.
- self getPageFileSizeInMB.
-
- self getFreePageFileSizeInKB.
- self getFreePageFileSizeInMB.
-
- self getVirtualMemoryInKB.
- self getVirtualMemoryInMB.
-
- ######################################### REGISTRY
- self helpIndexTextDictionary
- self counterIndexTextDictionary
-
- self global getCounterNameIndexArray.
- self global getObjectNameIndexArray.
-
- self processor getCounterNameIndexArray.
- self processor processorUsage.
- self processor processorUsageFromLast.
- self processor interruptsPerSecond.
- self processor interruptsPerSecondFromLast.
-
- self process getCounterNameIndexArray.
- self process processUsage.
- self process processUsageFromLast.
- self process runningProcesses.
- self process runningProcessNameList.
-
- self network getCounterNameIndexArray.
- self network kBytesReceivedPerSecond.
- self network kBytesReceivedPerSecondFromLast.
- self network kBytesSentPerSecond.
- self network kBytesSentPerSecondFromLast.
-
- self memory getCounterNameIndexArray.
- self memory availableMBytes.
- self memory availableKBytes.
-
- self diskIO getCounterNameIndexArray.
- self diskIO diskSpaceFreeInMegaByte.
- self diskIO diskQueueLength.
- self diskIO diskTransfersPerSecond.
- self diskIO diskTransfersPerSecondFromlast.
- self diskIO diskReadsPerSecond.
- self diskIO diskReadsPerSecondFromLast.
- self diskIO diskWritesPerSecond.
- self diskIO diskWritesPerSecondFromLast.
- self diskIO diskBytesPerSecond.
- self diskIO diskBytesPerSecondFromLast.
+ ######################################### PRIMITIVE
+ self getUsedMemoryInPercentage.
+
+ self getPhysicalMemoryInKB.
+ self getPhysicalMemoryInMB.
+
+ self getFreePhysicalMemoryInKB.
+ self getFreePhysicalMemoryInMB.
+
+ self getPageFileSizeInKB.
+ self getPageFileSizeInMB.
+
+ self getFreePageFileSizeInKB.
+ self getFreePageFileSizeInMB.
+
+ self getVirtualMemoryInKB.
+ self getVirtualMemoryInMB.
+
+ ######################################### REGISTRY
+ self helpIndexTextDictionary
+ self counterIndexTextDictionary
+
+ self global getCounterNameIndexArray.
+ self global getObjectNameIndexArray.
+
+ self processor getCounterNameIndexArray.
+ self processor processorUsage.
+ self processor processorUsageFromLast.
+ self processor interruptsPerSecond.
+ self processor interruptsPerSecondFromLast.
+
+ self process getCounterNameIndexArray.
+ self process processUsage.
+ self process processUsageFromLast.
+ self process runningProcesses.
+ self process runningProcessNameList.
+
+ self network getCounterNameIndexArray.
+ self network kBytesReceivedPerSecond.
+ self network kBytesReceivedPerSecondFromLast.
+ self network kBytesSentPerSecond.
+ self network kBytesSentPerSecondFromLast.
+
+ self memory getCounterNameIndexArray.
+ self memory availableMBytes.
+ self memory availableKBytes.
+
+ self diskIO getCounterNameIndexArray.
+ self diskIO diskSpaceFreeInMegaByte.
+ self diskIO diskQueueLength.
+ self diskIO diskTransfersPerSecond.
+ self diskIO diskTransfersPerSecondFromlast.
+ self diskIO diskReadsPerSecond.
+ self diskIO diskReadsPerSecondFromLast.
+ self diskIO diskWritesPerSecond.
+ self diskIO diskWritesPerSecondFromLast.
+ self diskIO diskBytesPerSecond.
+ self diskIO diskBytesPerSecondFromLast.
"
! !
@@ -11930,7 +11950,7 @@
initialize
"
- self initialize
+ self initialize
"
PerformanceText := CounterIndexTextDictionary := HelpIndexTextDictionary := nil.
@@ -11941,7 +11961,7 @@
getPerformanceText
PerformanceText isNil ifTrue:[
- PerformanceText := Win32OperatingSystem registryEntry key:'HKEY_PERFORMANCE_TEXT'.
+ PerformanceText := Win32OperatingSystem registryEntry key:'HKEY_PERFORMANCE_TEXT'.
].
^ PerformanceText
@@ -11953,16 +11973,16 @@
|ret|
%{
- MEMORYSTATUS mState;
- GlobalMemoryStatus (&mState);
-
- ret = __mkSmallInteger(mState.dwAvailPageFile / 1024);
+ MEMORYSTATUS mState;
+ GlobalMemoryStatus (&mState);
+
+ ret = __mkSmallInteger(mState.dwAvailPageFile / 1024);
%}.
^ ret
"
- self getFreePageFileSizeInKB
+ self getFreePageFileSizeInKB
"
!
@@ -11970,7 +11990,7 @@
^ (self getFreePageFileSizeInKB / 1024) asInteger
"
- self getFreePageFileSizeInMB
+ self getFreePageFileSizeInMB
"
!
@@ -11978,16 +11998,16 @@
|ret|
%{
- MEMORYSTATUS mState;
- GlobalMemoryStatus (&mState);
-
- ret = __mkSmallInteger(mState.dwAvailPhys / 1024);
+ MEMORYSTATUS mState;
+ GlobalMemoryStatus (&mState);
+
+ ret = __mkSmallInteger(mState.dwAvailPhys / 1024);
%}.
^ ret
"
- self getFreePhysicalMemoryInKB
+ self getFreePhysicalMemoryInKB
"
!
@@ -11995,7 +12015,7 @@
^ (self getFreePhysicalMemoryInKB / 1024) asInteger
"
- self getFreePhysicalMemoryInMB
+ self getFreePhysicalMemoryInMB
"
!
@@ -12003,7 +12023,7 @@
^ self getPageFileSizeInMB * 1024
"
- self getPageFileSizeInKB
+ self getPageFileSizeInKB
"
!
@@ -12011,16 +12031,16 @@
|ret|
%{
- SYSTEM_INFO sInfo;
- GetSystemInfo(&sInfo);
-
- ret = __mkSmallInteger(sInfo.dwPageSize);
+ SYSTEM_INFO sInfo;
+ GetSystemInfo(&sInfo);
+
+ ret = __mkSmallInteger(sInfo.dwPageSize);
%}.
^ ret
"
- self getPageFileSizeInMB
+ self getPageFileSizeInMB
"
!
@@ -12028,16 +12048,16 @@
|ret|
%{
- MEMORYSTATUS mState;
- GlobalMemoryStatus (&mState);
-
- ret = __mkSmallInteger(mState.dwTotalPhys / 1024);
+ MEMORYSTATUS mState;
+ GlobalMemoryStatus (&mState);
+
+ ret = __mkSmallInteger(mState.dwTotalPhys / 1024);
%}.
^ ret
"
- self getPhysicalMemoryInKB
+ self getPhysicalMemoryInKB
"
!
@@ -12045,7 +12065,7 @@
^ (self getPhysicalMemoryInKB / 1024) asInteger
"
- self getPhysicalMemoryInMB
+ self getPhysicalMemoryInMB
"
!
@@ -12053,16 +12073,16 @@
|ret|
%{
- MEMORYSTATUS mState;
- GlobalMemoryStatus (&mState);
-
- ret = __mkSmallInteger(mState.dwMemoryLoad);
+ MEMORYSTATUS mState;
+ GlobalMemoryStatus (&mState);
+
+ ret = __mkSmallInteger(mState.dwMemoryLoad);
%}.
^ ret
"
- self getUsedMemoryInPercentage
+ self getUsedMemoryInPercentage
"
!
@@ -12070,16 +12090,16 @@
|ret|
%{
- MEMORYSTATUS mState;
- GlobalMemoryStatus (&mState);
-
- ret = __mkSmallInteger(mState.dwTotalVirtual / 1024);
+ MEMORYSTATUS mState;
+ GlobalMemoryStatus (&mState);
+
+ ret = __mkSmallInteger(mState.dwTotalVirtual / 1024);
%}.
^ ret
"
- self getVirtualMemoryInKB
+ self getVirtualMemoryInKB
"
!
@@ -12087,7 +12107,7 @@
^ (self getVirtualMemoryInKB / 1024) asInteger
"
- self getVirtualMemoryInMB
+ self getVirtualMemoryInMB
"
! !
@@ -12153,155 +12173,155 @@
//iterate all following objetcs
for (objectIterator=0; objectIterator<numObjectTypes; objectIterator++) {
- //add the st_perObject dictionary to st_objectArray
- st_perObject = __SSEND0(@global(Dictionary), @symbol(new), 0);
- __AT_PUT_(st_objectArray, __mkSmallInteger(objectIterator+1), st_perObject);
-
- //get the object data
- __AT_PUT_(st_perObject, @symbol(ObjectNameTitleIndex), __mkSmallInteger(perfObjectPtr->ObjectNameTitleIndex));
- __AT_PUT_(st_perObject, @symbol(DetailLevel), __mkSmallInteger(perfObjectPtr->DetailLevel));
- __AT_PUT_(st_perObject, @symbol(NumCounters), __mkSmallInteger(perfObjectPtr->NumCounters));
- __AT_PUT_(st_perObject, @symbol(NumInstances), __mkSmallInteger(perfObjectPtr->NumInstances));
-
- //setup counter array and initialize its pointer
- st_counterArray = __ARRAY_NEW_INT(perfObjectPtr->NumCounters);
- perfCounterPtr = (PERF_COUNTER_DEFINITION *)((char *)perfObjectPtr + perfObjectPtr->HeaderLength);
-
- //add the st_counterArray to st_perObject dictionary
- __AT_PUT_(st_perObject, @symbol(Counters), st_counterArray);
-
- //iterate all following counter definition
- for (counterIterator=0; counterIterator<perfObjectPtr->NumCounters; counterIterator++) {
- //add the st_perCounter dictionary to st_counterArray
- st_perCounter = __SSEND0(@global(Dictionary), @symbol(new), 0);
- __AT_PUT_(st_counterArray, __mkSmallInteger(counterIterator+1), st_perCounter);
-
- //get the counter data
- __AT_PUT_(st_perCounter, @symbol(CounterNameTitleIndex), __mkSmallInteger(perfCounterPtr->CounterNameTitleIndex));
- __AT_PUT_(st_perCounter, @symbol(CounterTypeBits), __mkSmallInteger(perfCounterPtr->CounterType));
- __AT_PUT_(st_perCounter, @symbol(CounterSize), __mkSmallInteger(perfCounterPtr->CounterSize));
- __AT_PUT_(st_perCounter, @symbol(CounterOffset), __mkSmallInteger(perfCounterPtr->CounterOffset));
-
- //put the counter type size
- switch (perfCounterPtr->CounterType & PERF_SIZE_MASK) {
- case PERF_SIZE_DWORD:
- __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(DWORD));
- break;
- case PERF_SIZE_LARGE:
- __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(LARGE));
- break;
- case PERF_SIZE_ZERO:
- __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(ZERO));
- break;
- case PERF_SIZE_VARIABLE_LEN:
- __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(VARIABLE_LEN));
- break;
- }
- switch (perfCounterPtr->CounterType & PERF_TYPE_MASK) {
- case PERF_TYPE_NUMBER:
- __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(NUMBER));
- switch (perfCounterPtr->CounterType & PERF_NUMBERTYPE_MASK) {
- case PERF_NUMBER_HEX:
- __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(HEX));
- break;
- case PERF_NUMBER_DECIMAL:
- __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(DECIMAL));
- break;
- case PERF_NUMBER_DEC_1000:
- __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(DEC_1000));
- break;
- }
- break;
- case PERF_TYPE_COUNTER:
- __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(COUNTER));
- switch (perfCounterPtr->CounterType & PERF_COUNTERTYPE_MASK) {
- case PERF_COUNTER_VALUE:
- __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(VALUE));
- break;
- case PERF_COUNTER_RATE:
- __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(RATE));
- break;
- case PERF_COUNTER_FRACTION:
- __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(FRACTION));
- break;
- case PERF_COUNTER_BASE:
- __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(BASE));
- break;
- case PERF_COUNTER_ELAPSED:
- __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(ELAPSED));
- break;
- case PERF_COUNTER_QUEUELEN:
- __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(QUEUELEN));
- break;
- case PERF_COUNTER_HISTOGRAM:
- __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(HISTOGRAM));
- break;
- case PERF_COUNTER_PRECISION:
- __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(PRECISION));
- break;
- }
- break;
- case PERF_TYPE_TEXT:
- __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(TEXT));
- switch (perfCounterPtr->CounterType & PERF_TEXTTYPE_MASK) {
- case PERF_TEXT_UNICODE:
- __AT_PUT_(st_perCounter, @symbol(TEXT),@symbol(UNICODE));
- break;
- case PERF_TEXT_ASCII:
- __AT_PUT_(st_perCounter, @symbol(TEXT),@symbol(ASCII));
- break;
- }
- break;
- case PERF_TYPE_ZERO:
- __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(ZERO));
- break;
- }
-
- //setup the counter pointer to the next counter definition
- perfCounterPtr = (PERF_COUNTER_DEFINITION *)((char *)perfCounterPtr + perfCounterPtr->ByteLength);
- }
-
- //goon dependent on the count of instances
- if (perfObjectPtr->NumInstances < 1) {
- perfCounterBlockPtr = (PERF_COUNTER_BLOCK *)(perfCounterPtr);
- __AT_PUT_(st_perObject, @symbol(RawData), __MKBYTEARRAY(perfCounterBlockPtr, perfCounterBlockPtr->ByteLength));
- } else {
- //setup the instance pointer to the end of all counters
- perfInstancePtr = (PERF_INSTANCE_DEFINITION *)(perfCounterPtr);
-
- //setup st_instanceArray and add it to st_perObject
- st_instanceArray = __ARRAY_NEW_INT(perfObjectPtr->NumInstances);
- __AT_PUT_(st_perObject, @symbol(Instances), st_instanceArray);
-
- //iterate the instances
- for (instanceIterator=0; instanceIterator<perfObjectPtr->NumInstances; instanceIterator++) {
- //setup st_perInstance and add it to st_instanceArray
- st_perInstance = __SSEND0(@global(Dictionary), @symbol(new), 0);
- __AT_PUT_(st_instanceArray, __mkSmallInteger(instanceIterator+1), st_perInstance);
-
- //get the instance data
- __AT_PUT_(st_perInstance, @symbol(Name), __MKBYTEARRAY((wchar_t *)((BYTE *)perfInstancePtr + perfInstancePtr->NameOffset),perfInstancePtr->NameLength));
- __AT_PUT_(st_perInstance, @symbol(ParentObjectTitleIndex), __mkSmallInteger(perfInstancePtr->ParentObjectTitleIndex));
- __AT_PUT_(st_perInstance, @symbol(ParentObjectInstance), __mkSmallInteger(perfInstancePtr->ParentObjectInstance));
- __AT_PUT_(st_perInstance, @symbol(NameOffset), __mkSmallInteger(perfInstancePtr->NameOffset));
- __AT_PUT_(st_perInstance, @symbol(NameLength), __mkSmallInteger(perfInstancePtr->NameLength));
-
- //setup the instance pointer to the its end
- perfInstancePtr = (PERF_INSTANCE_DEFINITION *)((char *)perfInstancePtr + perfInstancePtr->ByteLength);
-
- //setup the counter block pointer
- perfCounterBlockPtr = (PERF_COUNTER_BLOCK *)(perfInstancePtr);
-
- //get the instance raw data
- __AT_PUT_(st_perInstance, @symbol(RawData), __MKBYTEARRAY(perfCounterBlockPtr, perfCounterBlockPtr->ByteLength));
-
- //setup the instance pointer to the next instance
- perfInstancePtr = (PERF_INSTANCE_DEFINITION *)((char *)perfCounterBlockPtr + perfCounterBlockPtr->ByteLength);
- }
- }
-
- //setup the object pointer to the next object
- perfObjectPtr = (PERF_OBJECT_TYPE *)((char *)perfObjectPtr + perfObjectPtr->TotalByteLength);
+ //add the st_perObject dictionary to st_objectArray
+ st_perObject = __SSEND0(@global(Dictionary), @symbol(new), 0);
+ __AT_PUT_(st_objectArray, __mkSmallInteger(objectIterator+1), st_perObject);
+
+ //get the object data
+ __AT_PUT_(st_perObject, @symbol(ObjectNameTitleIndex), __mkSmallInteger(perfObjectPtr->ObjectNameTitleIndex));
+ __AT_PUT_(st_perObject, @symbol(DetailLevel), __mkSmallInteger(perfObjectPtr->DetailLevel));
+ __AT_PUT_(st_perObject, @symbol(NumCounters), __mkSmallInteger(perfObjectPtr->NumCounters));
+ __AT_PUT_(st_perObject, @symbol(NumInstances), __mkSmallInteger(perfObjectPtr->NumInstances));
+
+ //setup counter array and initialize its pointer
+ st_counterArray = __ARRAY_NEW_INT(perfObjectPtr->NumCounters);
+ perfCounterPtr = (PERF_COUNTER_DEFINITION *)((char *)perfObjectPtr + perfObjectPtr->HeaderLength);
+
+ //add the st_counterArray to st_perObject dictionary
+ __AT_PUT_(st_perObject, @symbol(Counters), st_counterArray);
+
+ //iterate all following counter definition
+ for (counterIterator=0; counterIterator<perfObjectPtr->NumCounters; counterIterator++) {
+ //add the st_perCounter dictionary to st_counterArray
+ st_perCounter = __SSEND0(@global(Dictionary), @symbol(new), 0);
+ __AT_PUT_(st_counterArray, __mkSmallInteger(counterIterator+1), st_perCounter);
+
+ //get the counter data
+ __AT_PUT_(st_perCounter, @symbol(CounterNameTitleIndex), __mkSmallInteger(perfCounterPtr->CounterNameTitleIndex));
+ __AT_PUT_(st_perCounter, @symbol(CounterTypeBits), __mkSmallInteger(perfCounterPtr->CounterType));
+ __AT_PUT_(st_perCounter, @symbol(CounterSize), __mkSmallInteger(perfCounterPtr->CounterSize));
+ __AT_PUT_(st_perCounter, @symbol(CounterOffset), __mkSmallInteger(perfCounterPtr->CounterOffset));
+
+ //put the counter type size
+ switch (perfCounterPtr->CounterType & PERF_SIZE_MASK) {
+ case PERF_SIZE_DWORD:
+ __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(DWORD));
+ break;
+ case PERF_SIZE_LARGE:
+ __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(LARGE));
+ break;
+ case PERF_SIZE_ZERO:
+ __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(ZERO));
+ break;
+ case PERF_SIZE_VARIABLE_LEN:
+ __AT_PUT_(st_perCounter, @symbol(SIZE),@symbol(VARIABLE_LEN));
+ break;
+ }
+ switch (perfCounterPtr->CounterType & PERF_TYPE_MASK) {
+ case PERF_TYPE_NUMBER:
+ __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(NUMBER));
+ switch (perfCounterPtr->CounterType & PERF_NUMBERTYPE_MASK) {
+ case PERF_NUMBER_HEX:
+ __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(HEX));
+ break;
+ case PERF_NUMBER_DECIMAL:
+ __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(DECIMAL));
+ break;
+ case PERF_NUMBER_DEC_1000:
+ __AT_PUT_(st_perCounter, @symbol(NUMBER),@symbol(DEC_1000));
+ break;
+ }
+ break;
+ case PERF_TYPE_COUNTER:
+ __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(COUNTER));
+ switch (perfCounterPtr->CounterType & PERF_COUNTERTYPE_MASK) {
+ case PERF_COUNTER_VALUE:
+ __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(VALUE));
+ break;
+ case PERF_COUNTER_RATE:
+ __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(RATE));
+ break;
+ case PERF_COUNTER_FRACTION:
+ __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(FRACTION));
+ break;
+ case PERF_COUNTER_BASE:
+ __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(BASE));
+ break;
+ case PERF_COUNTER_ELAPSED:
+ __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(ELAPSED));
+ break;
+ case PERF_COUNTER_QUEUELEN:
+ __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(QUEUELEN));
+ break;
+ case PERF_COUNTER_HISTOGRAM:
+ __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(HISTOGRAM));
+ break;
+ case PERF_COUNTER_PRECISION:
+ __AT_PUT_(st_perCounter, @symbol(COUNTER),@symbol(PRECISION));
+ break;
+ }
+ break;
+ case PERF_TYPE_TEXT:
+ __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(TEXT));
+ switch (perfCounterPtr->CounterType & PERF_TEXTTYPE_MASK) {
+ case PERF_TEXT_UNICODE:
+ __AT_PUT_(st_perCounter, @symbol(TEXT),@symbol(UNICODE));
+ break;
+ case PERF_TEXT_ASCII:
+ __AT_PUT_(st_perCounter, @symbol(TEXT),@symbol(ASCII));
+ break;
+ }
+ break;
+ case PERF_TYPE_ZERO:
+ __AT_PUT_(st_perCounter, @symbol(TYPE),@symbol(ZERO));
+ break;
+ }
+
+ //setup the counter pointer to the next counter definition
+ perfCounterPtr = (PERF_COUNTER_DEFINITION *)((char *)perfCounterPtr + perfCounterPtr->ByteLength);
+ }
+
+ //goon dependent on the count of instances
+ if (perfObjectPtr->NumInstances < 1) {
+ perfCounterBlockPtr = (PERF_COUNTER_BLOCK *)(perfCounterPtr);
+ __AT_PUT_(st_perObject, @symbol(RawData), __MKBYTEARRAY(perfCounterBlockPtr, perfCounterBlockPtr->ByteLength));
+ } else {
+ //setup the instance pointer to the end of all counters
+ perfInstancePtr = (PERF_INSTANCE_DEFINITION *)(perfCounterPtr);
+
+ //setup st_instanceArray and add it to st_perObject
+ st_instanceArray = __ARRAY_NEW_INT(perfObjectPtr->NumInstances);
+ __AT_PUT_(st_perObject, @symbol(Instances), st_instanceArray);
+
+ //iterate the instances
+ for (instanceIterator=0; instanceIterator<perfObjectPtr->NumInstances; instanceIterator++) {
+ //setup st_perInstance and add it to st_instanceArray
+ st_perInstance = __SSEND0(@global(Dictionary), @symbol(new), 0);
+ __AT_PUT_(st_instanceArray, __mkSmallInteger(instanceIterator+1), st_perInstance);
+
+ //get the instance data
+ __AT_PUT_(st_perInstance, @symbol(Name), __MKBYTEARRAY((wchar_t *)((BYTE *)perfInstancePtr + perfInstancePtr->NameOffset),perfInstancePtr->NameLength));
+ __AT_PUT_(st_perInstance, @symbol(ParentObjectTitleIndex), __mkSmallInteger(perfInstancePtr->ParentObjectTitleIndex));
+ __AT_PUT_(st_perInstance, @symbol(ParentObjectInstance), __mkSmallInteger(perfInstancePtr->ParentObjectInstance));
+ __AT_PUT_(st_perInstance, @symbol(NameOffset), __mkSmallInteger(perfInstancePtr->NameOffset));
+ __AT_PUT_(st_perInstance, @symbol(NameLength), __mkSmallInteger(perfInstancePtr->NameLength));
+
+ //setup the instance pointer to the its end
+ perfInstancePtr = (PERF_INSTANCE_DEFINITION *)((char *)perfInstancePtr + perfInstancePtr->ByteLength);
+
+ //setup the counter block pointer
+ perfCounterBlockPtr = (PERF_COUNTER_BLOCK *)(perfInstancePtr);
+
+ //get the instance raw data
+ __AT_PUT_(st_perInstance, @symbol(RawData), __MKBYTEARRAY(perfCounterBlockPtr, perfCounterBlockPtr->ByteLength));
+
+ //setup the instance pointer to the next instance
+ perfInstancePtr = (PERF_INSTANCE_DEFINITION *)((char *)perfCounterBlockPtr + perfCounterBlockPtr->ByteLength);
+ }
+ }
+
+ //setup the object pointer to the next object
+ perfObjectPtr = (PERF_OBJECT_TYPE *)((char *)perfObjectPtr + perfObjectPtr->TotalByteLength);
}
%}.
objectArray := st_objectArray.
@@ -12310,61 +12330,61 @@
perfTime100nSec := st_perfTime100nSec.
getNameBlock := [:i|
- self class counterIndexTextDictionary at:i ifAbsent:['<<no name>>'].
+ self class counterIndexTextDictionary at:i ifAbsent:['<<no name>>'].
].
getCounterValueBlock := [:counter :rawData|
- |offset counterValue|
-
- offset := counter at:#CounterOffset.
- offset >= rawData size ifTrue:[
- counterValue := nil.
- ] ifFalse:[
- (counter at:#SIZE) == #LARGE ifTrue:[
- counterValue := rawData unsignedLongLongAt:offset + 1 bigEndian:false.
- ] ifFalse:[
- (counter at:#SIZE) == #DWORD ifTrue:[
- counterValue := rawData unsignedLongAt:offset + 1 bigEndian:false.
- ] ifFalse:[
- self halt.
- ].
- ].
- ].
-
- counterValue
+ |offset counterValue|
+
+ offset := counter at:#CounterOffset.
+ offset >= rawData size ifTrue:[
+ counterValue := nil.
+ ] ifFalse:[
+ (counter at:#SIZE) == #LARGE ifTrue:[
+ counterValue := rawData unsignedLongLongAt:offset + 1 bigEndian:false.
+ ] ifFalse:[
+ (counter at:#SIZE) == #DWORD ifTrue:[
+ counterValue := rawData unsignedLongAt:offset + 1 bigEndian:false.
+ ] ifFalse:[
+ self halt.
+ ].
+ ].
+ ].
+
+ counterValue
].
objectArray do:[:anObject|
- "setup the object name"
- anObject at:#ObjectNameTitle put:(getNameBlock value:(anObject at:#ObjectNameTitleIndex)).
-
- "setup the name and a counter value array to each counter"
- (anObject at:#Counters) do:[:aCounter|
- aCounter at:#CounterNameTitle put:(getNameBlock value:(aCounter at:#CounterNameTitleIndex)).
- aCounter at:#CounterValueArray put:OrderedCollection new.
- ].
-
- (anObject at:#NumInstances) < 1 ifTrue:[
- |rawData|
-
- rawData := anObject at:#RawData.
-
- (anObject at:#Counters) do:[:aCounter|
- (aCounter at:#CounterValueArray) add:(getCounterValueBlock value:aCounter value:rawData).
- ].
- ] ifFalse:[
- (anObject at:#Instances) do:[:anInstance|
- |rawData|
-
- rawData := anInstance at:#RawData.
-
- anInstance at:#Name put:((Unicode16String fromBytes:(anInstance at:#Name) copy swapBytes) copyWithoutLast:1).
-
- (anObject at:#Counters) do:[:aCounter|
- (aCounter at:#CounterValueArray) add:(getCounterValueBlock value:aCounter value:rawData).
- ].
- ].
- ].
+ "setup the object name"
+ anObject at:#ObjectNameTitle put:(getNameBlock value:(anObject at:#ObjectNameTitleIndex)).
+
+ "setup the name and a counter value array to each counter"
+ (anObject at:#Counters) do:[:aCounter|
+ aCounter at:#CounterNameTitle put:(getNameBlock value:(aCounter at:#CounterNameTitleIndex)).
+ aCounter at:#CounterValueArray put:OrderedCollection new.
+ ].
+
+ (anObject at:#NumInstances) < 1 ifTrue:[
+ |rawData|
+
+ rawData := anObject at:#RawData.
+
+ (anObject at:#Counters) do:[:aCounter|
+ (aCounter at:#CounterValueArray) add:(getCounterValueBlock value:aCounter value:rawData).
+ ].
+ ] ifFalse:[
+ (anObject at:#Instances) do:[:anInstance|
+ |rawData|
+
+ rawData := anInstance at:#RawData.
+
+ anInstance at:#Name put:((Unicode16String fromBytes:(anInstance at:#Name) copy swapBytes) copyWithoutLast:1).
+
+ (anObject at:#Counters) do:[:aCounter|
+ (aCounter at:#CounterValueArray) add:(getCounterValueBlock value:aCounter value:rawData).
+ ].
+ ].
+ ].
].
^ self
@@ -12375,7 +12395,7 @@
cachedResults
cachedResults isNil ifTrue:[
- cachedResults := IdentityDictionary new.
+ cachedResults := IdentityDictionary new.
].
^ cachedResults
@@ -12402,8 +12422,8 @@
aliveTime
"
- returns the time a data stays alive, in milliseconds
- before we push a new call and overwrite the data
+ returns the time a data stays alive, in milliseconds
+ before we push a new call and overwrite the data
"
^ self subclassResponsibility
@@ -12426,18 +12446,18 @@
data
self synchronized:[
- |lastTS|
-
- lastTS := self lastTimestamp.
- lastTS isNil ifTrue:[
- ^ self dataBasic
- ] ifFalse:[
- Timestamp now asMilliseconds - lastTS >= self aliveTime ifTrue:[
- ^ self dataBasic
- ] ifFalse:[
- ^ self lastData
- ].
- ].
+ |lastTS|
+
+ lastTS := self lastTimestamp.
+ lastTS isNil ifTrue:[
+ ^ self dataBasic
+ ] ifFalse:[
+ Timestamp now asMilliseconds - lastTS >= self aliveTime ifTrue:[
+ ^ self dataBasic
+ ] ifFalse:[
+ ^ self lastData
+ ].
+ ].
].
!
@@ -12461,9 +12481,9 @@
data := self data.
self indexedNameNumbered == 0 ifTrue:[
- object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
+ object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
] ifFalse:[
- object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == self indexedNameNumbered] ifNone:[self error:'counter not found'].
+ object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == self indexedNameNumbered] ifNone:[self error:'counter not found'].
].
^ (object at:#Counters) collect:[:el|Array with:(el at:#CounterNameTitle) with:(el at:#CounterNameTitleIndex)].
@@ -12476,14 +12496,14 @@
cachedResult := self cachedResults at:aSelector ifAbsent:nil.
cachedResult notNil ifTrue:[
- |currentResult|
-
- currentResult := self perform:aSelector.
- return := self getPerSecondViaResult1:cachedResult result2:currentResult.
-
- self cachedResults at:aSelector put:currentResult.
+ |currentResult|
+
+ currentResult := self perform:aSelector.
+ return := self getPerSecondViaResult1:cachedResult result2:currentResult.
+
+ self cachedResults at:aSelector put:currentResult.
] ifFalse:[
- self cachedResults at:aSelector put:(self perform:aSelector).
+ self cachedResults at:aSelector put:(self perform:aSelector).
].
^ return
@@ -12507,15 +12527,15 @@
globalResult := Dictionary new.
values2 keysDo:[:key|
- |difference|
-
- difference := (values2 at:key) - (values1 at:key).
-
- runTimeInS = 0 ifTrue:[
- globalResult at:key put:0.
- ] ifFalse:[
- globalResult at:key put:(difference / runTimeInS) asFloat.
- ].
+ |difference|
+
+ difference := (values2 at:key) - (values1 at:key).
+
+ runTimeInS = 0 ifTrue:[
+ globalResult at:key put:0.
+ ] ifFalse:[
+ globalResult at:key put:(difference / runTimeInS) asFloat.
+ ].
].
^ globalResult
@@ -12533,15 +12553,15 @@
globalResult := Dictionary new.
values2 keysDo:[:key|
- |difference|
-
- difference := (values2 at:key) - (values1 at:key).
-
- runTimeInS = 0 ifTrue:[
- globalResult at:key put:0.
- ] ifFalse:[
- globalResult at:key put:(difference / runTimeInS) asFloat.
- ].
+ |difference|
+
+ difference := (values2 at:key) - (values1 at:key).
+
+ runTimeInS = 0 ifTrue:[
+ globalResult at:key put:0.
+ ] ifFalse:[
+ globalResult at:key put:(difference / runTimeInS) asFloat.
+ ].
].
^ globalResult
@@ -12552,14 +12572,14 @@
cachedResult := self cachedResults at:aSelector ifAbsent:nil.
cachedResult notNil ifTrue:[
- |currentResult|
-
- currentResult := self perform:aSelector.
- return := self getUsageViaResult1:cachedResult result2:currentResult.
-
- self cachedResults at:aSelector put:currentResult.
+ |currentResult|
+
+ currentResult := self perform:aSelector.
+ return := self getUsageViaResult1:cachedResult result2:currentResult.
+
+ self cachedResults at:aSelector put:currentResult.
] ifFalse:[
- self cachedResults at:aSelector put:(self perform:aSelector).
+ self cachedResults at:aSelector put:(self perform:aSelector).
].
^ return
@@ -12582,22 +12602,22 @@
value2 := result2 at:#values.
value1 keysDo:[:key|
- |diff dPerSecond load1024 res|
-
- diff := (value2 at:key) - (value1 at:key).
- diff := diff bitShift:10.
-
- deltaTIn100Ns = 0 ifTrue:[
- dPerSecond := 0.
- ] ifFalse:[
- dPerSecond := (diff / deltaTIn100Ns) asFloat.
- ].
- load1024 := 1024 - dPerSecond.
-
- res := (load1024 / 1024 * 100) asFloat.
- res < 0 ifTrue:[res := 0].
-
- globalResult at:key put:res.
+ |diff dPerSecond load1024 res|
+
+ diff := (value2 at:key) - (value1 at:key).
+ diff := diff bitShift:10.
+
+ deltaTIn100Ns = 0 ifTrue:[
+ dPerSecond := 0.
+ ] ifFalse:[
+ dPerSecond := (diff / deltaTIn100Ns) asFloat.
+ ].
+ load1024 := 1024 - dPerSecond.
+
+ res := (load1024 / 1024 * 100) asFloat.
+ res < 0 ifTrue:[res := 0].
+
+ globalResult at:key put:res.
].
^ globalResult
@@ -12613,22 +12633,22 @@
value2 := result2 at:#values.
value1 keysDo:[:key|
- |diff dPerSecond load1024 res|
-
- diff := (value2 at:key) - (value1 at:key).
- diff := diff bitShift:10.
-
- deltaTIn100Ns = 0 ifTrue:[
- dPerSecond := 0.
- ] ifFalse:[
- dPerSecond := (diff / deltaTIn100Ns) asFloat.
- ].
- load1024 := 1024 - dPerSecond.
-
- res := (load1024 / 1024 * 100) asFloat.
- res < 0 ifTrue:[res := 0].
-
- globalResult at:key put:res.
+ |diff dPerSecond load1024 res|
+
+ diff := (value2 at:key) - (value1 at:key).
+ diff := diff bitShift:10.
+
+ deltaTIn100Ns = 0 ifTrue:[
+ dPerSecond := 0.
+ ] ifFalse:[
+ dPerSecond := (diff / deltaTIn100Ns) asFloat.
+ ].
+ load1024 := 1024 - dPerSecond.
+
+ res := (load1024 / 1024 * 100) asFloat.
+ res < 0 ifTrue:[res := 0].
+
+ globalResult at:key put:res.
].
^ globalResult
@@ -12652,15 +12672,15 @@
|data object counter values debugBlock numInstances|
debugBlock := [:obj|
- ^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
+ ^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
].
data := self dataBasic.
objectIndex == 0 ifTrue:[
- object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
+ object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
] ifFalse:[
- object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == objectIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
+ object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == objectIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
].
counter := (object at:#Counters) detect:[:aCounter|(aCounter at:#CounterNameTitleIndex) == counterIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
@@ -12669,28 +12689,28 @@
numInstances := object at:#NumInstances.
numInstances > 0 ifTrue:[
- 1 to:numInstances do:[:idx|
- |value instanceName|
-
- value := (counter at:#CounterValueArray) at:idx.
- instanceName := ((object at:#Instances) at:idx) at:#Name.
-
- values at:instanceName put:value.
- ].
+ 1 to:numInstances do:[:idx|
+ |value instanceName|
+
+ value := (counter at:#CounterValueArray) at:idx.
+ instanceName := ((object at:#Instances) at:idx) at:#Name.
+
+ values at:instanceName put:value.
+ ].
] ifFalse:[
- values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
+ values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
].
boolean ifTrue:[
- |return|
-
- return := IdentityDictionary new.
- return at:#time put:data perfTime.
- return at:#frequence put:data perfFreq.
- return at:#time100nSec put:data perfTime100nSec.
- return at:#values put:values.
-
- ^ return
+ |return|
+
+ return := IdentityDictionary new.
+ return at:#time put:data perfTime.
+ return at:#frequence put:data perfFreq.
+ return at:#time100nSec put:data perfTime100nSec.
+ return at:#values put:values.
+
+ ^ return
].
^ values
@@ -12712,15 +12732,15 @@
|data object counter values debugBlock numInstances|
debugBlock := [:obj|
- ^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
+ ^ 'obj:', obj , ' this:', self printString , ' idx:', self indexedName
].
data := self data.
objectIndex == 0 ifTrue:[
- object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
+ object := data objectArray at:1 ifAbsent:[debugBlock value:(object at:#ObjectNameTitle)].
] ifFalse:[
- object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == objectIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
+ object := data objectArray detect:[:el|(el at:#ObjectNameTitleIndex) == objectIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
].
counter := (object at:#Counters) detect:[:aCounter|(aCounter at:#CounterNameTitleIndex) == counterIndex] ifNone:[debugBlock value:(object at:#ObjectNameTitle)].
@@ -12729,28 +12749,28 @@
numInstances := object at:#NumInstances.
numInstances > 0 ifTrue:[
- 1 to:numInstances do:[:idx|
- |value instanceName|
-
- value := (counter at:#CounterValueArray) at:idx.
- instanceName := ((object at:#Instances) at:idx) at:#Name.
-
- values at:instanceName put:value.
- ].
+ 1 to:numInstances do:[:idx|
+ |value instanceName|
+
+ value := (counter at:#CounterValueArray) at:idx.
+ instanceName := ((object at:#Instances) at:idx) at:#Name.
+
+ values at:instanceName put:value.
+ ].
] ifFalse:[
- values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
+ values at:'<<singleton>>' put:(counter at:#CounterValueArray) first.
].
boolean ifTrue:[
- |return|
-
- return := IdentityDictionary new.
- return at:#time put:data perfTime.
- return at:#frequence put:data perfFreq.
- return at:#time100nSec put:data perfTime100nSec.
- return at:#values put:values.
-
- ^ return
+ |return|
+
+ return := IdentityDictionary new.
+ return at:#time put:data perfTime.
+ return at:#frequence put:data perfFreq.
+ return at:#time100nSec put:data perfTime100nSec.
+ return at:#values put:values.
+
+ ^ return
].
^ values
@@ -12761,7 +12781,7 @@
current
TheOneAndOnlyInstance isNil ifTrue:[
- TheOneAndOnlyInstance := self new.
+ TheOneAndOnlyInstance := self new.
].
^ TheOneAndOnlyInstance
@@ -12783,7 +12803,7 @@
^ self getValuesByCounter:218 timed:true
"
- self current diskBytes
+ self current diskBytes
"
!
@@ -12791,7 +12811,7 @@
^ self getBasicValuesByCounter:218 timed:true
"
- self current diskBytesBasic
+ self current diskBytesBasic
"
!
@@ -12799,7 +12819,7 @@
^ self getPerSecondViaPerformBlock:[self diskBytes]
"
- self current diskBytesPerSecond
+ self current diskBytesPerSecond
"
!
@@ -12807,7 +12827,7 @@
^ self getPerSecondFromLast:#diskBytesBasic
"
- self current diskBytesPerSecondFromLast
+ self current diskBytesPerSecondFromLast
"
!
@@ -12815,7 +12835,7 @@
^ self getValuesByCounter:198
"
- self current diskQueueLength
+ self current diskQueueLength
"
!
@@ -12823,7 +12843,7 @@
^ self getValuesByCounter:214 timed:true
"
- self current diskRead
+ self current diskRead
"
!
@@ -12831,7 +12851,7 @@
^ self getBasicValuesByCounter:214 timed:true
"
- self current diskReadBasic
+ self current diskReadBasic
"
!
@@ -12839,7 +12859,7 @@
^ self getPerSecondViaPerformBlock:[self diskRead]
"
- self current diskReadsPerSecond
+ self current diskReadsPerSecond
"
!
@@ -12847,7 +12867,7 @@
^ self getPerSecondFromLast:#diskReadBasic
"
- self current diskReadsPerSecondFromLast
+ self current diskReadsPerSecondFromLast
"
!
@@ -12855,7 +12875,7 @@
^ self getValuesByCounter:408
"
- self current diskSpaceFreeInMegaByte
+ self current diskSpaceFreeInMegaByte
"
!
@@ -12863,7 +12883,7 @@
^ self getValuesByCounter:212 timed:true
"
- self current diskTransfers
+ self current diskTransfers
"
!
@@ -12871,7 +12891,7 @@
^ self getBasicValuesByCounter:212 timed:true
"
- self current diskTransfersBasic
+ self current diskTransfersBasic
"
!
@@ -12879,7 +12899,7 @@
^ self getPerSecondViaPerformBlock:[self diskTransfers]
"
- self current diskTransfersPerSecond
+ self current diskTransfersPerSecond
"
!
@@ -12887,7 +12907,7 @@
^ self getPerSecondFromLast:#diskTransfersBasic
"
- self current diskTransfersPerSecondFromlast
+ self current diskTransfersPerSecondFromlast
"
!
@@ -12895,7 +12915,7 @@
^ self getValuesByCounter:216 timed:true
"
- self current diskWrite
+ self current diskWrite
"
!
@@ -12903,7 +12923,7 @@
^ self getBasicValuesByCounter:216 timed:true
"
- self current diskWriteBasic
+ self current diskWriteBasic
"
!
@@ -12911,7 +12931,7 @@
^ self getPerSecondViaPerformBlock:[self diskWrite]
"
- self current diskWritesPerSecond
+ self current diskWritesPerSecond
"
!
@@ -12919,7 +12939,7 @@
^ self getPerSecondFromLast:#diskWriteBasic
"
- self current diskWritesPerSecondFromLast
+ self current diskWritesPerSecondFromLast
"
! !
@@ -12928,7 +12948,7 @@
current
TheOneAndOnlyInstance isNil ifTrue:[
- TheOneAndOnlyInstance := self new.
+ TheOneAndOnlyInstance := self new.
].
^ TheOneAndOnlyInstance
@@ -12957,12 +12977,12 @@
indexNameArray := OrderedCollection new.
data objectArray do:[:anObject|
- |index name|
-
- index := anObject at:#ObjectNameTitleIndex.
- name := Win32OperatingSystem::PerformanceData counterIndexTextDictionary at:index.
-
- indexNameArray add:(Array with:name with:index).
+ |index name|
+
+ index := anObject at:#ObjectNameTitleIndex.
+ name := Win32OperatingSystem::PerformanceData counterIndexTextDictionary at:index.
+
+ indexNameArray add:(Array with:name with:index).
].
^ indexNameArray
@@ -12973,7 +12993,7 @@
current
TheOneAndOnlyInstance isNil ifTrue:[
- TheOneAndOnlyInstance := self new.
+ TheOneAndOnlyInstance := self new.
].
^ TheOneAndOnlyInstance
@@ -12995,7 +13015,7 @@
^ self getValuesByCounter:1380
"
- self current availableKBytes
+ self current availableKBytes
"
!
@@ -13003,7 +13023,7 @@
^ self getValuesByCounter:1382
"
- self current availableMBytes
+ self current availableMBytes
"
! !
@@ -13012,7 +13032,7 @@
current
TheOneAndOnlyInstance isNil ifTrue:[
- TheOneAndOnlyInstance := self new.
+ TheOneAndOnlyInstance := self new.
].
^ TheOneAndOnlyInstance
@@ -13038,7 +13058,7 @@
^ self getValuesByCounter:264 timed:true
"
- self current bytesReceived
+ self current bytesReceived
"
!
@@ -13046,7 +13066,7 @@
^ self getBasicValuesByCounter:264 timed:true
"
- self current bytesReceivedBasic
+ self current bytesReceivedBasic
"
!
@@ -13054,7 +13074,7 @@
^ self getPerSecondViaPerformBlock:[self bytesReceived]
"
- self current bytesReceivedPerSecond
+ self current bytesReceivedPerSecond
"
!
@@ -13062,7 +13082,7 @@
^ self getPerSecondFromLast:#bytesReceivedBasic
"
- self current bytesReceivedPerSecondFromlast
+ self current bytesReceivedPerSecondFromlast
"
!
@@ -13070,7 +13090,7 @@
^ self getValuesByCounter:506 timed:true
"
- self current bytesSent
+ self current bytesSent
"
!
@@ -13078,7 +13098,7 @@
^ self getBasicValuesByCounter:506 timed:true
"
- self current bytesSentBasic
+ self current bytesSentBasic
"
!
@@ -13086,7 +13106,7 @@
^ self getPerSecondViaPerformBlock:[self bytesSent]
"
- self current bytesSentPerSecond
+ self current bytesSentPerSecond
"
!
@@ -13094,7 +13114,7 @@
^ self getPerSecondFromLast:#bytesSentBasic
"
- self current bytesSentPerSecondFromlast
+ self current bytesSentPerSecondFromlast
"
!
@@ -13104,13 +13124,13 @@
modifiedDictionary := Dictionary new.
(self getPerSecondViaPerformBlock:[self bytesReceived]) keysAndValuesDo:[:key :value|
- modifiedDictionary at:key put:(value / 1024).
+ modifiedDictionary at:key put:(value / 1024).
].
^ modifiedDictionary
"
- self current kBytesReceivedPerSecond
+ self current kBytesReceivedPerSecond
"
!
@@ -13123,13 +13143,13 @@
modifiedDictionary := Dictionary new.
return keysAndValuesDo:[:key :value|
- modifiedDictionary at:key put:(value / 1024).
+ modifiedDictionary at:key put:(value / 1024).
].
^ modifiedDictionary
"
- self current kBytesReceivedPerSecondFromLast
+ self current kBytesReceivedPerSecondFromLast
"
!
@@ -13139,13 +13159,13 @@
modifiedDictionary := Dictionary new.
(self getPerSecondViaPerformBlock:[self bytesSent]) keysAndValuesDo:[:key :value|
- modifiedDictionary at:key put:(value / 1024).
+ modifiedDictionary at:key put:(value / 1024).
].
^ modifiedDictionary
"
- self current kBytesSentPerSecond
+ self current kBytesSentPerSecond
"
!
@@ -13158,13 +13178,13 @@
modifiedDictionary := Dictionary new.
return keysAndValuesDo:[:key :value|
- modifiedDictionary at:key put:(value / 1024).
+ modifiedDictionary at:key put:(value / 1024).
].
^ modifiedDictionary
"
- self current kBytesSentPerSecondFromLast
+ self current kBytesSentPerSecondFromLast
"
! !
@@ -13173,7 +13193,7 @@
current
TheOneAndOnlyInstance isNil ifTrue:[
- TheOneAndOnlyInstance := self new.
+ TheOneAndOnlyInstance := self new.
].
^ TheOneAndOnlyInstance
@@ -13195,7 +13215,7 @@
^ self getValuesByCounter:6 timed:true
"
- self current processTime
+ self current processTime
"
!
@@ -13203,7 +13223,7 @@
^ self getBasicValuesByCounter:6 timed:true
"
- self current processTimeBasic
+ self current processTimeBasic
"
!
@@ -13213,13 +13233,13 @@
modifiedDictionary := Dictionary new.
(self getUsageViaPerformBlock:[self processTime]) keysAndValuesDo:[:key :value|
- modifiedDictionary at:key put:(100 - value).
+ modifiedDictionary at:key put:(100 - value).
].
^ modifiedDictionary
"
- self current processUsage
+ self current processUsage
"
!
@@ -13232,13 +13252,13 @@
modifiedDictionary := Dictionary new.
return keysAndValuesDo:[:key :value|
- modifiedDictionary at:key put:(100 - value).
+ modifiedDictionary at:key put:(100 - value).
].
^ modifiedDictionary
"
- self current processUsageFromLast
+ self current processUsageFromLast
"
!
@@ -13247,7 +13267,7 @@
^ (self data objectArray first at:#Instances) collect:[:el|el at:#Name]
"
- self current runningProcessNameList
+ self current runningProcessNameList
"
!
@@ -13256,7 +13276,7 @@
^ (self data objectArray first at:#NumInstances)
"
- self current runningProcesses
+ self current runningProcesses
"
! !
@@ -13265,7 +13285,7 @@
current
TheOneAndOnlyInstance isNil ifTrue:[
- TheOneAndOnlyInstance := self new.
+ TheOneAndOnlyInstance := self new.
].
^ TheOneAndOnlyInstance
@@ -13287,7 +13307,7 @@
^ self getValuesByCounter:148 timed:true
"
- self current interrupts
+ self current interrupts
"
!
@@ -13295,7 +13315,7 @@
^ self getBasicValuesByCounter:148 timed:true
"
- self current interruptsBasic
+ self current interruptsBasic
"
!
@@ -13303,7 +13323,7 @@
^ self getPerSecondViaPerformBlock:[self interrupts]
"
- self current interruptsPerSecond
+ self current interruptsPerSecond
"
!
@@ -13311,7 +13331,7 @@
^ self getPerSecondFromLast:#interruptsBasic
"
- self current interruptsPerSecondFromLast
+ self current interruptsPerSecondFromLast
"
!
@@ -13319,7 +13339,7 @@
^ self getValuesByCounter:6 timed:true
"
- self current processorTime
+ self current processorTime
"
!
@@ -13327,7 +13347,7 @@
^ self getBasicValuesByCounter:6 timed:true
"
- self current processorTimeBasic
+ self current processorTimeBasic
"
!
@@ -13335,7 +13355,7 @@
^ self getUsageViaPerformBlock:[self processorTime]
"
- self current processorUsage
+ self current processorUsage
"
!
@@ -13343,7 +13363,7 @@
^ self getUsageFromLast:#processorTimeBasic
"
- self current processorUsageFromLast
+ self current processorUsageFromLast
"
! !
@@ -13354,10 +13374,10 @@
|defaultPriority|
Error handle:[:ex |
- Transcript showCR: 'PrinterInfo2 error getting defaultPriority - ', ex description.
- defaultPriority := 0.
+ Transcript showCR: 'PrinterInfo2 error getting defaultPriority - ', ex description.
+ defaultPriority := 0.
] do:[
- defaultPriority := self unsignedLongAt:(60 + 1)
+ defaultPriority := self unsignedLongAt:(60 + 1)
].
^ defaultPriority
@@ -13369,15 +13389,15 @@
|pComment|
Error handle:[:ex |
- Transcript showCR: 'PrinterInfo2 error getting pComment - ', ex description.
- pComment := 0.
+ Transcript showCR: 'PrinterInfo2 error getting pComment - ', ex description.
+ pComment := 0.
] do:[
- pComment := self unsignedLongAt:(20 + 1).
+ pComment := self unsignedLongAt:(20 + 1).
].
^ pComment == 0
- ifTrue:''
- ifFalse:[ (ExternalBytes address:pComment) stringAt:1 ]
+ ifTrue:''
+ ifFalse:[ (ExternalBytes address:pComment) stringAt:1 ]
"Created: / 01-08-2006 / 14:02:55 / fm"
"Modified: / 16-04-2007 / 13:08:39 / cg"
@@ -13387,10 +13407,10 @@
|pName|
Error handle:[:ex |
- Transcript showCR: 'PrinterInfo2 error getting pDriverName - ', ex description.
- pName := 0.
+ Transcript showCR: 'PrinterInfo2 error getting pDriverName - ', ex description.
+ pName := 0.
] do:[
- pName := self unsignedLongAt:(16 + 1).
+ pName := self unsignedLongAt:(16 + 1).
].
pName == 0 ifTrue:[^ ''].
^ (ExternalBytes address:pName) stringAt:1
@@ -13403,18 +13423,18 @@
|pLocation externalBytes|
Error handle:[:ex |
- Transcript showCR: 'PrinterInfo2 error getting pLocation - ', ex description.
- pLocation := 0.
+ Transcript showCR: 'PrinterInfo2 error getting pLocation - ', ex description.
+ pLocation := 0.
] do:[
- pLocation := self unsignedLongAt:(24 + 1).
+ pLocation := self unsignedLongAt:(24 + 1).
].
pLocation == 0 ifTrue:[^ nil].
externalBytes := ExternalBytes address:pLocation.
^ externalBytes isEmpty
- ifTrue:[ nil ]
- ifFalse:[ externalBytes stringAt:1 ]
+ ifTrue:[ nil ]
+ ifFalse:[ externalBytes stringAt:1 ]
"Created: / 01-08-2006 / 14:03:21 / fm"
"Modified: / 18-10-2006 / 12:06:45 / User"
@@ -13426,10 +13446,10 @@
|priority|
Error handle:[:ex |
- Transcript showCR: 'PrinterInfo2 error getting priority - ', ex description.
- priority := 0.
+ Transcript showCR: 'PrinterInfo2 error getting priority - ', ex description.
+ priority := 0.
] do:[
- priority := self unsignedLongAt: 56 + 1
+ priority := self unsignedLongAt: 56 + 1
].
^ priority
@@ -13442,10 +13462,10 @@
|status|
Error handle:[:ex |
- Transcript showCR: 'PrinterInfo2 error getting status - ', ex description.
- status := -1.
+ Transcript showCR: 'PrinterInfo2 error getting status - ', ex description.
+ status := -1.
] do:[
- status := self unsignedLongAt: 72 + 1
+ status := self unsignedLongAt: 72 + 1
].
^ status
@@ -13459,13 +13479,13 @@
"returns a collection of root keyNames"
^ #(
- 'HKEY_CLASSES_ROOT'
- 'HKEY_CURRENT_USER'
- 'HKEY_LOCAL_MACHINE'
- 'HKEY_USERS'
- 'HKEY_PERFORMANCE_DATA'
- 'HKEY_CURRENT_CONFIG'
- 'HKEY_DYN_DATA'
+ 'HKEY_CLASSES_ROOT'
+ 'HKEY_CURRENT_USER'
+ 'HKEY_LOCAL_MACHINE'
+ 'HKEY_USERS'
+ 'HKEY_PERFORMANCE_DATA'
+ 'HKEY_CURRENT_CONFIG'
+ 'HKEY_DYN_DATA'
)
!
@@ -13482,149 +13502,149 @@
Interface to a WIN32 registry.
As this is a private class, access it via
- Win32OperatingSystem registryEntry
+ Win32OperatingSystem registryEntry
[author:]
- Claus Gittinger (initial version & cleanup)
+ Claus Gittinger (initial version & cleanup)
"
!
examples
"
retrieve an existing entry by key:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'
+ [exEnd]
retrieve a non-existing entry by key:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\xxx'
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\xxx'
+ [exEnd]
ask a keys value:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion'.
- Transcript show:'Windows serial NR:'; showCR:(k valueNamed:'ProductId').
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
- Transcript showCR:(k valueNamed:'CurrentVersion').
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion'.
+ Transcript show:'Windows serial NR:'; showCR:(k valueNamed:'ProductId').
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
+ Transcript showCR:(k valueNamed:'CurrentVersion').
+ [exEnd]
create a sub-key (if not already present):
- [exBegin]
- |k subKey|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
- subKey := k createSubKeyNamed:'RegistryDemo'
- [exEnd]
+ [exBegin]
+ |k subKey|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
+ subKey := k createSubKeyNamed:'RegistryDemo'
+ [exEnd]
change a keys value:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X\RegistryDemo'.
- k valueNamed:'FooBarBaz' put:'a foo bar baz string'.
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X\RegistryDemo'.
+ k valueNamed:'FooBarBaz' put:'a foo bar baz string'.
+ [exEnd]
delete a value:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X\RegistryDemo'.
- k deleteValueNamed:'FooBarBaz'.
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X\RegistryDemo'.
+ k deleteValueNamed:'FooBarBaz'.
+ [exEnd]
delete a key:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
- k deleteSubKeyNamed:'RegistryDemo'.
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software\eXept\Smalltalk/X'.
+ k deleteSubKeyNamed:'RegistryDemo'.
+ [exEnd]
enumerate keys:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software'.
- k subKeysDo:[:subKey |
- Transcript showCR:subKey path
- ]
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software'.
+ k subKeysDo:[:subKey |
+ Transcript showCR:subKey path
+ ]
+ [exEnd]
enumerate all keys (recursive):
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software'.
- k allSubKeysDo:[:subKey |
- Transcript showCR:subKey path
- ]
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\Software'.
+ k allSubKeysDo:[:subKey |
+ Transcript showCR:subKey path
+ ]
+ [exEnd]
fetch value by index:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
- Transcript showCR:(k valueNameAtIndex:0)
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
+ Transcript showCR:(k valueNameAtIndex:0)
+ [exEnd]
enumerate value names:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
- k valueNamesDo:[:nm |
- Transcript showCR:nm.
- ]
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
+ k valueNamesDo:[:nm |
+ Transcript showCR:nm.
+ ]
+ [exEnd]
enumerate values:
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
- k valueNamesAndValuesDo:[:nm :val |
- Transcript showCR:(nm , ' -> ' , val storeString).
- ]
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
+ k valueNamesAndValuesDo:[:nm :val |
+ Transcript showCR:(nm , ' -> ' , val storeString).
+ ]
+ [exEnd]
search for a value (where does NT store the domain ?):
- [exBegin]
- |k|
-
- k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\System'.
- k subKeysDo:[:subKey |
- subKey subKeysDo:[:subSubKey |
- |tcp params|
-
- (subSubKey path asLowercase endsWith:'services') ifTrue:[
- tcp := subSubKey subKeyNamed:'tcpip'.
- tcp notNil ifTrue:[
- params := tcp subKeyNamed:'parameters'.
- params notNil ifTrue:[
- Transcript showCR:'Domain is found in ' , params path ,
- ' value: ' , (params valueNamed:'Domain').
- params close.
- ].
- tcp close.
- ]
- ]
- ]
- ]
- [exEnd]
+ [exBegin]
+ |k|
+
+ k := Win32OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\System'.
+ k subKeysDo:[:subKey |
+ subKey subKeysDo:[:subSubKey |
+ |tcp params|
+
+ (subSubKey path asLowercase endsWith:'services') ifTrue:[
+ tcp := subSubKey subKeyNamed:'tcpip'.
+ tcp notNil ifTrue:[
+ params := tcp subKeyNamed:'parameters'.
+ params notNil ifTrue:[
+ Transcript showCR:'Domain is found in ' , params path ,
+ ' value: ' , (params valueNamed:'Domain').
+ params close.
+ ].
+ tcp close.
+ ]
+ ]
+ ]
+ ]
+ [exEnd]
"
@@ -13672,31 +13692,31 @@
HKEY_CLASSES_ROOT isNil ifTrue:[self initialize].
specialKeyStringOrSymbol = #'HKEY_CLASSES_ROOT' ifTrue:[
- ^ HKEY_CLASSES_ROOT.
+ ^ HKEY_CLASSES_ROOT.
].
specialKeyStringOrSymbol = #'HKEY_CURRENT_USER' ifTrue:[
- ^ HKEY_CURRENT_USER.
+ ^ HKEY_CURRENT_USER.
].
specialKeyStringOrSymbol = #'HKEY_LOCAL_MACHINE' ifTrue:[
- ^ HKEY_LOCAL_MACHINE.
+ ^ HKEY_LOCAL_MACHINE.
].
specialKeyStringOrSymbol = #'HKEY_USERS' ifTrue:[
- ^ HKEY_USERS.
+ ^ HKEY_USERS.
].
specialKeyStringOrSymbol = #'HKEY_PERFORMANCE_DATA' ifTrue:[
- ^ HKEY_PERFORMANCE_DATA.
+ ^ HKEY_PERFORMANCE_DATA.
].
specialKeyStringOrSymbol = #'HKEY_CURRENT_CONFIG' ifTrue:[
- ^ HKEY_CURRENT_CONFIG.
+ ^ HKEY_CURRENT_CONFIG.
].
specialKeyStringOrSymbol = #'HKEY_DYN_DATA' ifTrue:[
- ^ HKEY_DYN_DATA.
+ ^ HKEY_DYN_DATA.
].
specialKeyStringOrSymbol = #'HKEY_PERFORMANCE_TEXT' ifTrue:[
- ^ HKEY_PERFORMANCE_TEXT.
+ ^ HKEY_PERFORMANCE_TEXT.
].
specialKeyStringOrSymbol = #'HKEY_PERFORMANCE_NLSTEXT' ifTrue:[
- ^ HKEY_PERFORMANCE_NLSTEXT.
+ ^ HKEY_PERFORMANCE_NLSTEXT.
].
^ nil
@@ -13709,7 +13729,7 @@
"handle image restarts and refetch registry handles"
(something == #returnFromSnapshot) ifTrue:[
- self initialize
+ self initialize
]
"Created: 15.6.1996 / 15:14:03 / cg"
@@ -13722,9 +13742,9 @@
|h newEntry|
aHandleValue isInteger ifTrue:[
- h := ExternalAddress newAddress:aHandleValue
+ h := ExternalAddress newAddress:aHandleValue
] ifFalse:[
- h := aHandleValue
+ h := aHandleValue
].
"/ rootKeys are not registered for RegClose ...
@@ -13762,11 +13782,11 @@
idx := aKeyNamePath indexOf:(self separator).
idx == 0 ifTrue:[
- first := aKeyNamePath.
- rest := nil.
+ first := aKeyNamePath.
+ rest := nil.
] ifFalse:[
- first := aKeyNamePath copyTo:idx-1.
- rest := aKeyNamePath copyFrom:idx+1
+ first := aKeyNamePath copyTo:idx-1.
+ rest := aKeyNamePath copyFrom:idx+1
].
first := first asUppercase.
@@ -13774,17 +13794,17 @@
"/ the first is a pseudo name
root := self rootKey:first.
root isNil ifTrue:[
- ^ nil
+ ^ nil
].
rest size == 0 ifTrue:[
- ^ root
+ ^ root
].
Error handle:[:ex |
- ^ nil
+ ^ nil
] do:[
- ^ root subKeyNamed:rest createIfAbsent:createIfAbsent.
+ ^ root subKeyNamed:rest createIfAbsent:createIfAbsent.
].
"
@@ -13921,7 +13941,7 @@
k := self key:'HKEY_CLASSES_ROOT\MIME\Database\Content Type\',mimeType.
k notNil ifTrue:[
- suffix := k valueNamed:'extension'.
+ suffix := k valueNamed:'extension'.
].
^ suffix
!
@@ -13935,35 +13955,35 @@
suffix isNil ifTrue:[^ nil].
(suffix startsWith:'.') ifTrue:[
- suffix := suffix copyFrom:2
+ suffix := suffix copyFrom:2
].
k := self key:'HKEY_CLASSES_ROOT\.',suffix.
k notNil ifTrue:[
- fkey := (k valueNamed:'').
+ fkey := (k valueNamed:'').
].
fkey isNil ifTrue:[
- fkey := suffix,'_auto_file'
+ fkey := suffix,'_auto_file'
].
fkey notEmptyOrNil ifTrue:[
- redirect := nil.
-
- k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , fkey , '\CurVer').
- k notNil ifTrue:[
- redirect := k defaultValue
- ].
-
- redirect isNil ifTrue:[
- k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , (fkey) , '\shell\',operation,'\command').
- ] ifFalse:[
- k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , (redirect) , '\shell\',operation,'\command').
- ].
-
- k notNil ifTrue:[
- cmd := k defaultValue
- ].
+ redirect := nil.
+
+ k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , fkey , '\CurVer').
+ k notNil ifTrue:[
+ redirect := k defaultValue
+ ].
+
+ redirect isNil ifTrue:[
+ k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , (fkey) , '\shell\',operation,'\command').
+ ] ifFalse:[
+ k := Win32OperatingSystem::RegistryEntry key:('HKEY_CLASSES_ROOT\' , (redirect) , '\shell\',operation,'\command').
+ ].
+
+ k notNil ifTrue:[
+ cmd := k defaultValue
+ ].
].
@@ -13988,8 +14008,8 @@
"
self
- stringValueFor:'Content Type'
- atKey:'HKEY_CLASSES_ROOT\.au'
+ stringValueFor:'Content Type'
+ atKey:'HKEY_CLASSES_ROOT\.au'
"
! !
@@ -14031,26 +14051,26 @@
if (__isExternalAddressLike(__INST(handle))
&& __isStringLike(subKeyString)) {
- myKey = (HKEY)__externalAddressVal(__INST(handle));
- if ((_retVal = RegCreateKey(myKey, __stringVal(subKeyString), &subKey)) == ERROR_SUCCESS) {
- subHandle = __MKEXTERNALADDRESS(subKey);
- } else {
- if ((_retVal != ERROR_PATH_NOT_FOUND)
- && (_retVal != ERROR_FILE_NOT_FOUND)) {
- errorNumber = __MKSMALLINT(_retVal);
- }
- }
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+ if ((_retVal = RegCreateKey(myKey, __stringVal(subKeyString), &subKey)) == ERROR_SUCCESS) {
+ subHandle = __MKEXTERNALADDRESS(subKey);
+ } else {
+ if ((_retVal != ERROR_PATH_NOT_FOUND)
+ && (_retVal != ERROR_FILE_NOT_FOUND)) {
+ errorNumber = __MKSMALLINT(_retVal);
+ }
+ }
}
%}.
subHandle notNil ifTrue:[
- newEntry := self class basicNew
- setHandle:subHandle
- path:(path , self class separator asString , subKeyString).
- newEntry registerForFinalization.
- ^ newEntry.
+ newEntry := self class basicNew
+ setHandle:subHandle
+ path:(path , self class separator asString , subKeyString).
+ newEntry registerForFinalization.
+ ^ newEntry.
].
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ nil
@@ -14074,18 +14094,18 @@
if (__isExternalAddressLike(__INST(handle))
&& __isStringLike(subKeyString)) {
- myKey = (HKEY)__externalAddressVal(__INST(handle));
- if ((_retVal = RegDeleteKey(myKey, __stringVal(subKeyString))) == ERROR_SUCCESS) {
- RETURN (true);
- }
- if ((_retVal != ERROR_PATH_NOT_FOUND)
- && (_retVal != ERROR_FILE_NOT_FOUND)) {
- errorNumber = __MKSMALLINT(_retVal);
- }
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+ if ((_retVal = RegDeleteKey(myKey, __stringVal(subKeyString))) == ERROR_SUCCESS) {
+ RETURN (true);
+ }
+ if ((_retVal != ERROR_PATH_NOT_FOUND)
+ && (_retVal != ERROR_FILE_NOT_FOUND)) {
+ errorNumber = __MKSMALLINT(_retVal);
+ }
}
%}.
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ false
@@ -14109,24 +14129,24 @@
int _retVal;
if (__isExternalAddressLike(__INST(handle)) && __isStringLike(hostName)) {
- myKey = (HKEY)__externalAddressVal(__INST(handle));
- if ((_retVal = RegConnectRegistryA(__stringVal(hostName), myKey, &remoteKey)) == ERROR_SUCCESS) {
- remoteHandle = __MKEXTERNALADDRESS(remoteKey);
- } else {
- if ((_retVal != ERROR_PATH_NOT_FOUND)
- && (_retVal != ERROR_FILE_NOT_FOUND)) {
- errorNumber = __MKSMALLINT(_retVal);
- }
- }
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+ if ((_retVal = RegConnectRegistryA(__stringVal(hostName), myKey, &remoteKey)) == ERROR_SUCCESS) {
+ remoteHandle = __MKEXTERNALADDRESS(remoteKey);
+ } else {
+ if ((_retVal != ERROR_PATH_NOT_FOUND)
+ && (_retVal != ERROR_FILE_NOT_FOUND)) {
+ errorNumber = __MKSMALLINT(_retVal);
+ }
+ }
}
%}.
remoteHandle notNil ifTrue:[
- newEntry := self class basicNew setHandle:remoteHandle path:path.
- newEntry registerForFinalization.
- ^ newEntry.
+ newEntry := self class basicNew setHandle:remoteHandle path:path.
+ newEntry registerForFinalization.
+ ^ newEntry.
].
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ nil
@@ -14173,30 +14193,30 @@
if (__isExternalAddressLike(__INST(handle))
&& __isSmallInteger(subKeyIndex)) {
- myKey = (HKEY)__externalAddressVal(__INST(handle));
- if ((_retVal = RegEnumKeyExA(myKey, __intVal(subKeyIndex),
- nameBuffer, &nameSize,
- NULL,
- classNameBuffer, &classNameSize,
- &modificationTime)) == ERROR_SUCCESS) {
- nameBuffer[nameSize] = '\0';
- classNameBuffer[classNameSize] = '\0';
- subKeyName = __MKSTRING(nameBuffer);
- subKeyClassName = __MKSTRING(classNameBuffer);
- } else {
- if ((_retVal != ERROR_PATH_NOT_FOUND)
- && (_retVal != ERROR_FILE_NOT_FOUND)
- && (_retVal != ERROR_NO_MORE_ITEMS)) {
- errorNumber = __MKSMALLINT(_retVal);
- }
- }
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+ if ((_retVal = RegEnumKeyExA(myKey, __intVal(subKeyIndex),
+ nameBuffer, &nameSize,
+ NULL,
+ classNameBuffer, &classNameSize,
+ &modificationTime)) == ERROR_SUCCESS) {
+ nameBuffer[nameSize] = '\0';
+ classNameBuffer[classNameSize] = '\0';
+ subKeyName = __MKSTRING(nameBuffer);
+ subKeyClassName = __MKSTRING(classNameBuffer);
+ } else {
+ if ((_retVal != ERROR_PATH_NOT_FOUND)
+ && (_retVal != ERROR_FILE_NOT_FOUND)
+ && (_retVal != ERROR_NO_MORE_ITEMS)) {
+ errorNumber = __MKSMALLINT(_retVal);
+ }
+ }
}
%}.
subKeyName notNil ifTrue:[
- ^ self subKeyNamed:subKeyName.
+ ^ self subKeyNamed:subKeyName.
].
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ nil
@@ -14220,28 +14240,28 @@
if (__isExternalAddressLike(__INST(handle))
&& __isStringLike(subKeyString)) {
- myKey = (HKEY)__externalAddressVal(__INST(handle));
- _retVal = RegOpenKey(myKey, __stringVal(subKeyString), &subKey);
- if (_retVal == ERROR_SUCCESS) {
- subHandle = __MKEXTERNALADDRESS(subKey);
- } else {
- if ((_retVal != ERROR_PATH_NOT_FOUND)
- && (_retVal != ERROR_FILE_NOT_FOUND)) {
- errorNumber = __MKSMALLINT(_retVal);
- }
- }
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+ _retVal = RegOpenKey(myKey, __stringVal(subKeyString), &subKey);
+ if (_retVal == ERROR_SUCCESS) {
+ subHandle = __MKEXTERNALADDRESS(subKey);
+ } else {
+ if ((_retVal != ERROR_PATH_NOT_FOUND)
+ && (_retVal != ERROR_FILE_NOT_FOUND)) {
+ errorNumber = __MKSMALLINT(_retVal);
+ }
+ }
}
%}.
subHandle notNil ifTrue:[
- newEntry := self class basicNew
- setHandle:subHandle
- path:((path ? '?') , self class separator asString , subKeyString).
-
- newEntry registerForFinalization.
- ^ newEntry.
+ newEntry := self class basicNew
+ setHandle:subHandle
+ path:((path ? '?') , self class separator asString , subKeyString).
+
+ newEntry registerForFinalization.
+ ^ newEntry.
].
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ nil
@@ -14261,9 +14281,9 @@
|k|
(k := self subKeyNamed:subKeyString) isNil ifTrue:[
- createIfAbsent ifTrue:[
- ^ self createSubKeyNamed:subKeyString
- ].
+ createIfAbsent ifTrue:[
+ ^ self createSubKeyNamed:subKeyString
+ ].
].
^ k
@@ -14282,11 +14302,11 @@
defaultValue:datum
"store a value; the value type depends upon the stored value:
- ByteArray -> REG_BINARY
- String -> REG_SZ
- Array of string -> REG_MULTI_SZ
- Integer -> REG_DWORD
- nil -> REG_NONE
+ ByteArray -> REG_BINARY
+ String -> REG_SZ
+ Array of string -> REG_MULTI_SZ
+ Integer -> REG_DWORD
+ nil -> REG_NONE
"
^ self valueNamed:'' put:datum
@@ -14308,18 +14328,18 @@
if (__isExternalAddressLike(__INST(handle))
&& __isStringLike(aValueName)) {
- myKey = (HKEY)__externalAddressVal(__INST(handle));
- if ((_retVal = RegDeleteValue(myKey, __stringVal(aValueName))) == ERROR_SUCCESS) {
- RETURN (true);
- }
- if ((_retVal != ERROR_PATH_NOT_FOUND)
- && (_retVal != ERROR_FILE_NOT_FOUND)) {
- errorNumber = __MKSMALLINT(_retVal);
- }
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+ if ((_retVal = RegDeleteValue(myKey, __stringVal(aValueName))) == ERROR_SUCCESS) {
+ RETURN (true);
+ }
+ if ((_retVal != ERROR_PATH_NOT_FOUND)
+ && (_retVal != ERROR_FILE_NOT_FOUND)) {
+ errorNumber = __MKSMALLINT(_retVal);
+ }
}
%}.
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ false
!
@@ -14339,24 +14359,24 @@
if (__isExternalAddressLike(__INST(handle))
&& __isSmallInteger(valueIndex)) {
- myKey = (HKEY)__externalAddressVal(__INST(handle));
- if ((_retVal = RegEnumValueA(myKey, __intVal(valueIndex),
- nameBuffer, &nameSize,
- NULL,
- &valueType,
- NULL, NULL)) == ERROR_SUCCESS) {
- nameBuffer[nameSize] = '\0';
- valueName = __MKSTRING(nameBuffer);
- } else {
- if ((_retVal != ERROR_PATH_NOT_FOUND)
- && (_retVal != ERROR_FILE_NOT_FOUND)) {
- errorNumber = __MKSMALLINT(_retVal);
- }
- }
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+ if ((_retVal = RegEnumValueA(myKey, __intVal(valueIndex),
+ nameBuffer, &nameSize,
+ NULL,
+ &valueType,
+ NULL, NULL)) == ERROR_SUCCESS) {
+ nameBuffer[nameSize] = '\0';
+ valueName = __MKSTRING(nameBuffer);
+ } else {
+ if ((_retVal != ERROR_PATH_NOT_FOUND)
+ && (_retVal != ERROR_FILE_NOT_FOUND)) {
+ errorNumber = __MKSMALLINT(_retVal);
+ }
+ }
}
%}.
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ valueName
@@ -14370,11 +14390,11 @@
valueNamed:aValueName
"retrieve a value; the returned object depends upon the type:
- REG_BINARY -> ByteArray
- REG_SZ -> String
- REG_MULTI_SZ -> Array of strings
- REG_DWORD -> Integer
- REG_NONE -> nil
+ REG_BINARY -> ByteArray
+ REG_SZ -> String
+ REG_MULTI_SZ -> Array of strings
+ REG_DWORD -> Integer
+ REG_NONE -> nil
"
|stringArray retVal errorNumber|
@@ -14383,9 +14403,9 @@
HKEY myKey;
DWORD valueType;
union {
- DWORD dWord;
- unsigned char dWordBytes[4];
- unsigned char smallDataBuffer[1024*128];
+ DWORD dWord;
+ unsigned char dWordBytes[4];
+ unsigned char smallDataBuffer[1024*128];
} quickData;
int val;
DWORD dataSize = sizeof(quickData);
@@ -14401,166 +14421,166 @@
if (__isExternalAddressLike(__INST(handle))
&& __isStringLike(aValueName)) {
- int ret;
-
- myKey = (HKEY)__externalAddressVal(__INST(handle));
-
- /*
- * try to get it with one call ...
- */
- ret = RegQueryValueEx(myKey, __stringVal(aValueName),
- NULL,
- &valueType,
- (char *)&quickData,
- &dataSize);
+ int ret;
+
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+
+ /*
+ * try to get it with one call ...
+ */
+ ret = RegQueryValueEx(myKey, __stringVal(aValueName),
+ NULL,
+ &valueType,
+ (char *)&quickData,
+ &dataSize);
#if 0
- console_printf("dataSize=%d\n", dataSize);
-#endif
- while (ret == ERROR_MORE_DATA) {
+ console_printf("dataSize=%d\n", dataSize);
+#endif
+ while (ret == ERROR_MORE_DATA) {
#if 0
- console_printf("ERROR_MORE_DATA dataSize=%d\n", dataSize);
- console_printf("valueType=%d\n", valueType);
-#endif
- /*
- * nope - need another one ...
- */
- if (myKey = HKEY_PERFORMANCE_DATA) {
- dataSize = dataSize * 2;
- }
- switch (valueType) {
- case REG_BINARY:
- case REG_MULTI_SZ:
- dataBuffer = malloc(dataSize);;
- break;
- case REG_SZ:
- dataBuffer = malloc(dataSize);
- break;
- default:
- console_printf("RegistryEntry [warning]: unhandled valueType: %d\n", valueType);
- break;
- }
- if (dataBuffer) {
- ret = RegQueryValueEx(myKey, __stringVal(aValueName),
- NULL,
- &valueType,
- dataBuffer,
- &dataSize);
- } else {
- break;
- }
- if (myKey != HKEY_PERFORMANCE_DATA) {
- if (ret != ERROR_SUCCESS) break;
- }
- }
-
- if (ret == ERROR_SUCCESS) {
+ console_printf("ERROR_MORE_DATA dataSize=%d\n", dataSize);
+ console_printf("valueType=%d\n", valueType);
+#endif
+ /*
+ * nope - need another one ...
+ */
+ if (myKey = HKEY_PERFORMANCE_DATA) {
+ dataSize = dataSize * 2;
+ }
+ switch (valueType) {
+ case REG_BINARY:
+ case REG_MULTI_SZ:
+ dataBuffer = malloc(dataSize);;
+ break;
+ case REG_SZ:
+ dataBuffer = malloc(dataSize);
+ break;
+ default:
+ console_printf("RegistryEntry [warning]: unhandled valueType: %d\n", valueType);
+ break;
+ }
+ if (dataBuffer) {
+ ret = RegQueryValueEx(myKey, __stringVal(aValueName),
+ NULL,
+ &valueType,
+ dataBuffer,
+ &dataSize);
+ } else {
+ break;
+ }
+ if (myKey != HKEY_PERFORMANCE_DATA) {
+ if (ret != ERROR_SUCCESS) break;
+ }
+ }
+
+ if (ret == ERROR_SUCCESS) {
#if 0
- console_printf("ERROR_SUCCESS dataSize=%d\n", dataSize);
- console_printf("valueType=%d\n", valueType);
-#endif
- switch (valueType) {
- case REG_NONE:
- /* RETURN (@symbol(none)); */
- retVal = nil;
- break;
-
- case REG_BINARY:
- retVal = __MKBYTEARRAY(dataBuffer ? dataBuffer : quickData.smallDataBuffer, dataSize);
- break;
-
- case REG_SZ:
- case REG_EXPAND_SZ:
+ console_printf("ERROR_SUCCESS dataSize=%d\n", dataSize);
+ console_printf("valueType=%d\n", valueType);
+#endif
+ switch (valueType) {
+ case REG_NONE:
+ /* RETURN (@symbol(none)); */
+ retVal = nil;
+ break;
+
+ case REG_BINARY:
+ retVal = __MKBYTEARRAY(dataBuffer ? dataBuffer : quickData.smallDataBuffer, dataSize);
+ break;
+
+ case REG_SZ:
+ case REG_EXPAND_SZ:
#ifdef USE_UNICODE
- retVal = __MKU16STRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
-#else
- retVal = __MKSTRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
-#endif
- break;
+ retVal = __MKU16STRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
+#else
+ retVal = __MKSTRING(dataBuffer ? dataBuffer : quickData.smallDataBuffer);
+#endif
+ break;
#if 0
- case REG_DWORD:
- /* int in native format */
- retVal = __MKUINT(quickData.dWord);
- break;
-#endif
- case REG_DWORD_LITTLE_ENDIAN:
- val = quickData.dWordBytes[3];
- val = (val << 8) | quickData.dWordBytes[2];
- val = (val << 8) | quickData.dWordBytes[1];
- val = (val << 8) | quickData.dWordBytes[0];
- retVal = __MKUINT(val);
- break;
-
- case REG_DWORD_BIG_ENDIAN:
- val = quickData.dWordBytes[0];
- val = (val << 8) | quickData.dWordBytes[1];
- val = (val << 8) | quickData.dWordBytes[2];
- val = (val << 8) | quickData.dWordBytes[3];
- retVal = __MKUINT(val);
- break;
-
- case REG_MULTI_SZ:
- {
- CHAR *cp, *cp0;
- int ns, i;
-
- cp0 = dataBuffer ? dataBuffer : quickData.smallDataBuffer;
+ case REG_DWORD:
+ /* int in native format */
+ retVal = __MKUINT(quickData.dWord);
+ break;
+#endif
+ case REG_DWORD_LITTLE_ENDIAN:
+ val = quickData.dWordBytes[3];
+ val = (val << 8) | quickData.dWordBytes[2];
+ val = (val << 8) | quickData.dWordBytes[1];
+ val = (val << 8) | quickData.dWordBytes[0];
+ retVal = __MKUINT(val);
+ break;
+
+ case REG_DWORD_BIG_ENDIAN:
+ val = quickData.dWordBytes[0];
+ val = (val << 8) | quickData.dWordBytes[1];
+ val = (val << 8) | quickData.dWordBytes[2];
+ val = (val << 8) | quickData.dWordBytes[3];
+ retVal = __MKUINT(val);
+ break;
+
+ case REG_MULTI_SZ:
+ {
+ CHAR *cp, *cp0;
+ int ns, i;
+
+ cp0 = dataBuffer ? dataBuffer : quickData.smallDataBuffer;
#if 0
- console_printf("**************\n");
- for (i=0;i<50;i++) {
- console_printf("%x ", cp0[i]);
- }
- console_printf("\n");
- for (i=0;i<50;i++) {
- if (cp0[i] == 0)
- console_printf("\n");
- else
- console_printf("%c", cp0[i]);
- }
- console_printf("\n");
- console_printf("**************\n");
-#endif
- cp = cp0;
- ns = 0;
- while (*cp) {
- while (*cp++) ;;
- ns++;
- }
- stringArray = __ARRAY_NEW_INT(ns);
-
- i = 0;
- while (*cp0) {
- OBJ s;
- CHAR *cp;
-
- cp = cp0;
- while (*cp++) ;;
+ console_printf("**************\n");
+ for (i=0;i<50;i++) {
+ console_printf("%x ", cp0[i]);
+ }
+ console_printf("\n");
+ for (i=0;i<50;i++) {
+ if (cp0[i] == 0)
+ console_printf("\n");
+ else
+ console_printf("%c", cp0[i]);
+ }
+ console_printf("\n");
+ console_printf("**************\n");
+#endif
+ cp = cp0;
+ ns = 0;
+ while (*cp) {
+ while (*cp++) ;;
+ ns++;
+ }
+ stringArray = __ARRAY_NEW_INT(ns);
+
+ i = 0;
+ while (*cp0) {
+ OBJ s;
+ CHAR *cp;
+
+ cp = cp0;
+ while (*cp++) ;;
#ifdef USE_UNICODE
- s = __MKU16STRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
-#else
- s = __MKSTRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
-#endif
- cp0 = cp;
- i++;
- }
- retVal = stringArray;
- break;
- }
- default:
- console_printf("RegistryEntry [warning]: unhandled valueType: %d\n", valueType);
- break;
- }
- } else {
- if ((ret != ERROR_PATH_NOT_FOUND)
- && (ret != ERROR_FILE_NOT_FOUND)) {
- errorNumber = __MKSMALLINT(ret);
- }
- }
+ s = __MKU16STRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
+#else
+ s = __MKSTRING(cp0); __ArrayInstPtr(stringArray)->a_element[i] = s; __STORE(stringArray, s);
+#endif
+ cp0 = cp;
+ i++;
+ }
+ retVal = stringArray;
+ break;
+ }
+ default:
+ console_printf("RegistryEntry [warning]: unhandled valueType: %d\n", valueType);
+ break;
+ }
+ } else {
+ if ((ret != ERROR_PATH_NOT_FOUND)
+ && (ret != ERROR_FILE_NOT_FOUND)) {
+ errorNumber = __MKSMALLINT(ret);
+ }
+ }
}
if (dataBuffer) free(dataBuffer);
%}.
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ retVal
@@ -14575,11 +14595,11 @@
valueNamed:aValueName put:datum
"store a value; the value type depends upon the stored value:
- ByteArray -> REG_BINARY
- String -> REG_SZ
- Array of string -> REG_MULTI_SZ
- Integer -> REG_DWORD
- nil -> REG_NONE
+ ByteArray -> REG_BINARY
+ String -> REG_SZ
+ Array of string -> REG_MULTI_SZ
+ Integer -> REG_DWORD
+ nil -> REG_NONE
"
|data stringArray errorNumber|
@@ -14593,99 +14613,99 @@
if (__isExternalAddressLike(__INST(handle))
&& __isStringLike(aValueName)) {
- int ret;
- OBJ cls;
-
- myKey = (HKEY)__externalAddressVal(__INST(handle));
-
- if (datum == nil) {
- valueType = REG_NONE;
- dataSize = 0;
- } else if (__isSmallInteger(datum)) {
- valueType = REG_DWORD;
- val = __intVal(datum);
- dataPointer = (unsigned char *)(&val);
- dataSize = sizeof(val);
- } else if (__isStringLike(datum)) {
- valueType = REG_SZ;
- dataPointer = __stringVal(datum);
- dataSize = __stringSize(datum) + 1;
- } else if (__Class(datum) == ByteArray) {
- valueType = REG_BINARY;
- dataPointer = __ByteArrayInstPtr(datum)->ba_element;
- dataSize = __byteArraySize(datum);
- } else if (__Class(datum) == LargeInteger) {
- valueType = REG_DWORD;
- val = __longIntVal(datum);
- if (val) {
- dataPointer = (unsigned char *)(&val);
- dataSize = sizeof(val);
- } else {
- datumOk = 0;
- }
- } else if (__Class(datum) == Array) {
- int i = 0, ns = 0, totalSize = 0;
-
- valueType = REG_MULTI_SZ;
-
- /*
- * must allocate a local buffer
- * find size ...
- */
- for (i=0; i<__arraySize(datum); i++) {
- OBJ s = __ArrayInstPtr(datum)->a_element[i];
-
- if (__isStringLike(s)) {
- totalSize += __stringSize(s) + 1;
- } else {
- datumOk = 0;
- break;
- }
- ns++;
- }
- if (datumOk) {
- char *cp;
-
- /*
- * allocate and fill...
- */
- totalSize ++;
- dataPointer = (char *)(malloc(totalSize));
- mustFreeData = 1;
- cp = dataPointer;
- for (i=0; i<__arraySize(datum); i++) {
- OBJ s = __ArrayInstPtr(datum)->a_element[i];
-
- strcpy(cp, __stringVal(s));
- cp += __stringSize(s);
- *cp++ = '\0';
- }
- *cp++ = '\0';
- dataSize = totalSize;
- }
- } else {
- datumOk = 0;
- }
-
- if (datumOk) {
- ret = RegSetValueExA(myKey, __stringVal(aValueName),
- 0, valueType,
- dataPointer, dataSize);
- if (mustFreeData) {
- free(dataPointer);
- }
- if (ret == ERROR_SUCCESS) {
- RETURN (true);
- }
- if ((ret != ERROR_PATH_NOT_FOUND)
- && (ret != ERROR_FILE_NOT_FOUND)) {
- errorNumber = __MKSMALLINT(ret);
- }
- }
+ int ret;
+ OBJ cls;
+
+ myKey = (HKEY)__externalAddressVal(__INST(handle));
+
+ if (datum == nil) {
+ valueType = REG_NONE;
+ dataSize = 0;
+ } else if (__isSmallInteger(datum)) {
+ valueType = REG_DWORD;
+ val = __intVal(datum);
+ dataPointer = (unsigned char *)(&val);
+ dataSize = sizeof(val);
+ } else if (__isStringLike(datum)) {
+ valueType = REG_SZ;
+ dataPointer = __stringVal(datum);
+ dataSize = __stringSize(datum) + 1;
+ } else if (__Class(datum) == ByteArray) {
+ valueType = REG_BINARY;
+ dataPointer = __ByteArrayInstPtr(datum)->ba_element;
+ dataSize = __byteArraySize(datum);
+ } else if (__Class(datum) == LargeInteger) {
+ valueType = REG_DWORD;
+ val = __longIntVal(datum);
+ if (val) {
+ dataPointer = (unsigned char *)(&val);
+ dataSize = sizeof(val);
+ } else {
+ datumOk = 0;
+ }
+ } else if (__Class(datum) == Array) {
+ int i = 0, ns = 0, totalSize = 0;
+
+ valueType = REG_MULTI_SZ;
+
+ /*
+ * must allocate a local buffer
+ * find size ...
+ */
+ for (i=0; i<__arraySize(datum); i++) {
+ OBJ s = __ArrayInstPtr(datum)->a_element[i];
+
+ if (__isStringLike(s)) {
+ totalSize += __stringSize(s) + 1;
+ } else {
+ datumOk = 0;
+ break;
+ }
+ ns++;
+ }
+ if (datumOk) {
+ char *cp;
+
+ /*
+ * allocate and fill...
+ */
+ totalSize ++;
+ dataPointer = (char *)(malloc(totalSize));
+ mustFreeData = 1;
+ cp = dataPointer;
+ for (i=0; i<__arraySize(datum); i++) {
+ OBJ s = __ArrayInstPtr(datum)->a_element[i];
+
+ strcpy(cp, __stringVal(s));
+ cp += __stringSize(s);
+ *cp++ = '\0';
+ }
+ *cp++ = '\0';
+ dataSize = totalSize;
+ }
+ } else {
+ datumOk = 0;
+ }
+
+ if (datumOk) {
+ ret = RegSetValueExA(myKey, __stringVal(aValueName),
+ 0, valueType,
+ dataPointer, dataSize);
+ if (mustFreeData) {
+ free(dataPointer);
+ }
+ if (ret == ERROR_SUCCESS) {
+ RETURN (true);
+ }
+ if ((ret != ERROR_PATH_NOT_FOUND)
+ && (ret != ERROR_FILE_NOT_FOUND)) {
+ errorNumber = __MKSMALLINT(ret);
+ }
+ }
}
%}.
errorNumber notNil ifTrue:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError.
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError.
].
^ false
@@ -14706,14 +14726,14 @@
idx := 0.
[true] whileTrue:[
- subEntry := self subKeyAtIndex:idx.
- subEntry isNil ifTrue:[
- ^self
- ].
- aBlock value:subEntry.
- subEntry allSubKeysDo:aBlock.
- subEntry close.
- idx := idx + 1.
+ subEntry := self subKeyAtIndex:idx.
+ subEntry isNil ifTrue:[
+ ^self
+ ].
+ aBlock value:subEntry.
+ subEntry allSubKeysDo:aBlock.
+ subEntry close.
+ idx := idx + 1.
]
"
@@ -14721,7 +14741,7 @@
top := self key:'HKEY_LOCAL_MACHINE'.
top allSubKeysDo:[:subEntry |
- Transcript showCR:subEntry path
+ Transcript showCR:subEntry path
]
"
!
@@ -14753,13 +14773,13 @@
idx := 0.
[true] whileTrue:[
- subEntry := self subKeyAtIndex:idx.
- subEntry isNil ifTrue:[
- ^self
- ].
- aBlock value:subEntry.
- subEntry close.
- idx := idx + 1.
+ subEntry := self subKeyAtIndex:idx.
+ subEntry isNil ifTrue:[
+ ^self
+ ].
+ aBlock value:subEntry.
+ subEntry close.
+ idx := idx + 1.
]
"
@@ -14767,7 +14787,7 @@
top := self key:'HKEY_LOCAL_MACHINE'.
top subKeysDo:[:subEntry |
- Transcript showCR:subEntry path
+ Transcript showCR:subEntry path
]
"
!
@@ -14776,7 +14796,7 @@
"evaluate aBlock for all value names"
^ Array streamContents:[:s |
- self valueNamesDo:[:nm | s nextPut:nm]
+ self valueNamesDo:[:nm | s nextPut:nm]
].
"Created: / 18-01-2011 / 20:24:52 / cg"
@@ -14786,7 +14806,7 @@
"evaluate aBlock for all value names"
self valueNamesDo:[:nm |
- aBlock value:nm value:(self valueNamed:nm)
+ aBlock value:nm value:(self valueNamed:nm)
]
"
@@ -14794,7 +14814,7 @@
key := self key:'HKEY_LOCAL_MACHINE\SOFTWARE\eXept\Smalltalk/X'.
key valueNamesAndValuesDo:[:nm :val |
- Transcript showCR:(nm , ' -> ' , val storeString).
+ Transcript showCR:(nm , ' -> ' , val storeString).
]
"
!
@@ -14806,12 +14826,12 @@
idx := 0.
[true] whileTrue:[
- valueName := self valueNameAtIndex:idx.
- valueName isNil ifTrue:[
- ^self
- ].
- aBlock value:valueName.
- idx := idx + 1.
+ valueName := self valueNameAtIndex:idx.
+ valueName isNil ifTrue:[
+ ^self
+ ].
+ aBlock value:valueName.
+ idx := idx + 1.
]
! !
@@ -14831,9 +14851,9 @@
HKEY myKey;
if (__isExternalAddressLike(__INST(handle))) {
- myKey = (HKEY)(__externalAddressVal(__INST(handle)));
- __INST(handle) = nil;
- RegCloseKey(myKey);
+ myKey = (HKEY)(__externalAddressVal(__INST(handle)));
+ __INST(handle) = nil;
+ RegCloseKey(myKey);
}
%}
!
@@ -14846,7 +14866,7 @@
"some entry has been collected - close it"
handle notNil ifTrue:[
- self closeKey.
+ self closeKey.
]
"Created: / 19.5.1999 / 22:39:52 / cg"
@@ -14857,10 +14877,10 @@
printOn:aStream
aStream
- nextPutAll:self className;
- nextPut:$(;
- nextPutAll:path;
- nextPut:$).
+ nextPutAll:self className;
+ nextPut:$(;
+ nextPutAll:path;
+ nextPut:$).
! !
!Win32OperatingSystem::RegistryEntry methodsFor:'private'!
@@ -14883,7 +14903,7 @@
key = __longIntVal(integerHandleValue);
if (! key) {
- RETURN (nil);
+ RETURN (nil);
}
t = __MKEXTERNALADDRESS(key); __INST(handle) = t; __STORE(self, t);
@@ -14965,88 +14985,88 @@
BOOL ok;
if ((hFile == 0) || (hFile == INVALID_HANDLE_VALUE)) {
- errSym = @symbol(errorNotOpen);
- goto bad;
+ errSym = @symbol(errorNotOpen);
+ goto bad;
}
if (! __bothSmallInteger(count, firstIndex)) {
- errSym = @symbol(badArgument);
- goto bad;
+ errSym = @symbol(badArgument);
+ goto bad;
}
cntWanted = __smallIntegerVal(count);
if (cntWanted <= 0) {
- errSym = @symbol(badCount);
- goto bad;
+ errSym = @symbol(badCount);
+ goto bad;
}
offs = __smallIntegerVal(firstIndex) - 1;
if (offs < 0) {
- errSym = @symbol(badOffset);
- goto bad;
+ errSym = @symbol(badOffset);
+ goto bad;
}
bufferIsExternalBytes = __isExternalBytesLike(aByteBuffer);
if (! bufferIsExternalBytes) {
- if (__isByteArray(aByteBuffer)) {
- bufferSize = __byteArraySize(aByteBuffer);
- } else if (__isString(aByteBuffer)) { // not isStringLike here !
- bufferSize = __stringSize(aByteBuffer);
- } else {
- errSym = @symbol(badBuffer);
- goto bad;
- }
- if (bufferSize < (cntWanted + offs)) {
- errSym = @symbol(badBufferSize);
- goto bad;
- }
- if (cntWanted <= sizeof(miniBuffer)) {
- extPtr = miniBuffer;
- } else {
- extPtr = malloc(cntWanted);
- mustFreeBuffer = 1;
- }
+ if (__isByteArray(aByteBuffer)) {
+ bufferSize = __byteArraySize(aByteBuffer);
+ } else if (__isString(aByteBuffer)) { // not isStringLike here !
+ bufferSize = __stringSize(aByteBuffer);
+ } else {
+ errSym = @symbol(badBuffer);
+ goto bad;
+ }
+ if (bufferSize < (cntWanted + offs)) {
+ errSym = @symbol(badBufferSize);
+ goto bad;
+ }
+ if (cntWanted <= sizeof(miniBuffer)) {
+ extPtr = miniBuffer;
+ } else {
+ extPtr = malloc(cntWanted);
+ mustFreeBuffer = 1;
+ }
} else {
- OBJ sz;
-
- extPtr = (char *)(__externalBytesAddress(aByteBuffer));
- sz = __externalBytesSize(aByteBuffer);
- if (! __isSmallInteger(sz)) {
- errSym = @symbol(badBufferSize);
- goto bad;
- }
- bufferSize = __smallIntegerVal(sz);
- if (bufferSize < (cntWanted + offs)) {
- errSym = @symbol(badBufferSize);
- goto bad;
- }
- extPtr = extPtr + offs;
+ OBJ sz;
+
+ extPtr = (char *)(__externalBytesAddress(aByteBuffer));
+ sz = __externalBytesSize(aByteBuffer);
+ if (! __isSmallInteger(sz)) {
+ errSym = @symbol(badBufferSize);
+ goto bad;
+ }
+ bufferSize = __smallIntegerVal(sz);
+ if (bufferSize < (cntWanted + offs)) {
+ errSym = @symbol(badBufferSize);
+ goto bad;
+ }
+ extPtr = extPtr + offs;
}
do {
- __threadErrno = 0;
- ok = STX_API_NOINT_CALL5( "ReadFile", ReadFile, hFile, extPtr, cntWanted, &cntRead, 0 /* lpOverlapped */);
+ __threadErrno = 0;
+ ok = STX_API_NOINT_CALL5( "ReadFile", ReadFile, hFile, extPtr, cntWanted, &cntRead, 0 /* lpOverlapped */);
} while(__threadErrno == EINTR);
if (ok == TRUE) {
- if (! bufferIsExternalBytes) {
- /* copy over */
- memcpy(__byteArrayVal(aByteBuffer)+offs, extPtr, cntRead);
- if (mustFreeBuffer) {
- free(extPtr);
- }
- }
- RETURN (__mkSmallInteger(cntRead));
+ if (! bufferIsExternalBytes) {
+ /* copy over */
+ memcpy(__byteArrayVal(aByteBuffer)+offs, extPtr, cntRead);
+ if (mustFreeBuffer) {
+ free(extPtr);
+ }
+ }
+ RETURN (__mkSmallInteger(cntRead));
}
errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
bad: ;
if (mustFreeBuffer) {
- free(extPtr);
+ free(extPtr);
}
%}.
errorNumber isNil ifTrue:[
- self error:'invalid argument(s): ', errSym.
+ self error:'invalid argument(s): ', errSym.
] ifFalse:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError
].
"
@@ -15070,48 +15090,48 @@
INT t;
if ((hFile == 0) || (hFile == INVALID_HANDLE_VALUE)) {
- errSym = @symbol(errorNotOpen);
- goto bad;
+ errSym = @symbol(errorNotOpen);
+ goto bad;
}
#if 0
if (ioctlsocket((SOCKET)hFile, FIONREAD, &res)==0) {
- /* its a socket */
- if (res > 0) {
- RETURN ( false );
- }
+ /* its a socket */
+ if (res > 0) {
+ RETURN ( false );
+ }
}
if (PeekNamedPipe(hFile, 0, 0, 0, &res, 0)) {
- /* its a namedPipe */
- if (res > 0) {
- RETURN ( false );
- }
+ /* its a namedPipe */
+ if (res > 0) {
+ RETURN ( false );
+ }
}
#endif
if (__isSmallInteger(millis)) {
- t = __intVal(millis);
+ t = __intVal(millis);
} else {
- t = INFINITE;
+ t = INFINITE;
}
do {
- __threadErrno = 0;
- res = WaitForSingleObject(hFile, t);
+ __threadErrno = 0;
+ res = WaitForSingleObject(hFile, t);
} while (__threadErrno == EINTR);
switch (res) {
- case WAIT_OBJECT_0:
- /* signalled */
- RETURN ( false );
-
- case WAIT_TIMEOUT:
- /* signalled */
- RETURN ( true );
-
- default:
- case WAIT_ABANDONED:
- errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
- goto bad;
+ case WAIT_OBJECT_0:
+ /* signalled */
+ RETURN ( false );
+
+ case WAIT_TIMEOUT:
+ /* signalled */
+ RETURN ( true );
+
+ default:
+ case WAIT_ABANDONED:
+ errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
+ goto bad;
}
bad: ;
@@ -15126,9 +15146,9 @@
seekTo:newPosition from:whence
"whence is one of:
- #begin
- #current
- #end
+ #begin
+ #current
+ #end
"
|errSym errorNumber|
@@ -15140,42 +15160,42 @@
__uint64__ pos64, newPos64;
if ((hFile == 0) || (hFile == INVALID_HANDLE_VALUE)) {
- errSym = @symbol(errorNotOpen);
- goto bad;
+ errSym = @symbol(errorNotOpen);
+ goto bad;
}
if (whence == @symbol(begin)) {
- moveHow = FILE_BEGIN;
+ moveHow = FILE_BEGIN;
} else if (whence == @symbol(current)) {
- moveHow = FILE_CURRENT;
+ moveHow = FILE_CURRENT;
} else if (whence == @symbol(end)) {
- moveHow = FILE_END;
+ moveHow = FILE_END;
} else {
- errSym = @symbol(badArgument2);
- goto bad;
+ errSym = @symbol(badArgument2);
+ goto bad;
}
if (__signedLong64IntVal(newPosition, &pos64) == 0) {
- errSym = @symbol(badArgument);
- goto bad;
+ errSym = @symbol(badArgument);
+ goto bad;
}
posLo = pos64.lo;
posHi = pos64.hi;
posLo = SetFilePointer(hFile, posLo, &posHi, moveHow);
if (posLo == 0xFFFFFFFF) {
- int lastError;
-
- /* can be either an error, or a valid low-word */
- lastError = GetLastError();
- if (lastError != NO_ERROR) {
- errorNumber = __mkSmallInteger( __WIN32_ERR(lastError) );
- goto bad;
- }
+ int lastError;
+
+ /* can be either an error, or a valid low-word */
+ lastError = GetLastError();
+ if (lastError != NO_ERROR) {
+ errorNumber = __mkSmallInteger( __WIN32_ERR(lastError) );
+ goto bad;
+ }
}
if (posHi == 0) {
- RETURN (__MKUINT( posLo ));
+ RETURN (__MKUINT( posLo ));
}
newPos64.lo = posLo;
newPos64.hi = posHi;
@@ -15186,9 +15206,9 @@
%}.
errorNumber isNil ifTrue:[
- self error:'invalid argument(s): ', errSym.
+ self error:'invalid argument(s): ', errSym.
] ifFalse:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError
].
!
@@ -15209,82 +15229,82 @@
BOOL ok;
if ((hFile == 0) || (hFile == INVALID_HANDLE_VALUE)) {
- errSym = @symbol(errorNotOpen);
- goto bad;
+ errSym = @symbol(errorNotOpen);
+ goto bad;
}
if (! __bothSmallInteger(count, firstIndex)) {
- errSym = @symbol(badArgument);
- goto bad;
+ errSym = @symbol(badArgument);
+ goto bad;
}
cntWanted = __smallIntegerVal(count);
if (cntWanted <= 0) {
- errSym = @symbol(badCount);
- goto bad;
+ errSym = @symbol(badCount);
+ goto bad;
}
offs = __smallIntegerVal(firstIndex) - 1;
if (offs < 0) {
- errSym = @symbol(badOffset);
- goto bad;
+ errSym = @symbol(badOffset);
+ goto bad;
}
bufferIsExternalBytes = __isExternalBytesLike(aByteBuffer);
if (! bufferIsExternalBytes) {
- if (__isByteArray(aByteBuffer)) {
- bufferSize = __byteArraySize(aByteBuffer);
- } else if (__isStringLike(aByteBuffer)) {
- bufferSize = __stringSize(aByteBuffer);
- } else {
- errSym = @symbol(badBuffer);
- goto bad;
- }
- if (bufferSize < (cntWanted + offs)) {
- errSym = @symbol(badBufferSize);
- goto bad;
- }
- if (cntWanted <= sizeof(miniBuffer)) {
- extPtr = miniBuffer;
- } else {
- extPtr = malloc(cntWanted);
- mustFreeBuffer = 1;
- }
- memcpy(extPtr, __byteArrayVal(aByteBuffer)+offs, cntWanted);
+ if (__isByteArray(aByteBuffer)) {
+ bufferSize = __byteArraySize(aByteBuffer);
+ } else if (__isStringLike(aByteBuffer)) {
+ bufferSize = __stringSize(aByteBuffer);
+ } else {
+ errSym = @symbol(badBuffer);
+ goto bad;
+ }
+ if (bufferSize < (cntWanted + offs)) {
+ errSym = @symbol(badBufferSize);
+ goto bad;
+ }
+ if (cntWanted <= sizeof(miniBuffer)) {
+ extPtr = miniBuffer;
+ } else {
+ extPtr = malloc(cntWanted);
+ mustFreeBuffer = 1;
+ }
+ memcpy(extPtr, __byteArrayVal(aByteBuffer)+offs, cntWanted);
} else {
- extPtr = (char *)(__externalBytesAddress(aByteBuffer));
- bufferSize = __externalBytesSize(aByteBuffer);
- if (! __isSmallInteger(bufferSize)) {
- errSym = @symbol(badBufferSize);
- goto bad;
- }
- bufferSize = __smallIntegerVal(bufferSize);
- if (bufferSize < (cntWanted + offs)) {
- errSym = @symbol(badBufferSize);
- goto bad;
- }
- extPtr = extPtr + offs;
+ extPtr = (char *)(__externalBytesAddress(aByteBuffer));
+ bufferSize = __externalBytesSize(aByteBuffer);
+ if (! __isSmallInteger(bufferSize)) {
+ errSym = @symbol(badBufferSize);
+ goto bad;
+ }
+ bufferSize = __smallIntegerVal(bufferSize);
+ if (bufferSize < (cntWanted + offs)) {
+ errSym = @symbol(badBufferSize);
+ goto bad;
+ }
+ extPtr = extPtr + offs;
}
do {
- __threadErrno = 0;
- ok = STX_API_NOINT_CALL5( "WriteFile", WriteFile, hFile, extPtr, cntWanted, &cntWritten, 0 /* lpOverlapped */);
+ __threadErrno = 0;
+ ok = STX_API_NOINT_CALL5( "WriteFile", WriteFile, hFile, extPtr, cntWanted, &cntWritten, 0 /* lpOverlapped */);
} while(__threadErrno == EINTR);
if (ok == TRUE) {
- if (mustFreeBuffer) {
- free(extPtr);
- }
- RETURN (__mkSmallInteger(cntWritten));
+ if (mustFreeBuffer) {
+ free(extPtr);
+ }
+ RETURN (__mkSmallInteger(cntWritten));
}
errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
bad: ;
if (mustFreeBuffer) {
- free(extPtr);
+ free(extPtr);
}
%}.
errorNumber isNil ifTrue:[
- self error:'invalid argument(s): ', errSym.
+ self error:'invalid argument(s): ', errSym.
] ifFalse:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError
].
"
@@ -15313,8 +15333,8 @@
HANDLE h = (HANDLE)(__externalAddressVal(self));
if (h) {
- __externalAddressVal(self) = (HANDLE)0;
- CloseHandle(h);
+ __externalAddressVal(self) = (HANDLE)0;
+ CloseHandle(h);
}
%}.
! !
@@ -15323,7 +15343,7 @@
closeHandle
self address ~~ 0 ifTrue:[
- OperatingSystem primClosePrinter:self.
+ OperatingSystem primClosePrinter:self.
]
"Created: / 27-07-2006 / 14:48:37 / fm"
@@ -15348,9 +15368,9 @@
!Win32OperatingSystem::Win32SerialPortHandle methodsFor:'opening'!
open:portName baudRate:baudRate stopBitsType:stopBitsType
- parityType:parityType dataBits:dataBits
- inFlowCtrl:inFlowCtrlType outFlowCtrl:outFlowCtrlType
- xOnChar:xOnChar xOffChar:xOffChar
+ parityType:parityType dataBits:dataBits
+ inFlowCtrl:inFlowCtrlType outFlowCtrl:outFlowCtrlType
+ xOnChar:xOnChar xOffChar:xOffChar
"portName: COM%d
baudRate: Integer
stopBitsType: #stop1, #stop2 or #stop1_5
@@ -15369,13 +15389,13 @@
DCB dcb;
char *__portName;
int __setBaudRate = 1,
- __setDataBits = 1,
- __setXOnChar = 1,
- __setXOffChar = 1,
- __setInFlowCtrl = 1,
- __setOutFlowCtrl = 1,
- __setStopBits = 1,
- __setParityType = 1;
+ __setDataBits = 1,
+ __setXOnChar = 1,
+ __setXOffChar = 1,
+ __setInFlowCtrl = 1,
+ __setOutFlowCtrl = 1,
+ __setStopBits = 1,
+ __setParityType = 1;
int __baudRate, __dataBits;
int __xOnChar, __xOffChar;
int __inFlowCtrl, __outFlowCtrl;
@@ -15390,90 +15410,90 @@
# define NONE 3
if (__isStringLike(portName)) {
- __portName = __stringVal(portName);
+ __portName = __stringVal(portName);
} else {
- goto failure;
+ goto failure;
}
if (__isSmallInteger(baudRate)) {
- __baudRate = __intVal(baudRate);
+ __baudRate = __intVal(baudRate);
} else if (baudRate == nil) {
- __setBaudRate = 0;
+ __setBaudRate = 0;
} else {
- goto failure;
+ goto failure;
}
if (__isSmallInteger(dataBits)) {
- __dataBits = __intVal(dataBits);
+ __dataBits = __intVal(dataBits);
} else if (dataBits == nil) {
- __setDataBits = 0;
+ __setDataBits = 0;
} else {
- goto failure;
+ goto failure;
}
if (__isSmallInteger(xOnChar)) {
- __xOnChar = __intVal(xOnChar);
+ __xOnChar = __intVal(xOnChar);
} else if (__isCharacter(xOnChar)) {
- __xOnChar = __intVal(_characterVal(xOnChar));
+ __xOnChar = __intVal(_characterVal(xOnChar));
} else if (xOnChar == nil) {
- __setXOnChar = 0;
+ __setXOnChar = 0;
} else {
- goto failure;
+ goto failure;
}
if (__isSmallInteger(xOffChar)) {
- __xOffChar = __intVal(xOffChar);
+ __xOffChar = __intVal(xOffChar);
} else if (__isCharacter(xOffChar)) {
- __xOffChar = __intVal(_characterVal(xOffChar));
+ __xOffChar = __intVal(_characterVal(xOffChar));
} else if (xOffChar == nil) {
- __setXOffChar = 0;
+ __setXOffChar = 0;
} else {
- goto failure;
+ goto failure;
}
if (inFlowCtrlType == @symbol(xOnOff)) {
- __inFlowCtrl = XONOFF;
+ __inFlowCtrl = XONOFF;
} else if (inFlowCtrlType == @symbol(hardware)) {
- __inFlowCtrl = HARDWARE;
+ __inFlowCtrl = HARDWARE;
} else if (inFlowCtrlType == nil) {
- __setInFlowCtrl = 0;
+ __setInFlowCtrl = 0;
} else {
- goto failure;
+ goto failure;
}
if (outFlowCtrlType == @symbol(xOnOff)) {
- __outFlowCtrl = XONOFF;
+ __outFlowCtrl = XONOFF;
} else if (outFlowCtrlType == @symbol(hardware)) {
- __outFlowCtrl = HARDWARE;
+ __outFlowCtrl = HARDWARE;
} else if (outFlowCtrlType == nil) {
- __setOutFlowCtrl = 0;
+ __setOutFlowCtrl = 0;
} else {
- goto failure;
+ goto failure;
}
if (stopBitsType == @symbol(stop1)) {
- __stopBits = STOP1;
+ __stopBits = STOP1;
} else if (stopBitsType == @symbol(stop2)) {
- __stopBits = STOP2;
+ __stopBits = STOP2;
} else if (stopBitsType == @symbol(stop1_5)) {
- __stopBits = STOP1_5;
+ __stopBits = STOP1_5;
} else if (stopBitsType == nil) {
- __setStopBits = 0;
+ __setStopBits = 0;
} else {
- goto failure;
+ goto failure;
}
port = CreateFile(__portName,
- GENERIC_READ | GENERIC_WRITE,
- 0, /* comm devices must be opened with exclusive access */
- NULL, /* no security attrs */
- OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */
- 0, /* no overlapped I/O */
- NULL /* hTemplate must be NULL for comm devices */
- );
+ GENERIC_READ | GENERIC_WRITE,
+ 0, /* comm devices must be opened with exclusive access */
+ NULL, /* no security attrs */
+ OPEN_EXISTING, /* comm devices must use OPEN_EXISTING */
+ 0, /* no overlapped I/O */
+ NULL /* hTemplate must be NULL for comm devices */
+ );
if (port == INVALID_HANDLE_VALUE) {
- console_fprintf(stderr, "Win32OS [info]: serial port open failed\n");
- errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
- goto failure;
+ console_fprintf(stderr, "Win32OS [info]: serial port open failed\n");
+ errorNumber = __mkSmallInteger( __WIN32_ERR(GetLastError()) );
+ goto failure;
}
/* Flush the driver */
PurgeComm( port, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );
@@ -15500,42 +15520,42 @@
if (__setXOffChar) dcb.XoffChar = __xOffChar;
if (__setStopBits) {
- /* set stop bits */
- switch(__stopBits) {
- case STOP1_5: dcb.StopBits = 1; break; /* 1.5 stop bits */
- case STOP1: dcb.StopBits = 0; break; /* 1 stop bit */
- case STOP2: dcb.StopBits = 2; break; /* 2 stop bits */
- default: goto errExit;
- }
+ /* set stop bits */
+ switch(__stopBits) {
+ case STOP1_5: dcb.StopBits = 1; break; /* 1.5 stop bits */
+ case STOP1: dcb.StopBits = 0; break; /* 1 stop bit */
+ case STOP2: dcb.StopBits = 2; break; /* 2 stop bits */
+ default: goto errExit;
+ }
}
if (__setParityType) {
- /* set parity */
- switch(__parityType) {
- case NONE: dcb.Parity = NOPARITY; break;
- case ODD: dcb.Parity = ODDPARITY; break;
- case EVEN: dcb.Parity = EVENPARITY; break;
- default: goto errExit;
- }
+ /* set parity */
+ switch(__parityType) {
+ case NONE: dcb.Parity = NOPARITY; break;
+ case ODD: dcb.Parity = ODDPARITY; break;
+ case EVEN: dcb.Parity = EVENPARITY; break;
+ default: goto errExit;
+ }
}
if (__setInFlowCtrl) {
- /* set control flow */
- dcb.fInX = FALSE;
- dcb.fDtrControl = FALSE;
- if (__inFlowCtrl == XONOFF) dcb.fInX = TRUE; /* XOn/XOff handshaking */
- if (__inFlowCtrl == HARDWARE) dcb.fDtrControl = TRUE; /* hardware handshaking */
+ /* set control flow */
+ dcb.fInX = FALSE;
+ dcb.fDtrControl = FALSE;
+ if (__inFlowCtrl == XONOFF) dcb.fInX = TRUE; /* XOn/XOff handshaking */
+ if (__inFlowCtrl == HARDWARE) dcb.fDtrControl = TRUE; /* hardware handshaking */
}
if (__setOutFlowCtrl) {
- dcb.fOutX = FALSE;
- dcb.fOutxCtsFlow = FALSE;
-
- if (__outFlowCtrl == XONOFF) dcb.fOutX = TRUE; /* XOn/XOff handshaking */
- if (__outFlowCtrl == HARDWARE) dcb.fOutxCtsFlow = TRUE; /* hardware handshaking */
+ dcb.fOutX = FALSE;
+ dcb.fOutxCtsFlow = FALSE;
+
+ if (__outFlowCtrl == XONOFF) dcb.fOutX = TRUE; /* XOn/XOff handshaking */
+ if (__outFlowCtrl == HARDWARE) dcb.fOutxCtsFlow = TRUE; /* hardware handshaking */
}
if (SetCommState(port, &dcb)) {
- RETURN( true );
+ RETURN( true );
}
console_fprintf(stderr, "Win32OS [info]: serial port comm-setup failed\n");
@@ -15555,9 +15575,9 @@
# undef NONE
%}.
errorNumber isNil ifTrue:[
- self error:'invalid argument(s)'.
+ self error:'invalid argument(s)'.
] ifFalse:[
- (OperatingSystem errorHolderForNumber:errorNumber) reportError
+ (OperatingSystem errorHolderForNumber:errorNumber) reportError
].
! !
@@ -15570,9 +15590,9 @@
HANDLE port = (HANDLE)(__externalAddressVal(self));
if (port) {
- __externalAddressVal(self) = (HANDLE)0;
- PurgeComm( port, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );
- CloseHandle(port);
+ __externalAddressVal(self) = (HANDLE)0;
+ PurgeComm( port, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR );
+ CloseHandle(port);
}
%}.
! !
@@ -15585,18 +15605,18 @@
if (port
&& __isSmallInteger(newRate)) {
- DCB dcb;
-
- ZeroMemory(&dcb, sizeof(dcb));
- dcb.DCBlength = sizeof(dcb);
- GetCommState(port, &dcb);
-
- dcb.BaudRate = __intVal(newRate);
-
- if (! SetCommState(port, &dcb)) {
- RETURN(false);
- }
- RETURN(true);
+ DCB dcb;
+
+ ZeroMemory(&dcb, sizeof(dcb));
+ dcb.DCBlength = sizeof(dcb);
+ GetCommState(port, &dcb);
+
+ dcb.BaudRate = __intVal(newRate);
+
+ if (! SetCommState(port, &dcb)) {
+ RETURN(false);
+ }
+ RETURN(true);
}
%}.
self primitiveFailed.
@@ -15608,18 +15628,18 @@
if (port
&& __isSmallInteger(newNumberOfBits)) {
- DCB dcb;
-
- ZeroMemory(&dcb, sizeof(dcb));
- dcb.DCBlength = sizeof(dcb);
- GetCommState(port, &dcb);
-
- dcb.ByteSize = __intVal(newNumberOfBits);
-
- if (! SetCommState(port, &dcb)) {
- RETURN(false);
- }
- RETURN(true);
+ DCB dcb;
+
+ ZeroMemory(&dcb, sizeof(dcb));
+ dcb.DCBlength = sizeof(dcb);
+ GetCommState(port, &dcb);
+
+ dcb.ByteSize = __intVal(newNumberOfBits);
+
+ if (! SetCommState(port, &dcb)) {
+ RETURN(false);
+ }
+ RETURN(true);
}
%}.
self primitiveFailed.
@@ -15632,27 +15652,27 @@
HANDLE port = (HANDLE)(__externalAddressVal(self));
if (port) {
- DCB dcb;
-
- ZeroMemory(&dcb, sizeof(dcb));
- dcb.DCBlength = sizeof(dcb);
- GetCommState(port, &dcb);
-
-
- if ((newParityTypeSymbol == nil) || (newParityTypeSymbol == @symbol(none))) {
- dcb.Parity = NOPARITY;
- } else if (newParityTypeSymbol == @symbol(odd)) {
- dcb.Parity = ODDPARITY;
- } else if (newParityTypeSymbol == @symbol(even)) {
- dcb.Parity = EVENPARITY;
- } else {
- goto failure;
- }
-
- if (! SetCommState(port, &dcb)) {
- RETURN(false);
- }
- RETURN(true);
+ DCB dcb;
+
+ ZeroMemory(&dcb, sizeof(dcb));
+ dcb.DCBlength = sizeof(dcb);
+ GetCommState(port, &dcb);
+
+
+ if ((newParityTypeSymbol == nil) || (newParityTypeSymbol == @symbol(none))) {
+ dcb.Parity = NOPARITY;
+ } else if (newParityTypeSymbol == @symbol(odd)) {
+ dcb.Parity = ODDPARITY;
+ } else if (newParityTypeSymbol == @symbol(even)) {
+ dcb.Parity = EVENPARITY;
+ } else {
+ goto failure;
+ }
+
+ if (! SetCommState(port, &dcb)) {
+ RETURN(false);
+ }
+ RETURN(true);
}
failure: ;
%}.
@@ -15665,26 +15685,26 @@
HANDLE port = (HANDLE)(__externalAddressVal(self));
if (port) {
- DCB dcb;
-
- ZeroMemory(&dcb, sizeof(dcb));
- dcb.DCBlength = sizeof(dcb);
- GetCommState(port, &dcb);
-
- if (newStopBitsSymbol == @symbol(stop1)) {
- dcb.Parity = 0 /* STOP1 */;
- } else if (newStopBitsSymbol == @symbol(stop2)) {
- dcb.Parity = 2 /* STOP2 */;
- } else if (newStopBitsSymbol == @symbol(stop1_5)) {
- dcb.Parity = 1 /* STOP1_5 */;
- } else {
- goto failure;
- }
-
- if (! SetCommState(port, &dcb)) {
- RETURN(false);
- }
- RETURN(true);
+ DCB dcb;
+
+ ZeroMemory(&dcb, sizeof(dcb));
+ dcb.DCBlength = sizeof(dcb);
+ GetCommState(port, &dcb);
+
+ if (newStopBitsSymbol == @symbol(stop1)) {
+ dcb.Parity = 0 /* STOP1 */;
+ } else if (newStopBitsSymbol == @symbol(stop2)) {
+ dcb.Parity = 2 /* STOP2 */;
+ } else if (newStopBitsSymbol == @symbol(stop1_5)) {
+ dcb.Parity = 1 /* STOP1_5 */;
+ } else {
+ goto failure;
+ }
+
+ if (! SetCommState(port, &dcb)) {
+ RETURN(false);
+ }
+ RETURN(true);
}
failure: ;
%}.
@@ -15742,10 +15762,10 @@
type := OperatingSystem socketTypeCodeOf:typeArg.
proto := self protocolCodeOf:protoArg.
serviceNameArg notNil ifTrue:[
- serviceName := serviceNameArg printString. "convert integer port numbers"
- serviceNameArg isInteger ifTrue:[
- port := serviceNameArg.
- ].
+ serviceName := serviceNameArg printString. "convert integer port numbers"
+ serviceNameArg isInteger ifTrue:[
+ port := serviceNameArg.
+ ].
]. "ifFalse:[serviceName := nil]"
%{ /* STACK:32000 */
@@ -15754,24 +15774,24 @@
int ret, cnt = 0;
if (hostName == nil) {
- __hostName = 0;
+ __hostName = 0;
} else if (__isStringLike(hostName)) {
- __hostName = __stringVal(hostName);
+ __hostName = __stringVal(hostName);
} else {
- error = @symbol(badArgument1);
- goto exitPrim;
+ error = @symbol(badArgument1);
+ goto exitPrim;
}
if (serviceName == nil) {
- __serviceName = 0;
+ __serviceName = 0;
} else if (__isStringLike(serviceName)) {
- __serviceName = __stringVal(serviceName);
+ __serviceName = __stringVal(serviceName);
} else {
- error = @symbol(badArgument2);
- goto exitPrim;
+ error = @symbol(badArgument2);
+ goto exitPrim;
}
if (__hostName == 0 && __serviceName == 0) {
- error = @symbol(badArgument);
- goto exitPrim;
+ error = @symbol(badArgument);
+ goto exitPrim;
}
{
@@ -15784,121 +15804,121 @@
memset(&hints, 0, sizeof(hints));
if (__isSmallInteger(domain))
- hints.ai_family = __intVal(domain);
+ hints.ai_family = __intVal(domain);
if (__isSmallInteger(type))
- hints.ai_socktype = __intVal(type);
+ hints.ai_socktype = __intVal(type);
if (__isSmallInteger(proto))
- hints.ai_protocol = __intVal(proto);
+ hints.ai_protocol = __intVal(proto);
do {
- /* must refetch in loop */
- if (hostName == nil) {
- __hostName = 0;
- } else if (__isStringLike(hostName)) {
- __hostName = __stringVal(hostName);
- }
- if (serviceName == nil) {
- __serviceName = 0;
- } else if (__isStringLike(serviceName)) {
- __serviceName = __stringVal(serviceName);
- }
+ /* must refetch in loop */
+ if (hostName == nil) {
+ __hostName = 0;
+ } else if (__isStringLike(hostName)) {
+ __hostName = __stringVal(hostName);
+ }
+ if (serviceName == nil) {
+ __serviceName = 0;
+ } else if (__isStringLike(serviceName)) {
+ __serviceName = __stringVal(serviceName);
+ }
# ifdef DO_WRAP_CALLS
- do {
- __threadErrno = 0;
- res = STX_WSA_NOINT_CALL4( "getaddrinfo", getaddrinfo, __hostName, __serviceName, &hints, &info);
- } while ((res < 0) && (__threadErrno == EINTR));
+ do {
+ __threadErrno = 0;
+ res = STX_WSA_NOINT_CALL4( "getaddrinfo", getaddrinfo, __hostName, __serviceName, &hints, &info);
+ } while ((res < 0) && (__threadErrno == EINTR));
# else
- __BEGIN_INTERRUPTABLE__
- ret = getaddrinfo(__hostName, __serviceName, &hints, &info);
- __END_INTERRUPTABLE__
+ __BEGIN_INTERRUPTABLE__
+ ret = getaddrinfo(__hostName, __serviceName, &hints, &info);
+ __END_INTERRUPTABLE__
# endif
} while (ret == EAI_SYSTEM && errno == EINTR);
if (ret != 0) {
- switch (ret) {
- case EAI_FAMILY:
- error = @symbol(badProtocol);
- break;
- case EAI_SOCKTYPE:
- error = @symbol(badSocketType);
- break;
- case EAI_BADFLAGS:
- error = @symbol(badFlags);
- break;
- case EAI_NONAME:
- error = @symbol(unknownHost);
- break;
- case EAI_SERVICE:
- error = @symbol(unknownService);
- break;
- case EAI_ADDRFAMILY :
- error = @symbol(unknownHostForProtocol);
- break;
- case EAI_NODATA:
- error = @symbol(noAddress);
- break;
- case EAI_MEMORY:
- error = @symbol(allocationFailure);
- break;
- case EAI_FAIL:
- error = @symbol(permanentFailure);
- break;
- case EAI_AGAIN:
- error = @symbol(tryAgain);
- break;
- case EAI_SYSTEM:
- error = @symbol(systemError);
- break;
- default:
- error = @symbol(unknownError);
- }
- errorString = __MKSTRING(gai_strerror(ret));
- goto err;
+ switch (ret) {
+ case EAI_FAMILY:
+ error = @symbol(badProtocol);
+ break;
+ case EAI_SOCKTYPE:
+ error = @symbol(badSocketType);
+ break;
+ case EAI_BADFLAGS:
+ error = @symbol(badFlags);
+ break;
+ case EAI_NONAME:
+ error = @symbol(unknownHost);
+ break;
+ case EAI_SERVICE:
+ error = @symbol(unknownService);
+ break;
+ case EAI_ADDRFAMILY :
+ error = @symbol(unknownHostForProtocol);
+ break;
+ case EAI_NODATA:
+ error = @symbol(noAddress);
+ break;
+ case EAI_MEMORY:
+ error = @symbol(allocationFailure);
+ break;
+ case EAI_FAIL:
+ error = @symbol(permanentFailure);
+ break;
+ case EAI_AGAIN:
+ error = @symbol(tryAgain);
+ break;
+ case EAI_SYSTEM:
+ error = @symbol(systemError);
+ break;
+ default:
+ error = @symbol(unknownError);
+ }
+ errorString = __MKSTRING(gai_strerror(ret));
+ goto err;
}
for (cnt=0, infop=info; infop; infop=infop->ai_next)
- cnt++;
+ cnt++;
result = __ARRAY_NEW_INT(cnt);
if (result == nil) {
- error = @symbol(allocationFailure);
- goto err;
+ error = @symbol(allocationFailure);
+ goto err;
}
for (infop=info, cnt=0; infop; infop=infop->ai_next, cnt++) {
- OBJ o, resp;
-
- resp = __ARRAY_NEW_INT(6);
- if (resp == nil) {
- error = @symbol(allocationFailure);
- goto err;
- }
-
- __ArrayInstPtr(result)->a_element[cnt] = resp; __STORE(result, resp);
-
- __ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(infop->ai_flags);
- __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(infop->ai_family);
- __ArrayInstPtr(resp)->a_element[2] = __mkSmallInteger(infop->ai_socktype);
- __ArrayInstPtr(resp)->a_element[3] = __mkSmallInteger(infop->ai_protocol);
-
- __PROTECT__(resp);
- o = __BYTEARRAY_NEW_INT(infop->ai_addrlen);
- __UNPROTECT__(resp);
- if (o == nil) {
- error = @symbol(allocationFailure);
- goto err;
- }
- memcpy(__byteArrayVal(o), infop->ai_addr, infop->ai_addrlen);
+ OBJ o, resp;
+
+ resp = __ARRAY_NEW_INT(6);
+ if (resp == nil) {
+ error = @symbol(allocationFailure);
+ goto err;
+ }
+
+ __ArrayInstPtr(result)->a_element[cnt] = resp; __STORE(result, resp);
+
+ __ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(infop->ai_flags);
+ __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(infop->ai_family);
+ __ArrayInstPtr(resp)->a_element[2] = __mkSmallInteger(infop->ai_socktype);
+ __ArrayInstPtr(resp)->a_element[3] = __mkSmallInteger(infop->ai_protocol);
+
+ __PROTECT__(resp);
+ o = __BYTEARRAY_NEW_INT(infop->ai_addrlen);
+ __UNPROTECT__(resp);
+ if (o == nil) {
+ error = @symbol(allocationFailure);
+ goto err;
+ }
+ memcpy(__byteArrayVal(o), infop->ai_addr, infop->ai_addrlen);
__ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
- if (infop->ai_canonname) {
- __PROTECT__(resp);
- o = __MKSTRING(infop->ai_canonname);
- __UNPROTECT__(resp);
- if (o == nil) {
- error = @symbol(allocationFailure);
- goto err;
- }
- __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
- }
+ if (infop->ai_canonname) {
+ __PROTECT__(resp);
+ o = __MKSTRING(infop->ai_canonname);
+ __UNPROTECT__(resp);
+ if (o == nil) {
+ error = @symbol(allocationFailure);
+ goto err;
+ }
+ __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
+ }
}
err:
@@ -15915,148 +15935,148 @@
int i;
if (__isSmallInteger(port)) {
- __port = htons(__smallIntegerVal(port));
+ __port = htons(__smallIntegerVal(port));
} else if (__serviceName) {
- struct servent *sp;
- char *__proto = 0;
-
- if (__isStringLike(protoArg))
- __proto = __stringVal(protoArg);
-
- sp = getservbyname(__serviceName, __proto);
- if (sp == NULL) {
- __port = atoi(__serviceName);
- if (__port <= 0) {
- errorString = @symbol(unknownService);
- error = __mkSmallInteger(-3);
- goto err;
- }
- __port = htons(__port);
- } else
- __port = sp->s_port;
+ struct servent *sp;
+ char *__proto = 0;
+
+ if (__isStringLike(protoArg))
+ __proto = __stringVal(protoArg);
+
+ sp = getservbyname(__serviceName, __proto);
+ if (sp == NULL) {
+ __port = atoi(__serviceName);
+ if (__port <= 0) {
+ errorString = @symbol(unknownService);
+ error = __mkSmallInteger(-3);
+ goto err;
+ }
+ __port = htons(__port);
+ } else
+ __port = sp->s_port;
}
if (__hostName) {
# ifdef USE_H_ERRNO
- do {
- /* must refetch in loop */
- if (hostName == nil) {
- __hostName = 0;
- } else if (__isStringLike(hostName)) {
- __hostName = __stringVal(hostName);
- }
+ do {
+ /* must refetch in loop */
+ if (hostName == nil) {
+ __hostName = 0;
+ } else if (__isStringLike(hostName)) {
+ __hostName = __stringVal(hostName);
+ }
# ifdef DO_WRAP_CALLS
- hp = STX_WSA_NOINT_CALL1("gethostbyname", gethostbyname, __hostName);
- if ((INT)hp < 0) hp = NULL;
+ hp = STX_WSA_NOINT_CALL1("gethostbyname", gethostbyname, __hostName);
+ if ((INT)hp < 0) hp = NULL;
# else
- /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname
- * uses a static data area
- */
- __BEGIN_INTERRUPTABLE__
- hp = gethostbyname(__hostName);
- __END_INTERRUPTABLE__
-#endif
- } while ((hp == NULL)
- && (
- (h_errno == TRY_AGAIN)
- || errno == EINTR
+ /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname
+ * uses a static data area
+ */
+ __BEGIN_INTERRUPTABLE__
+ hp = gethostbyname(__hostName);
+ __END_INTERRUPTABLE__
+#endif
+ } while ((hp == NULL)
+ && (
+ (h_errno == TRY_AGAIN)
+ || errno == EINTR
# ifdef IRIX5_3
- || (errno == ECONNREFUSED)
+ || (errno == ECONNREFUSED)
# endif
- )
- );
- if (hp == 0) {
- switch (h_errno) {
- case HOST_NOT_FOUND:
- errorString = @symbol(unknownHost);
- break;
- case NO_ADDRESS:
- errorString = @symbol(noAddress);
- break;
- case NO_RECOVERY:
- errorString = @symbol(permanentFailure);
- break;
- case TRY_AGAIN:
- errorString = @symbol(tryAgain);
- break;
- default:
- errorString = @symbol(unknownError);
- break;
- }
- error = __mkSmallInteger(h_errno);
- goto err;
- }
+ )
+ );
+ if (hp == 0) {
+ switch (h_errno) {
+ case HOST_NOT_FOUND:
+ errorString = @symbol(unknownHost);
+ break;
+ case NO_ADDRESS:
+ errorString = @symbol(noAddress);
+ break;
+ case NO_RECOVERY:
+ errorString = @symbol(permanentFailure);
+ break;
+ case TRY_AGAIN:
+ errorString = @symbol(tryAgain);
+ break;
+ default:
+ errorString = @symbol(unknownError);
+ break;
+ }
+ error = __mkSmallInteger(h_errno);
+ goto err;
+ }
# else /* !USE_H_ERRNO */
- hp = gethostbyname(__hostName);
- if (hp == 0) {
- errorString = @symbol(unknownHost);
- error = __mkSmallInteger(-1);
- goto err;
- }
+ hp = gethostbyname(__hostName);
+ if (hp == 0) {
+ errorString = @symbol(unknownHost);
+ error = __mkSmallInteger(-1);
+ goto err;
+ }
# endif /* !USE_H_ERRNO*/
- if (__isSmallInteger(domain) && hp->h_addrtype != __smallIntegerVal(domain)) {
- errorString = @symbol(unknownHost);
- error = __mkSmallInteger(-2);
- goto err;
- }
-
- for (cnt = 0, addrpp = hp->h_addr_list; *addrpp; addrpp++)
- cnt++;
- addrpp = hp->h_addr_list;
+ if (__isSmallInteger(domain) && hp->h_addrtype != __smallIntegerVal(domain)) {
+ errorString = @symbol(unknownHost);
+ error = __mkSmallInteger(-2);
+ goto err;
+ }
+
+ for (cnt = 0, addrpp = hp->h_addr_list; *addrpp; addrpp++)
+ cnt++;
+ addrpp = hp->h_addr_list;
} else {
- cnt = 1;
+ cnt = 1;
}
result = __ARRAY_NEW_INT(cnt);
if (result == nil) {
- error = @symbol(allocationFailure);
- goto err;
+ error = @symbol(allocationFailure);
+ goto err;
}
for (i = 0; i < cnt; i++) {
- OBJ o, resp;
- struct sockaddr_in *sa;
-
- resp = __ARRAY_NEW_INT(6);
- if (resp == nil) {
- error = @symbol(allocationFailure);
- goto err;
- }
-
- __ArrayInstPtr(result)->a_element[i] = resp; __STORE(result, resp);
- __ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(0);
- __ArrayInstPtr(resp)->a_element[2] = type; __STORE(result, type);
- __ArrayInstPtr(resp)->a_element[3] = proto; __STORE(result, proto);
- __PROTECT__(resp);
- o = __BYTEARRAY_NEW_INT(sizeof(*sa));
- __UNPROTECT__(resp);
- if (o == nil) {
- error = @symbol(allocationFailure);
- goto err;
- }
- __ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
- sa = (struct sockaddr_in *)__byteArrayVal(o);
- sa->sin_port = __port;
-
- if (__hostName) {
- sa->sin_family = hp->h_addrtype;
- memcpy(&sa->sin_addr, *addrpp, hp->h_length);
- __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(hp->h_addrtype);
- if (hp->h_name) {
- __PROTECT__(resp);
- o = __MKSTRING(hp->h_name);
- __UNPROTECT__(resp);
- if (o == nil) {
- error = @symbol(allocationFailure);
- goto err;
- }
- __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
- }
- addrpp++;
- } else{
- __ArrayInstPtr(resp)->a_element[1] = domain; __STORE(resp, domain);
- }
+ OBJ o, resp;
+ struct sockaddr_in *sa;
+
+ resp = __ARRAY_NEW_INT(6);
+ if (resp == nil) {
+ error = @symbol(allocationFailure);
+ goto err;
+ }
+
+ __ArrayInstPtr(result)->a_element[i] = resp; __STORE(result, resp);
+ __ArrayInstPtr(resp)->a_element[0] = __mkSmallInteger(0);
+ __ArrayInstPtr(resp)->a_element[2] = type; __STORE(result, type);
+ __ArrayInstPtr(resp)->a_element[3] = proto; __STORE(result, proto);
+ __PROTECT__(resp);
+ o = __BYTEARRAY_NEW_INT(sizeof(*sa));
+ __UNPROTECT__(resp);
+ if (o == nil) {
+ error = @symbol(allocationFailure);
+ goto err;
+ }
+ __ArrayInstPtr(resp)->a_element[4] = o; __STORE(resp, o);
+ sa = (struct sockaddr_in *)__byteArrayVal(o);
+ sa->sin_port = __port;
+
+ if (__hostName) {
+ sa->sin_family = hp->h_addrtype;
+ memcpy(&sa->sin_addr, *addrpp, hp->h_length);
+ __ArrayInstPtr(resp)->a_element[1] = __mkSmallInteger(hp->h_addrtype);
+ if (hp->h_name) {
+ __PROTECT__(resp);
+ o = __MKSTRING(hp->h_name);
+ __UNPROTECT__(resp);
+ if (o == nil) {
+ error = @symbol(allocationFailure);
+ goto err;
+ }
+ __ArrayInstPtr(resp)->a_element[5] = o; __STORE(resp, o);
+ }
+ addrpp++;
+ } else{
+ __ArrayInstPtr(resp)->a_element[1] = domain; __STORE(resp, domain);
+ }
}
err:;
@@ -16068,58 +16088,58 @@
exitPrim:;
%}.
error notNil ifTrue:[
- |request|
- request := SocketAddressInfo new
- domain:domainArg;
- type:typeArg;
- protocol:protoArg;
- canonicalName:hostName;
- serviceName:serviceName.
- ^ (HostNameLookupError new
- parameter:error;
- messageText:' - ', (errorString ? error printString);
- request:request) raiseRequest.
+ |request|
+ request := SocketAddressInfo new
+ domain:domainArg;
+ type:typeArg;
+ protocol:protoArg;
+ canonicalName:hostName;
+ serviceName:serviceName.
+ ^ (HostNameLookupError new
+ parameter:error;
+ messageText:' - ', (errorString ? error printString);
+ request:request) raiseRequest.
].
1 to:result size do:[:i |
- |entry dom info|
-
- info := SocketAddressInfo new.
- entry := result at:i.
- info flags:(entry at:1).
- info domain:(dom := OperatingSystem domainSymbolOf:(entry at:2)).
- info type:(OperatingSystem socketTypeSymbolOf:(entry at:3)).
- info protocol:(self protocolSymbolOf:(entry at:4)).
- info socketAddress:((SocketAddress newDomain:dom) fromBytes:(entry at:5)).
- info canonicalName:(entry at:6).
- result at:i put:info
+ |entry dom info|
+
+ info := SocketAddressInfo new.
+ entry := result at:i.
+ info flags:(entry at:1).
+ info domain:(dom := OperatingSystem domainSymbolOf:(entry at:2)).
+ info type:(OperatingSystem socketTypeSymbolOf:(entry at:3)).
+ info protocol:(self protocolSymbolOf:(entry at:4)).
+ info socketAddress:((SocketAddress newDomain:dom) fromBytes:(entry at:5)).
+ info canonicalName:(entry at:6).
+ result at:i put:info
].
^ result
"
self getAddressInfo:'localhost' serviceName:nil
- domain:nil type:nil protocol:nil flags:nil
+ domain:nil type:nil protocol:nil flags:nil
self getAddressInfo:'localhost' serviceName:nil
- domain:#inet type:#stream protocol:nil flags:nil
+ domain:#inet type:#stream protocol:nil flags:nil
self getAddressInfo:'localhost' serviceName:nil
- domain:#inet type:#stream protocol:#tcp flags:nil
+ domain:#inet type:#stream protocol:#tcp flags:nil
self getAddressInfo:'localhost' serviceName:10
- domain:#inet type:#stream protocol:#tcp flags:nil
+ domain:#inet type:#stream protocol:#tcp flags:nil
self getAddressInfo:'localhost' serviceName:'10'
- domain:#inet type:#stream protocol:#tcp flags:nil
+ domain:#inet type:#stream protocol:#tcp flags:nil
self getAddressInfo:'blurb.exept.de' serviceName:nil
- domain:#inet type:nil protocol:nil flags:nil
+ domain:#inet type:nil protocol:nil flags:nil
self getAddressInfo:'1.2.3.4' serviceName:'bla'
- domain:#inet type:nil protocol:nil flags:nil
+ domain:#inet type:nil protocol:nil flags:nil
self getAddressInfo:'localhost' serviceName:'echo'
- domain:#inet type:nil protocol:nil flags:nil
+ domain:#inet type:nil protocol:nil flags:nil
self getAddressInfo:nil serviceName:'echo'
- domain:#inet type:nil protocol:nil flags:nil
+ domain:#inet type:nil protocol:nil flags:nil
self getAddressInfo:nil serviceName:nil
- domain:#inet type:nil protocol:nil flags:nil
+ domain:#inet type:nil protocol:nil flags:nil
self getAddressInfo:'www.google.de' serviceName:nil
- domain:nil type:nil protocol:nil flags:nil
+ domain:nil type:nil protocol:nil flags:nil
self getAddressInfo:'smc1' serviceName:nil
- domain:nil type:nil protocol:nil flags:nil
+ domain:nil type:nil protocol:nil flags:nil
"
!
@@ -16149,20 +16169,20 @@
int nInstBytes, sockAddrSize;
if (wantHostName == true) {
- hp = host;
- hsz = sizeof(host);
+ hp = host;
+ hsz = sizeof(host);
}
if (wantServiceName == true) {
- sp = service;
- ssz = sizeof(service);
+ sp = service;
+ ssz = sizeof(service);
}
if (hp == 0 && sp == 0) {
- error = @symbol(badArgument);
- goto err;
+ error = @symbol(badArgument);
+ goto err;
}
if (!__isBytes(socketAddress)) {
- error = @symbol(badArgument1);
- goto err;
+ error = @symbol(badArgument1);
+ goto err;
}
nInstBytes = __OBJS2BYTES__(__intVal(__ClassInstPtr(__qClass(socketAddress))->c_ninstvars));
@@ -16170,176 +16190,176 @@
sockAddrSize -= nInstBytes;
if (!__isSmallInteger(flags)) {
- error = @symbol(badArgument5);
- goto err;
+ error = @symbol(badArgument5);
+ goto err;
}
__flags = __intVal(flags);
#if defined(NI_NUMERICHOST)
if (useDatagram == true) {
- __flags |= NI_DGRAM;
+ __flags |= NI_DGRAM;
}
{
- bp = (char *)(__byteArrayVal(socketAddress));
- bp += nInstBytes;
- __BEGIN_INTERRUPTABLE__
- ret = getnameinfo((struct sockaddr *)bp, sockAddrSize,
- hp, hsz, sp, ssz, __flags);
- __END_INTERRUPTABLE__
+ bp = (char *)(__byteArrayVal(socketAddress));
+ bp += nInstBytes;
+ __BEGIN_INTERRUPTABLE__
+ ret = getnameinfo((struct sockaddr *)bp, sockAddrSize,
+ hp, hsz, sp, ssz, __flags);
+ __END_INTERRUPTABLE__
} while (ret == EAI_SYSTEM && errno == EINTR);
if (ret != 0) {
- switch (ret) {
- case EAI_FAMILY:
- error = @symbol(badProtocol);
- break;
- case EAI_SOCKTYPE:
- error = @symbol(badSocketType);
- break;
- case EAI_BADFLAGS:
- error = @symbol(badFlags);
- break;
- case EAI_NONAME:
- error = @symbol(unknownHost);
- break;
- case EAI_SERVICE:
- error = @symbol(unknownService);
- break;
- case EAI_ADDRFAMILY :
- error = @symbol(unknownHostForProtocol);
- break;
- case EAI_NODATA:
- error = @symbol(noAddress);
- break;
- case EAI_MEMORY:
- error = @symbol(allocationFailure);
- break;
- case EAI_FAIL:
- error = @symbol(permanentFailure);
- break;
- case EAI_AGAIN:
- error = @symbol(tryAgain);
- break;
- case EAI_SYSTEM:
- error = @symbol(systemError);
- break;
- default:
- error = @symbol(unknownError);
- }
- errorString = __MKSTRING(gai_strerror(ret));
- goto err;
+ switch (ret) {
+ case EAI_FAMILY:
+ error = @symbol(badProtocol);
+ break;
+ case EAI_SOCKTYPE:
+ error = @symbol(badSocketType);
+ break;
+ case EAI_BADFLAGS:
+ error = @symbol(badFlags);
+ break;
+ case EAI_NONAME:
+ error = @symbol(unknownHost);
+ break;
+ case EAI_SERVICE:
+ error = @symbol(unknownService);
+ break;
+ case EAI_ADDRFAMILY :
+ error = @symbol(unknownHostForProtocol);
+ break;
+ case EAI_NODATA:
+ error = @symbol(noAddress);
+ break;
+ case EAI_MEMORY:
+ error = @symbol(allocationFailure);
+ break;
+ case EAI_FAIL:
+ error = @symbol(permanentFailure);
+ break;
+ case EAI_AGAIN:
+ error = @symbol(tryAgain);
+ break;
+ case EAI_SYSTEM:
+ error = @symbol(systemError);
+ break;
+ default:
+ error = @symbol(unknownError);
+ }
+ errorString = __MKSTRING(gai_strerror(ret));
+ goto err;
}
# else /* ! NI_NUMERICHOST */
{
- /*
- * Do it using gethostbyaddr()
- */
- struct sockaddr_in *sa;
-
- if (sockAddrSize < sizeof(*sa)) {
- error = @symbol(badArgument1);
- goto err;
- }
- bp = (char *)(__byteArrayVal(socketAddress));
- bp += nInstBytes;
- sa = (struct sockaddr_in *)bp;
-
- if (sp) {
- struct servent *servp;
- char *__proto = 0;
-
- __proto = (useDatagram == true ? "udp" : "tcp");
-
- servp = getservbyport(sa->sin_port, __proto);
- if (servp) {
- sp = servp->s_name;
- }
- }
- if (hp) {
- struct hostent *hostp;
+ /*
+ * Do it using gethostbyaddr()
+ */
+ struct sockaddr_in *sa;
+
+ if (sockAddrSize < sizeof(*sa)) {
+ error = @symbol(badArgument1);
+ goto err;
+ }
+ bp = (char *)(__byteArrayVal(socketAddress));
+ bp += nInstBytes;
+ sa = (struct sockaddr_in *)bp;
+
+ if (sp) {
+ struct servent *servp;
+ char *__proto = 0;
+
+ __proto = (useDatagram == true ? "udp" : "tcp");
+
+ servp = getservbyport(sa->sin_port, __proto);
+ if (servp) {
+ sp = servp->s_name;
+ }
+ }
+ if (hp) {
+ struct hostent *hostp;
# ifdef USE_H_ERRNO
- do {
- /* must refetch in loop */
- bp = (char *)(__byteArrayVal(socketAddress));
- bp += nInstBytes;
- sa = (struct sockaddr_in *)bp;
- /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname uses a static data area
- */
- hostp = gethostbyaddr((char *)&sa->sin_addr, sockAddrSize, sa->sin_family);
- /* __END_INTERRUPTABLE__ */
- } while ((hostp == NULL)
- && ((h_errno == TRY_AGAIN)
- || errno == EINTR
+ do {
+ /* must refetch in loop */
+ bp = (char *)(__byteArrayVal(socketAddress));
+ bp += nInstBytes;
+ sa = (struct sockaddr_in *)bp;
+ /* __BEGIN_INTERRUPTABLE__ is dangerous, because gethostbyname uses a static data area
+ */
+ hostp = gethostbyaddr((char *)&sa->sin_addr, sockAddrSize, sa->sin_family);
+ /* __END_INTERRUPTABLE__ */
+ } while ((hostp == NULL)
+ && ((h_errno == TRY_AGAIN)
+ || errno == EINTR
# ifdef IRIX5_3
- || (errno == ECONNREFUSED)
+ || (errno == ECONNREFUSED)
# endif
- )
- );
- if (hostp == 0) {
- switch (h_errno) {
- case HOST_NOT_FOUND:
- errorString = @symbol(unknownHost);
- break;
- case NO_ADDRESS:
- errorString = @symbol(noAddress);
- break;
- case NO_RECOVERY:
- errorString = @symbol(permanentFailure);
- break;
- case TRY_AGAIN:
- errorString = @symbol(tryAgain);
- break;
- default:
- errorString = @symbol(unknownError);
- break;
- }
- error = __mkSmallInteger(h_errno);
- goto err;
- }
+ )
+ );
+ if (hostp == 0) {
+ switch (h_errno) {
+ case HOST_NOT_FOUND:
+ errorString = @symbol(unknownHost);
+ break;
+ case NO_ADDRESS:
+ errorString = @symbol(noAddress);
+ break;
+ case NO_RECOVERY:
+ errorString = @symbol(permanentFailure);
+ break;
+ case TRY_AGAIN:
+ errorString = @symbol(tryAgain);
+ break;
+ default:
+ errorString = @symbol(unknownError);
+ break;
+ }
+ error = __mkSmallInteger(h_errno);
+ goto err;
+ }
# else /* !USE_H_ERRNO */
- hostp = gethostbyaddr((char *)&sa->sin_addr, sockAddrSize, sa->sin_family);
- if (hostp == 0) {
- errorString = @symbol(unknownHost);
- error = __mkSmallInteger(-1);
- goto err;
- }
+ hostp = gethostbyaddr((char *)&sa->sin_addr, sockAddrSize, sa->sin_family);
+ if (hostp == 0) {
+ errorString = @symbol(unknownHost);
+ error = __mkSmallInteger(-1);
+ goto err;
+ }
# endif /* !USE_H_ERRNO*/
- hp = hostp->h_name;
- }
+ hp = hostp->h_name;
+ }
}
# endif /* ! NI_NUMERICHOST */
if (hp)
- hostName = __MKSTRING(hp);
+ hostName = __MKSTRING(hp);
if (sp)
- serviceName = __MKSTRING(sp);
+ serviceName = __MKSTRING(sp);
err:;
#else
error = @symbol(notImplemented);
#endif
%}.
error notNil ifTrue:[
- ^ (HostAddressLookupError new
- parameter:error;
- messageText:' - ', errorString;
- request:thisContext message) raiseRequest.
+ ^ (HostAddressLookupError new
+ parameter:error;
+ messageText:' - ', errorString;
+ request:thisContext message) raiseRequest.
].
^ Array with:hostName with:serviceName
"
self getNameInfo:
- (self getAddressInfo:'localhost' serviceName:'echo'
- domain:#inet type:#stream protocol:nil flags:nil) first socketAddress
- wantHostName:true wantServiceName:true datagram:false flags:0
+ (self getAddressInfo:'localhost' serviceName:'echo'
+ domain:#inet type:#stream protocol:nil flags:nil) first socketAddress
+ wantHostName:true wantServiceName:true datagram:false flags:0
self getNameInfo:
- (self getAddressInfo:'exept.exept.de' serviceName:'echo'
- domain:#inet type:#stream protocol:nil flags:nil) first socketAddress
- wantHostName:true wantServiceName:true datagram:false flags:0
+ (self getAddressInfo:'exept.exept.de' serviceName:'echo'
+ domain:#inet type:#stream protocol:nil flags:nil) first socketAddress
+ wantHostName:true wantServiceName:true datagram:false flags:0
self getNameInfo:#[1 2 3 4]
- wantHostName:true wantServiceName:true datagram:false flags:0
+ wantHostName:true wantServiceName:true datagram:false flags:0
"
! !
@@ -16362,35 +16382,35 @@
!Win32OperatingSystem::WinPointStructure methodsFor:'accessing'!
asPoint
- "Private - Answer the receiver as a Point."
+ "Private - Answer the receiver as a Point."
^self x @ self y
"Created: / 03-08-2006 / 10:45:55 / fm"
!
x
- "Private - Answer the x coordinate of the point."
+ "Private - Answer the x coordinate of the point."
^self longAt: 0 + 1
"Created: / 03-08-2006 / 10:46:11 / fm"
!
x: anInteger
- "Private - Set the x coordinate of the point."
+ "Private - Set the x coordinate of the point."
self longAt: 0 + 1 put: anInteger
"Created: / 03-08-2006 / 10:46:41 / fm"
!
y
- "Private - Answer the y coordinate of the point."
+ "Private - Answer the y coordinate of the point."
^self longAt: 4 + 1
"Created: / 03-08-2006 / 10:46:26 / fm"
!
y: anInteger
- "Private - Set the y coordinate of the point."
+ "Private - Set the y coordinate of the point."
self longAt: 4 + 1 put: anInteger
"Created: / 03-08-2006 / 10:46:56 / fm"
@@ -16399,7 +16419,7 @@
!Win32OperatingSystem::WinPointStructure methodsFor:'printing'!
printOn: aStream
- "Append a textual representation of the receiver to aStream."
+ "Append a textual representation of the receiver to aStream."
aStream nextPutAll: self class name, ' { ', self asPoint printString, ' } '
"Created: / 03-08-2006 / 10:45:40 / fm"
@@ -16408,12 +16428,12 @@
!Win32OperatingSystem class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.426 2011-08-24 13:44:54 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.427 2011-09-29 11:18:57 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.426 2011-08-24 13:44:54 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Win32OperatingSystem.st,v 1.427 2011-09-29 11:18:57 cg Exp $'
!
version_SVN