⛏️ index : haiku.git

/*
 * Copyright 2025, Haiku Inc. All rights reserved.
 * Distributed under the terms of the MIT License.
 */


#include "util.h"


string
format_timespec(Context &context, timespec time)
{
	if ((time.tv_sec == 0 && time.tv_nsec == 0) || time.tv_nsec > 999999999)
		return "timespec error";
	time_t t = (time_t)time.tv_sec;
	const struct tm *timep = localtime(&t);
	char buf[64];
	size_t bytes = strftime(buf, sizeof(buf), "%FT%T", timep);
	if (bytes == 0)
		return "strftime error";
	char tmp[256];
	snprintf(tmp, sizeof(tmp), "{tv_sec=%" B_PRIdTIME " /* %s */, tv_nsec=%ld}",
		time.tv_sec, buf, time.tv_nsec);
	return tmp;
}


string
format_unsigned(uint32 value)
{
	char tmp[12];
	snprintf(tmp, sizeof(tmp), "%" B_PRIu32, value);
	return tmp;
}


string
format_unsigned64(uint64 value)
{
	char tmp[24];
	snprintf(tmp, sizeof(tmp), "%" B_PRIu64, value);
	return tmp;
}