Home | History | Annotate | Line # | Download | only in common
      1 ///////////////////////////////////////////////////////////////////////////////
      2 //
      3 /// \file       tuklib_mstr_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 
     16 extern int
     17 tuklib_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