[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: i guess we're frozen & stuff
From: |
Greg Troxel |
Subject: |
Re: i guess we're frozen & stuff |
Date: |
Tue, 11 Aug 2009 09:27:45 -0400 |
User-agent: |
Gnus/5.110011 (No Gnus v0.11) Emacs/22.3 (berkeley-unix) |
guile master fails to build on NetBSD because it passes characters to
tolower, which is specified to take an int. It's really a macro, and
this is a messy situation. The language weenies I've talked to about
this think that in this case it's the program that passes a char that's
wrong. Hence the following patch. Note that because tolower is
specified to take an int, this promotion to int is what would happen if
it really were a function, so this "can't be wrong" :-)
See
http://www.opengroup.org/onlinepubs/000095399/functions/tolower.html
and the statement about the argument being of type int and being of a
restricted set of values.
diff --git a/libguile/strings.c b/libguile/strings.c
index c3ea8b8..437cedc 100644
--- a/libguile/strings.c
+++ b/libguile/strings.c
@@ -1427,8 +1427,8 @@ unistring_escapes_to_guile_escapes (char **bufp, size_t
*lenp)
/* Convert \u00NN to \xNN */
after[j] = '\\';
after[j + 1] = 'x';
- after[j + 2] = tolower (before[i + 4]);
- after[j + 3] = tolower (before[i + 5]);
+ after[j + 2] = tolower ((int) before[i + 4]);
+ after[j + 3] = tolower ((int) before[i + 5]);
i += 6;
j += 4;
}
@@ -1440,12 +1440,12 @@ unistring_escapes_to_guile_escapes (char **bufp, size_t
*lenp)
/* Convert \U00NNNNNN to \UNNNNNN */
after[j] = '\\';
after[j + 1] = 'U';
- after[j + 2] = tolower (before[i + 4]);
- after[j + 3] = tolower (before[i + 5]);
- after[j + 4] = tolower (before[i + 6]);
- after[j + 5] = tolower (before[i + 7]);
- after[j + 6] = tolower (before[i + 8]);
- after[j + 7] = tolower (before[i + 9]);
+ after[j + 2] = tolower ((int) before[i + 4]);
+ after[j + 3] = tolower ((int) before[i + 5]);
+ after[j + 4] = tolower ((int) before[i + 6]);
+ after[j + 5] = tolower ((int) before[i + 7]);
+ after[j + 6] = tolower ((int) before[i + 8]);
+ after[j + 7] = tolower ((int) before[i + 9]);
i += 10;
j += 8;
}
pgpyY6qujRdn3.pgp
Description: PGP signature
Re: i guess we're frozen & stuff, Mike Gran, 2009/08/11
Re: i guess we're frozen & stuff, Juhani Viheräkoski, 2009/08/11
Re: i guess we're frozen & stuff,
Greg Troxel <=
unsigned char confusion, Greg Troxel, 2009/08/11
Re: i guess we're frozen & stuff, Ken Raeburn, 2009/08/11