OpenCoverage

wcsnwidth.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/bash/src/lib/sh/wcsnwidth.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* wcsnwidth.c - compute display width of wide character string, up to max-
2 specified width, return length. */-
3-
4/* Copyright (C) 2012 Free Software Foundation, Inc.-
5-
6 This file is part of GNU Bash, the Bourne Again SHell.-
7-
8 Bash is free software: you can redistribute it and/or modify-
9 it under the terms of the GNU General Public License as published by-
10 the Free Software Foundation, either version 3 of the License, or-
11 (at your option) any later version.-
12-
13 Bash is distributed in the hope that it will be useful,-
14 but WITHOUT ANY WARRANTY; without even the implied warranty of-
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-
16 GNU General Public License for more details.-
17-
18 You should have received a copy of the GNU General Public License-
19 along with Bash. If not, see <http://www.gnu.org/licenses/>.-
20*/-
21-
22#include <config.h>-
23-
24#if defined (HANDLE_MULTIBYTE)-
25-
26#include <stdc.h>-
27#include <wchar.h>-
28#include <bashansi.h>-
29-
30/* Return the number of wide characters that will be displayed from wide string-
31 PWCS. If the display width exceeds MAX, return the number of wide chars-
32 from PWCS required to display MAX characters on the screen. */-
33int-
34wcsnwidth(pwcs, n, max)-
35 const wchar_t *pwcs;-
36 size_t n, max;-
37{-
38 wchar_t wc, *ws;-
39 int len, l;-
40-
41 len = 0;-
42 ws = (wchar_t *)pwcs;-
43 while (n-- > 0 && (wc = *ws++) != L'\0')
n-- > 0Description
TRUEnever evaluated
FALSEnever evaluated
(wc = *ws++) != L'\0'Description
TRUEnever evaluated
FALSEnever evaluated
0
44 {-
45 l = wcwidth (wc);-
46 if (l < 0)
l < 0Description
TRUEnever evaluated
FALSEnever evaluated
0
47 return (-1);
never executed: return (-1);
0
48 else if (l == max - len)
l == max - lenDescription
TRUEnever evaluated
FALSEnever evaluated
0
49 return (ws - pwcs);
never executed: return (ws - pwcs);
0
50 else if (l > max - len)
l > max - lenDescription
TRUEnever evaluated
FALSEnever evaluated
0
51 return (--ws - pwcs);
never executed: return (--ws - pwcs);
0
52 len += l;-
53 }
never executed: end of block
0
54 return (ws - pwcs);
never executed: return (ws - pwcs);
0
55}-
56#endif-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.1.2