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 15 extern int 16 tuklib_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