blob: 3b528e7d4b8a6d12b7bbf2f1840c8ea5c2848bec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/* Message list test for ASCII character set.
Copyright (C) 2001 Free Software Foundation, Inc.
Written by Bruno Haible <haible@clisp.cons.org>, 2001.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "msgl-ascii.h"
#include "c-ctype.h"
/* This file's structure parallels msgl-iconv.c. */
bool
is_ascii_string (string)
const char *string;
{
for (; *string; string++)
if (!c_isascii ((unsigned char) *string))
return false;
return true;
}
bool
is_ascii_string_list (slp)
string_list_ty *slp;
{
size_t i;
if (slp != NULL)
for (i = 0; i < slp->nitems; i++)
if (!is_ascii_string (slp->item[i]))
return false;
return true;
}
bool
is_ascii_message (mp)
message_ty *mp;
{
const char *p = mp->msgstr;
const char *p_end = p + mp->msgstr_len;
for (; p < p_end; p++)
if (!c_isascii ((unsigned char) *p))
return false;
if (!is_ascii_string_list (mp->comment))
return false;
if (!is_ascii_string_list (mp->comment_dot))
return false;
return true;
}
bool
is_ascii_message_list (mlp)
message_list_ty *mlp;
{
size_t j;
for (j = 0; j < mlp->nitems; j++)
if (!is_ascii_message (mlp->item[j]))
return false;
return true;
}
|