OS/2 EMX port changes (Modules part of patch #450267):

Modules/
    _hotshot.c
    dbmmodule.c
    fcntlmodule.c
    main.c
    pwdmodule.c
    readline.c
    selectmodule.c
    signalmodule.c
    termios.c
    timemodule.c
    unicodedata.c
This commit is contained in:
Andrew MacIntyre 2002-03-03 02:59:16 +00:00
parent 38b504e9e3
commit 7bf6833e17
11 changed files with 47 additions and 11 deletions

View File

@ -26,7 +26,7 @@ typedef __int64 hs_time;
#ifndef HAVE_GETTIMEOFDAY
#error "This module requires gettimeofday() on non-Windows platforms!"
#endif
#ifdef macintosh
#if defined(macintosh) || (defined(PYOS_OS2) && defined(PYCC_GCC))
#include <sys/time.h>
#else
#include <sys/resource.h>
@ -51,6 +51,10 @@ typedef struct timeval hs_time;
#define PATH_MAX 254
#endif
#if defined(PYOS_OS2) && defined(PYCC_GCC)
#define PATH_MAX 260
#endif
#ifndef PATH_MAX
# ifdef MAX_PATH
# define PATH_MAX MAX_PATH
@ -987,7 +991,7 @@ calibrate(void)
}
#endif
}
#if defined(MS_WIN32) || defined(macintosh)
#if defined(MS_WIN32) || defined(macintosh) || defined(PYOS_OS2)
rusage_diff = -1;
#else
{

View File

@ -13,7 +13,11 @@
*/
#if defined(HAVE_NDBM_H)
#include <ndbm.h>
#if defined(PYOS_OS2) && !defined(PYCC_GCC)
static char *which_dbm = "ndbm";
#else
static char *which_dbm = "GNU gdbm"; /* EMX port of GDBM */
#endif
#elif defined(HAVE_DB1_NDBM_H)
#include <db1/ndbm.h>
static char *which_dbm = "BSD db";

View File

@ -222,12 +222,17 @@ fcntl_lockf(PyObject *self, PyObject *args)
&lenobj, &startobj, &whence))
return NULL;
#if defined(PYOS_OS2) && defined(PYCC_GCC)
PyErr_SetString(PyExc_NotImplementedError,
"lockf not supported on OS/2 (EMX)");
return NULL;
#else
#ifndef LOCK_SH
#define LOCK_SH 1 /* shared lock */
#define LOCK_EX 2 /* exclusive lock */
#define LOCK_NB 4 /* don't block when locking */
#define LOCK_UN 8 /* unlock */
#endif
#endif /* LOCK_SH */
{
struct flock l;
if (code == LOCK_UN)
@ -275,6 +280,7 @@ fcntl_lockf(PyObject *self, PyObject *args)
}
Py_INCREF(Py_None);
return Py_None;
#endif /* defined(PYOS_OS2) && defined(PYCC_GCC) */
}
static char lockf_doc [] =

View File

@ -8,11 +8,15 @@
#include <fcntl.h>
#endif
#if defined(PYOS_OS2) || defined(MS_WINDOWS)
#if (defined(PYOS_OS2) && !defined(PYCC_GCC)) || defined(MS_WINDOWS)
#define PYTHONHOMEHELP "<prefix>\\lib"
#else
#if defined(PYOS_OS2) && defined(PYCC_GCC)
#define PYTHONHOMEHELP "<prefix>/Lib"
#else
#define PYTHONHOMEHELP "<prefix>/pythonX.X"
#endif
#endif
#include "pygetopt.h"

View File

@ -128,8 +128,12 @@ pwd_getpwall(PyObject *self, PyObject *args)
return NULL;
if ((d = PyList_New(0)) == NULL)
return NULL;
#if defined(PYOS_OS2) && defined(PYCC_GCC)
if ((p = getpwuid(0)) != NULL) {
#else
setpwent();
while ((p = getpwent()) != NULL) {
#endif
PyObject *v = mkpwent(p);
if (v == NULL || PyList_Append(d, v) != 0) {
Py_XDECREF(v);

View File

@ -507,6 +507,10 @@ static void
setup_readline(void)
{
rl_readline_name = "python";
#if defined(PYOS_OS2) && defined(PYCC_GCC)
/* Allow $if term= in .inputrc to work */
rl_terminal_name = getenv("TERM");
#endif
/* Force rebind of TAB to insert-tab */
rl_bind_key('\t', rl_insert);
/* Bind both ESC-TAB and ESC-ESC to the completion function */

View File

@ -33,7 +33,7 @@ extern void bzero(void *, int);
#include <sys/types.h>
#endif
#if defined(PYOS_OS2)
#if defined(PYOS_OS2) && !defined(PYCC_GCC)
#include <sys/time.h>
#include <utils.h>
#endif

View File

@ -16,7 +16,7 @@
#define SIG_ERR ((PyOS_sighandler_t)(-1))
#endif
#if defined(PYOS_OS2)
#if defined(PYOS_OS2) && !defined(PYCC_GCC)
#define NSIG 12
#include <process.h>
#endif

View File

@ -384,7 +384,9 @@ static struct constant {
#ifdef OLCUC
{"OLCUC", OLCUC},
#endif
#ifdef ONLCR
{"ONLCR", ONLCR},
#endif
#ifdef OCRNL
{"OCRNL", OCRNL},
#endif
@ -552,7 +554,9 @@ static struct constant {
#ifdef VLNEXT
{"VLNEXT", VLNEXT},
#endif
#ifdef VEOL2
{"VEOL2", VEOL2},
#endif
#ifdef B460800

View File

@ -54,6 +54,12 @@ extern int ftime(struct timeb *);
#undef HAVE_CLOCK /* We have our own version down below */
#endif /* MS_WIN32 && !MS_WIN64 */
#if defined(PYOS_OS2)
#define INCL_DOS
#define INCL_ERRORS
#include <os2.h>
#endif
#if defined(PYCC_VACPP)
#include <sys/time.h>
#endif
@ -752,7 +758,7 @@ static int
floatsleep(double secs)
{
/* XXX Should test for MS_WIN32 first! */
#if defined(HAVE_SELECT) && !defined(__BEOS__)
#if defined(HAVE_SELECT) && !defined(__BEOS__) && !defined(__EMX__)
struct timeval t;
double frac;
frac = fmod(secs, 1.0);

View File

@ -277,7 +277,7 @@ _gethash(const char *s, int len, int scale)
}
static int
_getname(Py_UCS4 code, char* buffer, int buflen)
_Py_getname(Py_UCS4 code, char* buffer, int buflen)
{
int offset;
int i;
@ -334,7 +334,7 @@ _cmpname(int code, const char* name, int namelen)
/* check if code corresponds to the given name */
int i;
char buffer[NAME_MAXLEN];
if (!_getname(code, buffer, sizeof(buffer)))
if (!_Py_getname(code, buffer, sizeof(buffer)))
return 0;
for (i = 0; i < namelen; i++) {
if (toupper(name[i]) != buffer[i])
@ -384,7 +384,7 @@ _getcode(const char* name, int namelen, Py_UCS4* code)
static const _PyUnicode_Name_CAPI hashAPI =
{
sizeof(_PyUnicode_Name_CAPI),
_getname,
_Py_getname,
_getcode
};
@ -407,7 +407,7 @@ unicodedata_name(PyObject* self, PyObject* args)
return NULL;
}
if (!_getname((Py_UCS4) *PyUnicode_AS_UNICODE(v),
if (!_Py_getname((Py_UCS4) *PyUnicode_AS_UNICODE(v),
name, sizeof(name))) {
if (defobj == NULL) {
PyErr_SetString(PyExc_ValueError, "no such name");