98 lines
1.8 KiB
C
98 lines
1.8 KiB
C
#include "Python.h"
|
|
|
|
#ifdef macintosh
|
|
#include "macbuildno.h"
|
|
#endif
|
|
|
|
#ifndef DONT_HAVE_STDIO_H
|
|
#include <stdio.h>
|
|
#endif
|
|
|
|
#ifndef DATE
|
|
#ifdef __DATE__
|
|
#define DATE __DATE__
|
|
#else
|
|
#define DATE "xx/xx/xx"
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef TIME
|
|
#ifdef __TIME__
|
|
#define TIME __TIME__
|
|
#else
|
|
#define TIME "xx:xx:xx"
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef BUILD
|
|
#define BUILD 0
|
|
#endif
|
|
|
|
#ifdef __VMS
|
|
# ifdef __DECC
|
|
# pragma extern_model save
|
|
# pragma extern_model strict_refdef
|
|
extern long ctl$gl_imghdrbf;
|
|
# pragma extern_model restore
|
|
# endif
|
|
|
|
# ifdef __ALPHA
|
|
# define EIHD$L_IMGIDOFF 24
|
|
# define EIHI$Q_LINKTIME 8
|
|
# define _IMGIDOFF EIHD$L_IMGIDOFF
|
|
# define _LINKTIME EIHI$Q_LINKTIME
|
|
# else
|
|
# define IHD$W_IMGIDOFF 6
|
|
# define IHI$Q_LINKTIME 56
|
|
# define _IMGIDOFF IHD$W_IMGIDOFF
|
|
# define _LINKTIME IHI$Q_LINKTIME
|
|
# endif /* __VMS */
|
|
|
|
long*
|
|
vms__get_linktime (void)
|
|
{
|
|
long* al_imghdrbf;
|
|
unsigned short* aw_imgidoff;
|
|
unsigned short w_imgidoff;
|
|
long* aq_linktime;
|
|
unsigned char* ab_ihi;
|
|
|
|
al_imghdrbf = &ctl$gl_imghdrbf;
|
|
|
|
al_imghdrbf = (long *)*al_imghdrbf;
|
|
al_imghdrbf = (long *)*al_imghdrbf;
|
|
|
|
aw_imgidoff = (unsigned short *)
|
|
((unsigned char *)al_imghdrbf + _IMGIDOFF);
|
|
|
|
w_imgidoff = *aw_imgidoff;
|
|
|
|
ab_ihi = (unsigned char *)al_imghdrbf + w_imgidoff;
|
|
|
|
aq_linktime = (long *) (ab_ihi + _LINKTIME);
|
|
|
|
return aq_linktime;
|
|
} /* vms__get_linktime (void) */
|
|
extern void vms__cvt_v2u_time (long * aq_vmstime, time_t * al_unixtime);
|
|
/* input , output */
|
|
#endif /* __VMS */
|
|
|
|
|
|
const char *
|
|
Py_GetBuildInfo(void)
|
|
{
|
|
static char buildinfo[50];
|
|
#ifdef __VMS
|
|
time_t l_unixtime;
|
|
|
|
vms__cvt_v2u_time(vms__get_linktime (), &l_unixtime );
|
|
|
|
memset(buildinfo, 0, 40);
|
|
sprintf(buildinfo, "#%d, %.24s", BUILD, ctime (&l_unixtime));
|
|
#else
|
|
PyOS_snprintf(buildinfo, sizeof(buildinfo),
|
|
"#%d, %.20s, %.9s", BUILD, DATE, TIME);
|
|
#endif
|
|
return buildinfo;
|
|
}
|