mirror of
https://github.com/python/cpython.git
synced 2025-10-17 04:08:28 +00:00
* Configure.py: use #!/usr/local/bin/python
* posixmodule.c: move extern function declarations to top * listobject.c: cmp() arguments must be void* if __STDC__ * Makefile, allobjects.h, panelmodule.c, modsupport.c: get rid of strdup() -- it is a portability risk * Makefile: enclosed ranlib command in parentheses for Sequent Make which aborts if the command is not found even if '-' is present * timemodule.c: time() returns a floating point number, in microsecond precision if BSD_TIME is defined.
This commit is contained in:
parent
349f2b516b
commit
a2b7f40513
6 changed files with 47 additions and 22 deletions
|
@ -52,5 +52,4 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
#include "errors.h"
|
#include "errors.h"
|
||||||
#include "mymalloc.h"
|
#include "mymalloc.h"
|
||||||
|
|
||||||
extern char *strdup PROTO((const char *));
|
|
||||||
extern void fatal PROTO((char *));
|
extern void fatal PROTO((char *));
|
||||||
|
|
|
@ -45,7 +45,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
#ifdef __DATE__
|
#ifdef __DATE__
|
||||||
#define DATE __DATE__
|
#define DATE __DATE__
|
||||||
#else
|
#else
|
||||||
#define DATE ">= 10 Aug 1992"
|
#define DATE ">= 1 Jan 1993"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
@ -75,7 +75,24 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
#include "modsupport.h"
|
#include "modsupport.h"
|
||||||
#include "ceval.h"
|
#include "ceval.h"
|
||||||
|
|
||||||
|
/* XXX Aren't these always declared in unistd.h? */
|
||||||
extern char *strerror PROTO((int));
|
extern char *strerror PROTO((int));
|
||||||
|
extern int chmod PROTO((const char *, mode_t));
|
||||||
|
extern char *getcwd PROTO((char *, int)); /* XXX or size_t? */
|
||||||
|
extern int mkdir PROTO((const char *, mode_t));
|
||||||
|
extern int chdir PROTO((const char *));
|
||||||
|
extern int link PROTO((const char *, const char *));
|
||||||
|
extern int rename PROTO((const char *, const char *));
|
||||||
|
extern int rmdir PROTO((const char *));
|
||||||
|
extern int stat PROTO((const char *, struct stat *));
|
||||||
|
extern int unlink PROTO((const char *));
|
||||||
|
extern int pclose PROTO((FILE *));
|
||||||
|
#ifdef NO_LSTAT
|
||||||
|
#define lstat stat
|
||||||
|
#else
|
||||||
|
extern int lstat PROTO((const char *, struct stat *));
|
||||||
|
extern int symlink PROTO((const char *, const char *));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* Return a dictionary corresponding to the POSIX environment table */
|
/* Return a dictionary corresponding to the POSIX environment table */
|
||||||
|
@ -225,7 +242,6 @@ posix_chdir(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int chdir PROTO((const char *));
|
|
||||||
return posix_1str(args, chdir);
|
return posix_1str(args, chdir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,7 +250,6 @@ posix_chmod(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int chmod PROTO((const char *, mode_t));
|
|
||||||
return posix_strint(args, chmod);
|
return posix_strint(args, chmod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,7 +260,6 @@ posix_getcwd(self, args)
|
||||||
{
|
{
|
||||||
char buf[1026];
|
char buf[1026];
|
||||||
char *res;
|
char *res;
|
||||||
extern char *getcwd PROTO((char *, int));
|
|
||||||
if (!getnoarg(args))
|
if (!getnoarg(args))
|
||||||
return NULL;
|
return NULL;
|
||||||
BGN_SAVE
|
BGN_SAVE
|
||||||
|
@ -262,7 +276,6 @@ posix_link(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int link PROTO((const char *, const char *));
|
|
||||||
return posix_2str(args, link);
|
return posix_2str(args, link);
|
||||||
}
|
}
|
||||||
#endif /* !MSDOS */
|
#endif /* !MSDOS */
|
||||||
|
@ -342,7 +355,6 @@ posix_mkdir(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int mkdir PROTO((const char *, mode_t));
|
|
||||||
return posix_strint(args, mkdir);
|
return posix_strint(args, mkdir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -366,7 +378,6 @@ posix_rename(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int rename PROTO((const char *, const char *));
|
|
||||||
return posix_2str(args, rename);
|
return posix_2str(args, rename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -375,7 +386,6 @@ posix_rmdir(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int rmdir PROTO((const char *));
|
|
||||||
return posix_1str(args, rmdir);
|
return posix_1str(args, rmdir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -384,7 +394,6 @@ posix_stat(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int stat PROTO((const char *, struct stat *));
|
|
||||||
return posix_do_stat(self, args, stat);
|
return posix_do_stat(self, args, stat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,19 +433,19 @@ posix_unlink(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int unlink PROTO((const char *));
|
|
||||||
return posix_1str(args, unlink);
|
return posix_1str(args, unlink);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NO_UNAME
|
#ifndef NO_UNAME
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
|
|
||||||
|
extern int uname PROTO((struct utsname *));
|
||||||
|
|
||||||
static object *
|
static object *
|
||||||
posix_uname(self, args)
|
posix_uname(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int uname PROTO((struct utsname *));
|
|
||||||
struct utsname u;
|
struct utsname u;
|
||||||
object *v;
|
object *v;
|
||||||
int res;
|
int res;
|
||||||
|
@ -696,7 +705,6 @@ posix_popen(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
extern int pclose PROTO((FILE *));
|
|
||||||
char *name, *mode;
|
char *name, *mode;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
if (!getargs(args, "(ss)", &name, &mode))
|
if (!getargs(args, "(ss)", &name, &mode))
|
||||||
|
@ -759,10 +767,6 @@ posix_lstat(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
#ifdef NO_LSTAT
|
|
||||||
#define lstat stat
|
|
||||||
#endif
|
|
||||||
extern int lstat PROTO((const char *, struct stat *));
|
|
||||||
return posix_do_stat(self, args, lstat);
|
return posix_do_stat(self, args, lstat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -798,7 +802,6 @@ posix_symlink(self, args)
|
||||||
err_setstr(PosixError, "symlink not implemented on this system");
|
err_setstr(PosixError, "symlink not implemented on this system");
|
||||||
return NULL;
|
return NULL;
|
||||||
#else
|
#else
|
||||||
extern int symlink PROTO((const char *, const char *));
|
|
||||||
return posix_2str(args, symlink);
|
return posix_2str(args, symlink);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,10 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
|
|
||||||
|
#ifdef BSD_TIME
|
||||||
|
#define HAVE_GETTIMEOFDAY
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef macintosh
|
#ifdef macintosh
|
||||||
#define NO_UNISTD
|
#define NO_UNISTD
|
||||||
#endif
|
#endif
|
||||||
|
@ -79,6 +83,17 @@ time_time(self, args)
|
||||||
object *self;
|
object *self;
|
||||||
object *args;
|
object *args;
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_GETTIMEOFDAY
|
||||||
|
struct timeval t;
|
||||||
|
struct timezone tz;
|
||||||
|
if (!getnoarg(args))
|
||||||
|
return NULL;
|
||||||
|
if (gettimeofday(&t, &tz) != 0) {
|
||||||
|
err_errno(IOError);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return newfloatobject(t.tv_sec*1.0 + t.tv_usec*0.000001);
|
||||||
|
#else /* !HAVE_GETTIMEOFDAY */
|
||||||
time_t secs;
|
time_t secs;
|
||||||
if (!getnoarg(args))
|
if (!getnoarg(args))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -90,7 +105,8 @@ time_time(self, args)
|
||||||
(((1970-1904)*365L + (1970-1904)/4) * 24 * 3600))
|
(((1970-1904)*365L + (1970-1904)/4) * 24 * 3600))
|
||||||
secs -= TIMEDIFF;
|
secs -= TIMEDIFF;
|
||||||
#endif
|
#endif
|
||||||
return newintobject((long)secs);
|
return newfloatobject((double)secs);
|
||||||
|
#endif /* !HAVE_GETTIMEOFDAY */
|
||||||
}
|
}
|
||||||
|
|
||||||
static jmp_buf sleep_intr;
|
static jmp_buf sleep_intr;
|
||||||
|
|
|
@ -479,7 +479,11 @@ static object *cmpfunc;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
cmp(v, w)
|
cmp(v, w)
|
||||||
|
#ifdef __STDC__
|
||||||
|
void *v, *w;
|
||||||
|
#else
|
||||||
char *v, *w;
|
char *v, *w;
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
object *t, *res;
|
object *t, *res;
|
||||||
long i;
|
long i;
|
||||||
|
|
|
@ -46,17 +46,20 @@ initmodule(name, methods)
|
||||||
{
|
{
|
||||||
object *m, *d, *v;
|
object *m, *d, *v;
|
||||||
struct methodlist *ml;
|
struct methodlist *ml;
|
||||||
char namebuf[256];
|
char *namebuf;
|
||||||
if ((m = add_module(name)) == NULL) {
|
if ((m = add_module(name)) == NULL) {
|
||||||
fprintf(stderr, "initializing module: %s\n", name);
|
fprintf(stderr, "initializing module: %s\n", name);
|
||||||
fatal("can't create a module");
|
fatal("can't create a module");
|
||||||
}
|
}
|
||||||
d = getmoduledict(m);
|
d = getmoduledict(m);
|
||||||
for (ml = methods; ml->ml_name != NULL; ml++) {
|
for (ml = methods; ml->ml_name != NULL; ml++) {
|
||||||
|
namebuf = NEW(char, strlen(name) + strlen(ml->ml_name) + 2);
|
||||||
|
if (namebuf == NULL)
|
||||||
|
fatal("out of mem for method name");
|
||||||
sprintf(namebuf, "%s.%s", name, ml->ml_name);
|
sprintf(namebuf, "%s.%s", name, ml->ml_name);
|
||||||
v = newmethodobject(strdup(namebuf), ml->ml_meth,
|
v = newmethodobject(namebuf, ml->ml_meth,
|
||||||
(object *)NULL, ml->ml_varargs);
|
(object *)NULL, ml->ml_varargs);
|
||||||
/* XXX The strdup'ed memory is never freed */
|
/* XXX The malloc'ed memory in namebuf is never freed */
|
||||||
if (v == NULL || dictinsert(d, ml->ml_name, v) != 0) {
|
if (v == NULL || dictinsert(d, ml->ml_name, v) != 0) {
|
||||||
fprintf(stderr, "initializing module: %s\n", name);
|
fprintf(stderr, "initializing module: %s\n", name);
|
||||||
fatal("can't initialize module");
|
fatal("can't initialize module");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue