|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T w
Length: 2511 (0x9cf)
Types: TextFile
Names: »ws_stamp_f.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦038380b96⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦038380b96⟧
└─⟦this⟧ »ws_stamp_f.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦0732ea0cf⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦0732ea0cf⟧
└─⟦this⟧ »../../dtia/release_apollo_2.1/ws_stamp_f.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦25fab149a⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦25fab149a⟧
└─⟦this⟧ »../../dtia/release_sun_2.1/ws_stamp_f.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦be254d495⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦be254d495⟧
└─⟦this⟧ »../../dtia/release_aix_2.1/ws_stamp_f.c«
└─⟦8ee07855d⟧ Bits:30000545 8mm tape, Rational 1000, DTIA 2_1_6
└─⟦0c25cb74a⟧ »DATA«
└─⟦c67979795⟧
└─⟦d0624311f⟧ Bits:30000529 8mm tape, Rational 1000, DTIA 2_1_7
└─⟦f494b5154⟧ »DATA«
└─⟦c67979795⟧
└─⟦this⟧ »../../dtia/release_hp_2.1/ws_stamp_f.c«
#ifndef lint
#ifndef DEBUG
static char SCCS_id[] = "@(#)ws_stamp_f.c 2.1 90/08/02 19:04:33 Copyright(c) 1990 by Rational.";
#else
static char SCCS_id[] = "@(#)ws_stamp_f.c DEBUG 2.1 90/08/02 19:04:33 Copyright(c) 1990 by Rational.";
#endif
#endif
#define WS_STAMP_F
#include "talk.h"
#undef WS_STAMP_F
extern int errno;
static int mod_time=0;
static int error_number = E_OK;
#define INF 0
#define SUP 1
#define EQUAL 2
struct struct_time {
int year;
int day;
int hour;
int min;
int sec;
};
static int compare(t1,t2)
struct struct_time *t1,*t2;
{
if (t1->year < t2->year) return INF;
if (t1->year > t2->year) return SUP;
if (t1->day < t2->day) return INF;
if (t1->day > t2->day) return SUP;
if (t1->hour < t2->hour) return INF;
if (t1->hour > t2->hour) return SUP;
if (t1->min < t2->min) return INF;
if (t1->min > t2->min) return SUP;
if (t1->sec < t2->sec) return INF;
if (t1->sec > t2->sec) return SUP;
return EQUAL;
}
static int diff(t1,t2)
struct struct_time *t1,*t2;
{
int negative = FALSE;
struct struct_time *t;
if (compare(t1,t2) == SUP) {
t = t1;
t1 = t2;
t2 = t;
negative = TRUE;
}
if (t1->year < t2->year) {
if (t1->year+1 != t2->year) return(0);
if ((t1->day!=364) &&
(t1->day!=365)) return(0);
if (t2->day!=0) return(0);
/* The three last cases are errors */
t1->year++;
t1->day=0;
}
/* The years are now equal */
return (negative?-1:1) *
( (t2->sec - t1->sec) +
(t2->min - t1->min) * 60 +
(t2->hour- t1->hour)*3600 +
(t2->day- t1->day)*3600*24
);
}
static void set_structs(clock,loc,gmt)
long clock;
struct struct_time *loc,*gmt;
{
struct tm *p;
p = localtime(&clock);
loc->year = p->tm_year;
loc->day = p->tm_yday;
loc->hour = p->tm_hour;
loc->min = p->tm_min;
loc->sec = p->tm_sec;
p = gmtime(&clock);
gmt->year = p->tm_year;
gmt->day = p->tm_yday;
gmt->hour = p->tm_hour;
gmt->min = p->tm_min;
gmt->sec = p->tm_sec;
}
int last_update_f_of_remote_file_in(f)
char *f;
{
int error;
struct stat s;
error_number = E_OK;
error = stat(f,&s);
if (error == -1) error_number = errno;
mod_time = (error== -1) ? 0 : (s.st_mtime);
return E_OK;
}
int last_update_f_options_in(options)
char *options;
{
return E_OK;
}
int last_update_f_in_seconds_out(i)
int *i;
{
struct struct_time loc_time,gmt_time;
long clock = mod_time;
set_structs(clock,&loc_time,&gmt_time);
*i=mod_time+diff(&gmt_time,&loc_time);
return E_OK;
}
int last_update_f_end() {
return error_number;
}