maint: avoid locale-sensitivity in string case comparisons

strcase{cmp/str} have the drawback of being sensitive to the global
locale; this is unacceptable in a library setting.  Prefer a
hard-coded C locale alternative for all but virsh, which is user
facing and where the global locale isn't changing externally.

* .gnulib: Update to latest, for c-strcasestr change.
* bootstrap.conf (gnulib_modules): Drop strcasestr, add c-strcase
and c-strcasestr.
* cfg.mk (sc_avoid_strcase): New rule.
(exclude_file_name_regexp--sc_avoid_strcase): New exception.
* src/internal.h (STRCASEEQ, STRCASENEQ, STRCASEEQLEN)
(STRCASENEQLEN): Adjust offenders.
* src/qemu/qemu_monitor_text.c (qemuMonitorTextEjectMedia):
Likewise.
* tools/virsh.c (namesorter): Document exception.
This commit is contained in:
Eric Blake
2011-03-30 20:26:27 -06:00
parent 06732e1a7d
commit 6c9e89bbd2
6 changed files with 19 additions and 7 deletions

View File

@@ -22,6 +22,8 @@ gnulib_modules='
areadlink
base64
c-ctype
c-strcase
c-strcasestr
canonicalize-lgpl
chown
close
@@ -63,7 +65,6 @@ sigpipe
snprintf
socket
stpcpy
strcasestr
strchrnul
strndup
strerror