- BORLAND/: Borland C++ 4.52 (chosen over 4.5 by byte-match: CODE/RP/CW32.LIB
is identical to 4.52's install lib). BCC32/TLINK32/TLIB/MAKE run natively on
Win11; CODE/BT/OPT.MAK is the shipped BTL4OPT.EXE's exact flag recipe
(extender = Borland PowerPack DPMI32, not Phar Lap TNT).
- restoration/source410/: the literal 1995-form reconstruction of the missing
BT game source (never mixed into CODE/). Round 1-3 state:
* 6 of 10 surviving original TUs COMPILE CLEAN under the period toolchain
(BTMSSN, BTCNSL, BTSCNRL, BTTEAM, BTL4MODE, BTL4ARND) - first builds
since 1996.
* BT_L4/BTL4APP.CPP pilot reconstruction: 12/12 functions, Fail() lands on
its binary-recorded line 400 exactly.
* BT/BTCNSL.HPP: console wire IDs recovered from the binary's ctors
(Killed=9, Damaged=10, ScoreUpdate=13, DeathWithoutHonor=15 [T1];
TeamScore=12 flagged [T4]).
* MUNGA/: 8 engine-header backfills back-dated from the BT412 WinTesla tree
(VDATA numbering decomp-verified; AUDREND's OpenAL-era virtual removed -
the period compiler is the drift detector).
* Tooling: backdate.py (WinTesla->1995 header transform), compile410.sh
(per-TU verification sweep under authentic OPT.MAK flags).
* README: corrected roadmap - MECH.HPP is the capstone grown with the mech
TU reconstructions; BTREG.CPP green = the header-family milestone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
89 lines
2.6 KiB
C++
89 lines
2.6 KiB
C++
/*------------------------------------------------------------------------*/
|
|
/* */
|
|
/* TIMEIO.CPP */
|
|
/* */
|
|
/* Copyright (c) 1993, 1994 Borland International */
|
|
/* All Rights Reserved */
|
|
/* */
|
|
/*------------------------------------------------------------------------*/
|
|
|
|
#if !defined( __STDIO_H )
|
|
#include <stdio.h>
|
|
#endif
|
|
|
|
#if !defined( __STRSTREA_H )
|
|
#include <strstrea.h>
|
|
#endif
|
|
|
|
#if !defined( __IOMANIP_H )
|
|
#include <iomanip.h>
|
|
#endif
|
|
|
|
#if !defined( __CSTRING_H )
|
|
#include <cstring.h>
|
|
#endif
|
|
|
|
#if !defined( CLASSLIB_TIME_H )
|
|
#include <classlib/time.h>
|
|
#endif
|
|
|
|
#if !defined( CLASSLIB_FILE_H )
|
|
#include <classlib/file.h>
|
|
#endif
|
|
|
|
// Static variable intialization:
|
|
int TTime::PrintDateFlag = 1;
|
|
|
|
string TTime::AsString() const
|
|
{
|
|
char buf[80];
|
|
ostrstream strtemp(buf, sizeof(buf));
|
|
strtemp << (*this) << ends;
|
|
string temp(buf);
|
|
return temp;
|
|
}
|
|
|
|
ostream _BIDSFAR & _BIDSFUNC operator << ( ostream _BIDSFAR & s, const TTime _BIDSFAR & t )
|
|
{
|
|
char buf[80];
|
|
|
|
// We use an ostrstream to format into buf so that
|
|
// we don't affect the ostream's width setting.
|
|
ostrstream out( buf, sizeof(buf) );
|
|
|
|
// First print the date if requested:
|
|
if(TTime::PrintDateFlag)
|
|
out << TDate(t) << " ";
|
|
|
|
unsigned hh = t.Hour();
|
|
out << (hh <= 12 ? hh : hh-12) << ':'
|
|
<< setfill('0') << setw(2) << t.Minute() << ':'
|
|
<< setw(2) << t.Second() << ' ' << setfill(' ');
|
|
out << ( hh<12 ? "am" : "pm") << ends;
|
|
|
|
// now we write out the formatted buffer, and the ostream's
|
|
// width setting will control the actual width of the field.
|
|
s << buf;
|
|
return s;
|
|
}
|
|
|
|
int TTime::PrintDate( int f )
|
|
{
|
|
int temp = PrintDateFlag;
|
|
PrintDateFlag = f;
|
|
return temp;
|
|
}
|
|
|
|
ostream _BIDSFAR & _BIDSFUNC operator << ( ostream _BIDSFAR & os, const TFileStatus _BIDSFAR & status )
|
|
{
|
|
os << "File Status: " << status.fullName << '\n';
|
|
os << " created: " << status.createTime << '\n';
|
|
os << " modified: " << status.modifyTime << '\n';
|
|
os << " accessed: " << status.accessTime << '\n';
|
|
os << " size: " << status.size << '\n';
|
|
os << " attributes: " << (int)status.attribute << '\n';
|
|
return os;
|
|
}
|
|
|
|
|