From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/dd_struc.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/dd_struc.h (limited to 'reference/C/CONTRIB/SNIP/dd_struc.h') diff --git a/reference/C/CONTRIB/SNIP/dd_struc.h b/reference/C/CONTRIB/SNIP/dd_struc.h new file mode 100755 index 0000000..cd46c2d --- /dev/null +++ b/reference/C/CONTRIB/SNIP/dd_struc.h @@ -0,0 +1,31 @@ +/* +** DosDate macros - access bitfield values from DOS file date & time +** for Borland C and C++ compilers by: Wayne Hamilton +*/ + +#define dd_yr(d) (((struct { unsigned day:5, mo:4, yr:7; } *) &d)->yr) +#define dd_mo(d) (((struct { unsigned day:5, mo:4, yr:7; } *) &d)->mo) +#define dd_day(d) (((struct { unsigned day:5, mo:4, yr:7; } *) &d)->day) +#define dd_hr(t) (((struct { unsigned sec:5, mn:6, hr:5; } *) &t)->hr) +#define dd_mn(t) (((struct { unsigned sec:5, mn:6, hr:5; } *) &t)->mn) +#define dd_sec(t) (((struct { unsigned sec:5, mn:6, hr:5; } *) &t)->sec) + +/* then: year = dd_yr(ffblk.ff_date); */ + +#ifdef TEST + +#include +#include + +main(int argc, char *argv[]) +{ + struct ffblk ff; + + findfirst(argv[0], &ff, 0xff); + printf("%s was saved on %d-%d-%d at %d:%02d:%02d\n", argv[0], + dd_mo(ff.ff_fdate), dd_day(ff.ff_fdate), dd_yr(ff.ff_fdate), + dd_hr(ff.ff_ftime), dd_mn(ff.ff_ftime), 2 * dd_sec(ff.ff_ftime)); + return 0; +} + +#endif -- cgit v1.2.3-54-g00ecf