]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/xz/src/common/tuklib_mbstr_fw.c
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / xz / src / common / tuklib_mbstr_fw.c
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 }