delete leading spaces from names.

This commit is contained in:
Enno Rehling 2016-11-09 22:03:46 +01:00
parent f03e8f3b62
commit 7b412399b7
2 changed files with 20 additions and 14 deletions

View File

@ -35,22 +35,27 @@
int unicode_utf8_mkname(utf8_t * op, size_t outlen, const utf8_t * ip)
{
int ret = 0;
bool iss = true;
while (*ip) {
ucs4_t ucs = *ip;
size_t size = 1;
bool isp = false;
// bool iss = false;
if (ucs & 0x80) {
ret = unicode_utf8_to_ucs4(&ucs, ip, &size);
if (ret !=0) {
return ret;
}
isp = iswprint(ucs);
// iss = iswspace(ucs);
} else {
isp = isprint(ucs);
// iss = isspace(ucs);
}
do {
ucs4_t ucs = *ip;
if (ucs & 0x80) {
ret = unicode_utf8_to_ucs4(&ucs, ip, &size);
if (ret !=0) {
return ret;
}
isp = iswprint(ucs);
iss &= !!iswspace(ucs);
} else {
isp = isprint(ucs);
iss &= !!isspace(ucs);
}
if (iss) {
ip += size;
}
} while (iss);
if (size > outlen) {
return ENOMEM;
}

View File

@ -8,9 +8,10 @@
static void test_unicode_mkname(CuTest * tc)
{
char buffer[32];
CuAssertIntEquals(tc, 0, unicode_utf8_mkname(buffer, sizeof(buffer), " HeLlO W0Rld"));
CuAssertStrEquals(tc, "HeLlO W0Rld", buffer);
CuAssertIntEquals(tc, 0, unicode_utf8_mkname(buffer, sizeof(buffer), "HeLlO W0Rld"));
CuAssertStrEquals(tc, "HeLlO W0Rld", buffer);
memset(buffer, 0, sizeof(buffer));
CuAssertIntEquals(tc, 1, unicode_utf8_mkname(buffer, sizeof(buffer), "HeLlO\nW0Rld"));
CuAssertStrEquals(tc, "HeLlOW0Rld", buffer);
memset(buffer, 0, sizeof(buffer));