Doxygen Source Code Documentation
afni_friends.c File Reference
#include <stdlib.h>#include <time.h>#include <stdio.h>Go to the source code of this file.
Data Structures | |
| struct | AFNI_friend |
| struct | mday |
Defines | |
| #define | YOU_KNOW_WHAT 10 |
| #define | INSPIRATION 5 |
| #define | KLOSEK 0 |
| #define | NUM_HELPTYPES (sizeof(afni_helptypes)/sizeof(char *)) |
| #define | NUM_FRIENDS (sizeof(afni_friends)/sizeof(AFNI_friend)) |
| #define | JAN 1 |
| #define | FEB 2 |
| #define | MAR 3 |
| #define | APR 4 |
| #define | MAY 5 |
| #define | JUN 6 |
| #define | JUL 7 |
| #define | AUG 8 |
| #define | SEP 9 |
| #define | OCT 10 |
| #define | NOV 11 |
| #define | DEC 12 |
| #define | NTMAX 9 |
Functions | |
| char * | AFNI_get_friend (void) |
| char * | AFNI_get_date_trivia (void) |
Variables | |
| char * | afni_helptypes [] |
| AFNI_friend | afni_friends [] |
| mday | holiday [] |
Define Documentation
|
|
Definition at line 109 of file afni_friends.c. |
|
|
Definition at line 113 of file afni_friends.c. |
|
|
Definition at line 117 of file afni_friends.c. |
|
|
Definition at line 107 of file afni_friends.c. |
|
|
Definition at line 25 of file afni_friends.c. Referenced by AFNI_get_friend(). |
|
|
Definition at line 106 of file afni_friends.c. |
|
|
Definition at line 112 of file afni_friends.c. |
|
|
Definition at line 111 of file afni_friends.c. |
|
|
Definition at line 26 of file afni_friends.c. Referenced by AFNI_get_friend(). |
|
|
Definition at line 108 of file afni_friends.c. |
|
|
Definition at line 110 of file afni_friends.c. |
|
|
Definition at line 116 of file afni_friends.c. Referenced by AFNI_get_date_trivia(). |
|
|
max # trivia elements allowed per date Definition at line 126 of file afni_friends.c. Referenced by AFNI_get_date_trivia(). |
|
|
Definition at line 82 of file afni_friends.c. Referenced by AFNI_get_friend(). |
|
|
Definition at line 28 of file afni_friends.c. Referenced by AFNI_get_friend(). |
|
|
Definition at line 115 of file afni_friends.c. Referenced by AFNI_get_date_trivia(). |
|
|
Definition at line 114 of file afni_friends.c. Referenced by AFNI_get_date_trivia(). |
|
|
Definition at line 24 of file afni_friends.c. Referenced by AFNI_get_friend(). |
Function Documentation
|
|
Return today's date trivia string. Definition at line 719 of file afni_friends.c. References mday::day, mday::label, mday::mon, NOV, NTMAX, OCT, SEP, and tt. Referenced by SPLASH_imseq_getim().
00720 {
00721 time_t tt ;
00722 struct tm *lt ;
00723 int ii , ntar ;
00724 char *tar[NTMAX] ;
00725
00726 tt = time(NULL) ; /* seconds since 01 Jan 1970 */
00727 lt = localtime( &tt ) ; /* break into pieces */
00728
00729 /**** find this month and day in the trivia list, if present ****/
00730
00731 for( ii=ntar=0 ; ntar < NTMAX && holiday[ii].day != 0 ; ii++ )
00732 if( holiday[ii].mon == lt->tm_mon+1 && holiday[ii].day == lt->tm_mday )
00733 tar[ntar++] = holiday[ii].label ;
00734
00735 /**** Special days not on fixed dates ****/
00736
00737 /* Day of month = 13 and weekday = Friday */
00738
00739 if( ntar < NTMAX && lt->tm_mday == 13 && lt->tm_wday == 5 )
00740 tar[ntar++] = "Friday the 13th" ;
00741
00742 /* 1st Monday in September */
00743
00744 if( ntar < NTMAX && lt->tm_mon+1 == SEP && lt->tm_wday == 1 && lt->tm_mday <= 7 )
00745 tar[ntar++] = "Labor Day (USA)" ;
00746
00747 /* 4th Thursday in November */
00748
00749 if( ntar < NTMAX && lt->tm_mon+1 == NOV && lt->tm_wday == 4 &&
00750 lt->tm_mday <= 28 && lt->tm_mday >= 22 )
00751 tar[ntar++] = "Thanksgiving (USA)" ;
00752
00753 /* 1st Monday in October */
00754
00755 if( ntar < NTMAX && lt->tm_mon+1 == OCT && lt->tm_wday == 1 && lt->tm_mday <= 7 )
00756 tar[ntar++] = "Opening of Supreme Court (USA)" ;
00757
00758 /* 1st Tuesday after 1st Monday in November */
00759
00760 if( ntar < NTMAX && lt->tm_mon+1 == NOV && lt->tm_wday == 2 &&
00761 lt->tm_mday >= 2 && lt->tm_mday <= 8 )
00762 tar[ntar++] = "Election Day (USA)" ;
00763
00764 /**** select which one to return ***/
00765
00766 if( ntar == 1 ){
00767 return tar[0] ;
00768 } else if( ntar > 1 ){
00769 static int iold=-1 ;
00770 ii = (lrand48()>>8) % ntar ;
00771 if( ii == iold ) ii = (ii+1)%ntar ;
00772 iold = ii ; return tar[ii] ;
00773 }
00774
00775 /* default trivia */
00776
00777 return "[Elen sila lumenn' omentielvo]" ;
00778 }
|
|
|
Return a "thanks" string (static storage - don't free it). Definition at line 87 of file afni_friends.c. References afni_helptypes, AFNI_friend::helpmask, INSPIRATION, KLOSEK, name, NUM_FRIENDS, NUM_HELPTYPES, and YOU_KNOW_WHAT. Referenced by main(), and SPLASH_imseq_getim().
00088 {
00089 static char buf[256] ; int nf , nh , hmask , qq=0 ;
00090 nf = lrand48() % NUM_FRIENDS ;
00091 do{
00092 nh = lrand48() % NUM_HELPTYPES ; hmask = 1 << nh ; qq++ ;
00093 } while( qq < 73 && (hmask & afni_friends[nf].helpmask) == 0 ) ;
00094
00095 if( nh == YOU_KNOW_WHAT && nf != KLOSEK ) nh = INSPIRATION; /* only Gosia */
00096
00097 sprintf( buf ,
00098 "Thanks go to %s for %s" ,
00099 afni_friends[nf].name , afni_helptypes[nh] ) ;
00100 return buf ;
00101 }
|
Variable Documentation
|
|
Who we might thank. Definition at line 34 of file afni_friends.c. |
|
|
Initial value: {
"advice and help" ,
"much encouragement" ,
"many suggestions" ,
"useful feedback" ,
"\"quick\" questions" ,
"inspiration" ,
"great efforts" ,
"caloric input" ,
"awe-inspiring beer consumption" ,
"awe-inspiring caffeine binging" ,
"you-know-what"
}Definition at line 8 of file afni_friends.c. Referenced by AFNI_get_friend(). |
|
|
The date trivia array. Definition at line 130 of file afni_friends.c. |