1///////////////////////////////////////////////////////////////////////////////
2//
3/// \file       tuklib_mbstr_fw.c
4/// \brief      Get the field width for printf() e.g. to align table columns
5//
6//  Author:     Lasse Collin
7//
8//  This file has been put into the public domain.
9//  You can do whatever you want with this file.
10//
11///////////////////////////////////////////////////////////////////////////////
12
13#include "tuklib_mbstr.h"
14
15
16extern int
17tuklib_mbstr_fw(const char *str, int columns_min)
18{
19	size_t len;
20	const size_t width = tuklib_mbstr_width(str, &len);
21	if (width == (size_t)-1)
22		return -1;
23
24	if (width > (size_t)columns_min)
25		return 0;
26
27	if (width < (size_t)columns_min)
28		len += (size_t)columns_min - width;
29
30	return len;
31}
32