Refactor code from previous commit.
* Check if offset is actually an error code and attempt to compensate At the very least don't use it as an offset (would be bad). * Write to the output string directly instead of copying a temp string. * Add a ToDo to check if day of week should go after time for locale * Replace hardcoded 64 in GetCurrentDate().
This commit is contained in:
@@ -384,31 +384,35 @@ TTimeView::ShowCalendar(BPoint where)
|
|||||||
void
|
void
|
||||||
TTimeView::GetCurrentTime()
|
TTimeView::GetCurrentTime()
|
||||||
{
|
{
|
||||||
char tmp[sizeof(fCurrentTimeStr)];
|
|
||||||
ssize_t offset = 0;
|
ssize_t offset = 0;
|
||||||
|
|
||||||
if (fShowSeconds) {
|
// ToDo: Check to see if we should write day of week after time for locale
|
||||||
fLocale.FormatTime(tmp, sizeof(fCurrentTimeStr), fCurrentTime,
|
|
||||||
B_MEDIUM_TIME_FORMAT);
|
|
||||||
} else {
|
|
||||||
fLocale.FormatTime(tmp, sizeof(fCurrentTimeStr), fCurrentTime,
|
|
||||||
B_SHORT_TIME_FORMAT);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fShowDayOfWeek) {
|
if (fShowDayOfWeek) {
|
||||||
BString timeFormat("eee ");
|
BString timeFormat("eee ");
|
||||||
offset = fLocale.FormatTime(fCurrentTimeStr, sizeof(fCurrentTimeStr),
|
offset = fLocale.FormatTime(fCurrentTimeStr, sizeof(fCurrentTimeStr),
|
||||||
fCurrentTime, timeFormat);
|
fCurrentTime, timeFormat);
|
||||||
|
|
||||||
|
if (offset < 0) {
|
||||||
|
// error occured, attempt to overwrite with current time
|
||||||
|
// (this should not ever happen)
|
||||||
|
fLocale.FormatTime(fCurrentTimeStr, sizeof(fCurrentTimeStr),
|
||||||
|
fCurrentTime,
|
||||||
|
fShowSeconds ? B_MEDIUM_TIME_FORMAT : B_SHORT_TIME_FORMAT);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
strlcpy(fCurrentTimeStr + offset, tmp, sizeof(fCurrentTimeStr) - offset);
|
fLocale.FormatTime(fCurrentTimeStr + offset,
|
||||||
|
sizeof(fCurrentTimeStr) - offset, fCurrentTime,
|
||||||
|
fShowSeconds ? B_MEDIUM_TIME_FORMAT : B_SHORT_TIME_FORMAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
TTimeView::GetCurrentDate()
|
TTimeView::GetCurrentDate()
|
||||||
{
|
{
|
||||||
char tmp[64];
|
char tmp[sizeof(fCurrentTimeStr)];
|
||||||
|
|
||||||
fLocale.FormatDate(tmp, sizeof(fCurrentDateStr), fCurrentTime,
|
fLocale.FormatDate(tmp, sizeof(fCurrentDateStr), fCurrentTime,
|
||||||
B_FULL_DATE_FORMAT);
|
B_FULL_DATE_FORMAT);
|
||||||
|
|||||||
Reference in New Issue
Block a user