#include <sys/types.h>
#include <time.h>
#include "substdio.h"
#include "subfd.h"
#include "exit.h"
#include "fmt.h"
char num[FMT_ULONG];
void get(ch)
char *ch;
{
if (substdio_get(subfdin,ch,1) != 1) {
substdio_flush(subfdout);
_exit(0);
}
}
void out(buf,len)
char *buf;
int len;
{
if (substdio_put(subfdout,buf,len) == -1)
_exit(111);
}
time_t secs;
unsigned long u;
struct tm *t;
void main()
{
char ch;
for (;;) {
secs = 0;
for (;;) {
get(&ch);
u = ch - '0';
if (u >= 10) break;
secs = secs * 10 + u;
}
t = localtime(&secs);
out(num,fmt_ulong(num,(unsigned long) (1900 + t->tm_year)));
out("-",1);
out(num,fmt_uint0(num,(unsigned int) (1 + t->tm_mon),2));
out("-",1);
out(num,fmt_uint0(num,(unsigned int) t->tm_mday,2));
out(" ",1);
out(num,fmt_uint0(num,(unsigned int) t->tm_hour,2));
out(":",1);
out(num,fmt_uint0(num,(unsigned int) t->tm_min,2));
out(":",1);
out(num,fmt_uint0(num,(unsigned int) t->tm_sec,2));
for (;;) {
out(&ch,1);
if (ch == '\n') break;
get(&ch);
}
}
}
syntax highlighted by Code2HTML, v. 0.9.1