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