(root)/
xz-5.4.5/
src/
common/
tuklib_mbstr_fw.c
       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  
      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 (int)len;
      31  }