Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
c5a0f532
Commit
c5a0f532
authored
Dec 02, 1997
by
Guido van Rossum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Patch for QNX, by Chris Herborth. Also left-aligned preprocessor
directives and changed C++ comments to C comments.
parent
7bf22de7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
58 additions
and
58 deletions
+58
-58
Modules/posixmodule.c
Modules/posixmodule.c
+58
-58
No files found.
Modules/posixmodule.c
View file @
c5a0f532
...
...
@@ -75,24 +75,24 @@ corresponding Unix manual entries for more information on calls.";
/* Various compilers have only certain posix functions */
/* XXX Gosh I wish these were all moved into config.h */
#if defined(PYCC_VACPP) && defined(PYOS_OS2)
#define HAVE_EXECV 1
#define HAVE_GETCWD 1
#define HAVE_SYSTEM 1
#define HAVE_WAIT 1
#define HAVE_KILL 1
#define HAVE_PIPE 1
#define HAVE_POPEN 1
/
/ #define HAVE_FORK 1
/
/ #define HAVE_GETEGID 1
/
/ #define HAVE_GETEUID 1
/
/ #define HAVE_GETGID 1
/
/ #define HAVE_GETPPID 1
/
/ #define HAVE_GETUID 1
/
/ #define HAVE_OPENDIR 1
#define HAVE_EXECV 1
#define HAVE_GETCWD 1
#define HAVE_SYSTEM 1
#define HAVE_WAIT 1
#define HAVE_KILL 1
#define HAVE_PIPE 1
#define HAVE_POPEN 1
/
* #define HAVE_FORK 1 */
/
* #define HAVE_GETEGID 1 */
/
* #define HAVE_GETEUID 1 */
/
* #define HAVE_GETGID 1 */
/
* #define HAVE_GETPPID 1 */
/
* #define HAVE_GETUID 1 */
/
* #define HAVE_OPENDIR 1 */
#include <process.h>
#else
#if
def __WATCOMC__
/* Watcom compiler */
#if
defined(__WATCOMC__) && !defined(__QNX__)
/* Watcom compiler */
#define HAVE_GETCWD 1
#define HAVE_OPENDIR 1
#define HAVE_SYSTEM 1
...
...
@@ -144,7 +144,7 @@ corresponding Unix manual entries for more information on calls.";
#define HAVE_WAIT 1
#endif
/* _MSC_VER */
#endif
/* __BORLANDC__ */
#endif
/* ! __WATCOMC__ */
#endif
/* ! __WATCOMC__
|| __QNX__
*/
#endif
/* ! __IBMC__ */
#ifndef _MSC_VER
...
...
@@ -171,7 +171,7 @@ extern int symlink();
#if defined(PYCC_VACPP)
extern
int
mkdir
Py_PROTO
((
char
*
));
#else
#if
defined(__WATCOMC__) || defined(_MSC_VER
)
#if
( defined(__WATCOMC__) || defined(_MSC_VER) ) && !defined(__QNX__
)
extern
int
mkdir
Py_PROTO
((
const
char
*
));
#else
extern
int
mkdir
Py_PROTO
((
const
char
*
,
mode_t
));
...
...
@@ -232,7 +232,7 @@ extern int lstat Py_PROTO((const char *, struct stat *));
#include <dirent.h>
#define NAMLEN(dirent) strlen((dirent)->d_name)
#else
#if
def __WATCOMC__
#if
defined(__WATCOMC__) && !defined(__QNX__)
#include <direct.h>
#define NAMLEN(dirent) strlen((dirent)->d_name)
#else
...
...
@@ -270,7 +270,7 @@ extern int lstat Py_PROTO((const char *, struct stat *));
/* Return a dictionary corresponding to the POSIX environment table */
#if !defined(_MSC_VER) &&
!defined(__WATCOMC__
)
#if !defined(_MSC_VER) &&
( !defined(__WATCOMC__) || defined(__QNX__)
)
extern
char
**
environ
;
#endif
/* !_MSC_VER */
...
...
@@ -666,28 +666,28 @@ posix_listdir(self, args)
if
((
d
=
PyList_New
(
0
))
==
NULL
)
return
NULL
;
rc
=
DosFindFirst
(
namebuf
,
/
/ Wildcard Pattern to Match
&
hdir
,
/
/ Handle to Use While Search Directory
rc
=
DosFindFirst
(
namebuf
,
/
* Wildcard Pattern to Match */
&
hdir
,
/
* Handle to Use While Search Directory */
FILE_READONLY
|
FILE_HIDDEN
|
FILE_SYSTEM
|
FILE_DIRECTORY
,
&
ep
,
sizeof
(
ep
),
/
/ Structure to Receive Directory Entry
&
srchcnt
,
/
/ Max and Actual Count of Entries Per Iteration
FIL_STANDARD
);
/
/ Format of Entry (EAs or Not)
&
ep
,
sizeof
(
ep
),
/
* Structure to Receive Directory Entry */
&
srchcnt
,
/
* Max and Actual Count of Entries Per Iteration */
FIL_STANDARD
);
/
* Format of Entry (EAs or Not) */
if
(
rc
!=
NO_ERROR
)
{
errno
=
ENOENT
;
return
posix_error
();
}
if
(
srchcnt
>
0
)
{
/
/ If Directory is NOT Totally Empty,
if
(
srchcnt
>
0
)
{
/
* If Directory is NOT Totally Empty, */
do
{
if
(
ep
.
achName
[
0
]
==
'.'
&&
(
ep
.
achName
[
1
]
==
'\0'
||
ep
.
achName
[
1
]
==
'.'
&&
ep
.
achName
[
2
]
==
'\0'
))
continue
;
/
/ Skip Over "." and ".." Names
continue
;
/
* Skip Over "." and ".." Names */
strcpy
(
namebuf
,
ep
.
achName
);
/
/ Leave Case of Name Alone -- In Native Form
/
/ (Removed Forced Lowercasing Code)
/
* Leave Case of Name Alone -- In Native Form */
/
* (Removed Forced Lowercasing Code) */
v
=
PyString_FromString
(
namebuf
);
if
(
v
==
NULL
)
{
...
...
@@ -768,7 +768,7 @@ posix_mkdir(self, args)
if
(
!
PyArg_ParseTuple
(
args
,
"s|i"
,
&
path
,
&
mode
))
return
NULL
;
Py_BEGIN_ALLOW_THREADS
#if
defined(__WATCOMC__) || defined(_MSC_VER) || defined(PYCC_VACPP
)
#if
( defined(__WATCOMC__) || defined(_MSC_VER) || defined(PYCC_VACPP) ) && !defined(__QNX__
)
res
=
mkdir
(
path
);
#else
res
=
mkdir
(
path
,
mode
);
...
...
@@ -1365,7 +1365,7 @@ posix_kill(self, args)
return
posix_error
();
}
else
return
NULL
;
/
/ Unrecognized Signal Requested
return
NULL
;
/
* Unrecognized Signal Requested */
#else
if
(
kill
(
pid
,
sig
)
==
-
1
)
return
posix_error
();
...
...
@@ -1425,9 +1425,9 @@ async_system(const char *command)
*
p
=
'\0'
;
rc
=
DosExecPgm
(
errormsg
,
sizeof
(
errormsg
),
EXEC_ASYNC
,
/
/ Execute Async w/o Wait for Results
EXEC_ASYNC
,
/
* Execute Async w/o Wait for Results */
args
,
NULL
,
/
/ Inherit Parent's Environment
NULL
,
/
* Inherit Parent's Environment */
&
rcodes
,
shell
);
return
rc
;
}
...
...
@@ -1440,48 +1440,48 @@ popen(const char *command, const char *mode, int pipesize)
APIRET
rc
=
DosCreatePipe
(
&
rhan
,
&
whan
,
pipesize
);
if
(
rc
!=
NO_ERROR
)
return
NULL
;
/
/ ERROR - Unable to Create Anon Pipe
return
NULL
;
/
* ERROR - Unable to Create Anon Pipe */
if
(
strchr
(
mode
,
'r'
)
!=
NULL
)
{
/
/ Treat Command as a Data Source
int
oldfd
=
dup
(
1
);
/
/ Save STDOUT Handle in Another Handle
if
(
strchr
(
mode
,
'r'
)
!=
NULL
)
{
/
* Treat Command as a Data Source */
int
oldfd
=
dup
(
1
);
/
* Save STDOUT Handle in Another Handle */
DosEnterCritSec
();
// Stop Other Threads While Changing Handles
close
(
1
);
/
/ Make STDOUT Available for Reallocation
DosEnterCritSec
();
/* Stop Other Threads While Changing Handles */
close
(
1
);
/
* Make STDOUT Available for Reallocation */
if
(
dup2
(
whan
,
1
)
==
0
)
{
/
/ Connect STDOUT to Pipe Write Side
DosClose
(
whan
);
/
/ Close Now-Unused Pipe Write Handle
if
(
dup2
(
whan
,
1
)
==
0
)
{
/
* Connect STDOUT to Pipe Write Side */
DosClose
(
whan
);
/
* Close Now-Unused Pipe Write Handle */
if
(
async_system
(
command
)
==
NO_ERROR
)
retfd
=
fdopen
(
rhan
,
"rb"
);
/
/ And Return Pipe Read Handle
retfd
=
fdopen
(
rhan
,
"rb"
);
/
* And Return Pipe Read Handle */
}
dup2
(
oldfd
,
1
);
/
/ Reconnect STDOUT to Original Handle
DosExitCritSec
();
/
/ Now Allow Other Threads to Run
dup2
(
oldfd
,
1
);
/
* Reconnect STDOUT to Original Handle */
DosExitCritSec
();
/
* Now Allow Other Threads to Run */
close
(
oldfd
);
/
/ And Close Saved STDOUT Handle
return
retfd
;
/
/ Return fd of Pipe or NULL if Error
close
(
oldfd
);
/
* And Close Saved STDOUT Handle */
return
retfd
;
/
* Return fd of Pipe or NULL if Error */
}
else
if
(
strchr
(
mode
,
'w'
))
{
/
/ Treat Command as a Data Sink
int
oldfd
=
dup
(
0
);
/
/ Save STDIN Handle in Another Handle
}
else
if
(
strchr
(
mode
,
'w'
))
{
/
* Treat Command as a Data Sink */
int
oldfd
=
dup
(
0
);
/
* Save STDIN Handle in Another Handle */
DosEnterCritSec
();
// Stop Other Threads While Changing Handles
close
(
0
);
/
/ Make STDIN Available for Reallocation
DosEnterCritSec
();
/* Stop Other Threads While Changing Handles */
close
(
0
);
/
* Make STDIN Available for Reallocation */
if
(
dup2
(
rhan
,
0
)
==
0
)
{
/
/ Connect STDIN to Pipe Read Side
DosClose
(
rhan
);
/
/ Close Now-Unused Pipe Read Handle
if
(
dup2
(
rhan
,
0
)
==
0
)
{
/
* Connect STDIN to Pipe Read Side */
DosClose
(
rhan
);
/
* Close Now-Unused Pipe Read Handle */
if
(
async_system
(
command
)
==
NO_ERROR
)
retfd
=
fdopen
(
whan
,
"wb"
);
/
/ And Return Pipe Write Handle
retfd
=
fdopen
(
whan
,
"wb"
);
/
* And Return Pipe Write Handle */
}
dup2
(
oldfd
,
0
);
/
/ Reconnect STDIN to Original Handle
DosExitCritSec
();
/
/ Now Allow Other Threads to Run
dup2
(
oldfd
,
0
);
/
* Reconnect STDIN to Original Handle */
DosExitCritSec
();
/
* Now Allow Other Threads to Run */
close
(
oldfd
);
/
/ And Close Saved STDIN Handle
return
retfd
;
/
/ Return fd of Pipe or NULL if Error
close
(
oldfd
);
/
* And Close Saved STDIN Handle */
return
retfd
;
/
* Return fd of Pipe or NULL if Error */
}
else
return
NULL
;
/
/ ERROR - Invalid Mode (Neither Read nor Write)
return
NULL
;
/
* ERROR - Invalid Mode (Neither Read nor Write) */
}
static
PyObject
*
...
...
@@ -2497,7 +2497,7 @@ all_ins(d)
}
#if
defined(_MSC_VER) || defined(__WATCOMC
__)
#if
( defined(_MSC_VER) || defined(__WATCOMC__) ) && !defined(__QNX
__)
#define INITFUNC initnt
#define MODNAME "nt"
#else
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment