Under each yyyy/dir there is a file of the form '*.orig.c' containing the original source code, or as close as we can get to the original source code.
104 lines
2.7 KiB
C
104 lines
2.7 KiB
C
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <setjmp.h>
|
|
#include <time.h>
|
|
|
|
#define I ??(i??)??(j??)
|
|
#define K ??(i-1??)??(j??)
|
|
#define S strtok(NULL,",\n\0")
|
|
#define P printf(
|
|
#define NB_MSGS 42
|
|
#define C( f, m ) mNb = m;\
|
|
s = setjmp( sT??( sI++ ??) );\
|
|
if (!s) goto f;
|
|
#define bck longjmp( sT??( --sI ??), 0 );
|
|
|
|
jmp_buf sT??( 256 ??);
|
|
int m5??(84??),sI=0,c1='J'%2,mNb=0,s=0,mI=0,r=1;
|
|
unsigned long m1??(32??),q=0,z;
|
|
unsigned char m??( NB_MSGS ??)??( 11 ??);
|
|
|
|
int main( int argc, char *argv??(??) )
|
|
{
|
|
time_t tmT = time( NULL );
|
|
struct tm *tmS = localtime( &tmT );
|
|
char tms??( 7 ??);
|
|
int hr,n,i=1,j=0;
|
|
FILE *info = NULL;
|
|
char iS??( 2048 ??);
|
|
|
|
if ( argc > 1 ) info = fopen( argv??(1??), "r" );
|
|
strftime( tms, 7, "%H:%M\0", tmS );
|
|
if ( info != NULL ) {
|
|
fgets( iS, 2048, info );
|
|
m5??( 0 ??) = atoi( strtok( iS, ",\0" ) );
|
|
for ( hr = 1; hr < 85; hr++ ) m5??(hr??) = atoi(S);
|
|
for ( hr = 0; hr < 32; hr++ )
|
|
m1??( hr ??) = strtoul( S, NULL, 10 );
|
|
for ( hr = 0; hr < NB_MSGS; hr++ )
|
|
for ( n = 0; n < 11; n++ )
|
|
m??(hr??)??(n??) = (unsigned char)atoi( S );
|
|
fclose( info );
|
|
hr = atoi( strtok( tms, ":\0" ) );
|
|
n = atoi( strtok( NULL, ":\0" ) );
|
|
C( mA, 0 )
|
|
C( out, 40 )
|
|
s = setjmp( sT??( sI++ ??) );
|
|
if ( s ) {
|
|
s = setjmp( sT??( sI++ ??) );
|
|
if ( s ); else goto doHr;
|
|
} else goto doMin;
|
|
} else {
|
|
P "%s", tms );
|
|
goto eoj;
|
|
doMin:
|
|
z = 22;
|
|
C( doIt, 0 )
|
|
bck
|
|
doHr:
|
|
hr = ( n >= 36 ) ? hr+1 : hr;
|
|
if ( hr == 24 ) hr=0;
|
|
if (hr&&hr!=12)(hr<12)?(P "%d ",hr)):(P "%d ",hr-12));
|
|
n = hr + 61;
|
|
q = 0;
|
|
r = 1;
|
|
z = 16;
|
|
C( doIt, 0 )
|
|
P "\n" );
|
|
bck
|
|
doIt:
|
|
if ( r & m1??( m5??(n??) ??) ) {
|
|
if (z == 22) q = q << 1;
|
|
C( out, q )
|
|
if (z == 22) q = q >> 1;
|
|
}
|
|
r = r << 1;
|
|
q++;
|
|
if ( q < z ) goto doIt;
|
|
bck
|
|
out:
|
|
mI = 0;
|
|
mNb += c1;
|
|
while ( m??( mNb ??)??( mI ??) )
|
|
P "%c", m??( mNb ??)??( mI++ ??) );
|
|
bck
|
|
mA:
|
|
129<=m I ? 137>=m I ? m K=m I-32
|
|
: 145<=m I ? 153>=m I ? m K=m I-39
|
|
: 162<=m I ? 169>=m I ? m K=m I -47
|
|
: j : j : j : 125==m I ? m K=39
|
|
: 64==m I ? m K=32 : j;
|
|
j++;
|
|
if (m I) goto mA;
|
|
i+=2;
|
|
j = 0;
|
|
if ( i < NB_MSGS ) goto mA;
|
|
bck
|
|
}
|
|
|
|
eoj: exit( 0 );
|
|
|
|
}
|