]> Savannah Git Hosting - gnulib.git/commit
mbrtowc: Ensure the mbtowc_lock is unique.
authorBruno Haible <bruno@clisp.org>
Fri, 3 Jan 2020 10:41:49 +0000 (11:41 +0100)
committerBruno Haible <bruno@clisp.org>
Fri, 3 Jan 2020 15:52:21 +0000 (16:52 +0100)
commitcf73cf0f6b799dd9b1e8fb64e573d3398a34eb8f
tree25420a0e07b4b3f2b4fd8ebc31389ab41b7fd9ce
parentd059bd2b1bc4d3ec09eabb238f9eb28c7a2fddff
mbrtowc: Ensure the mbtowc_lock is unique.

* lib/mbtowc-lock.c: New file, based on lib/setlocale-lock.c.
* lib/mbtowc-lock.h: New file, extracted from lib/mbrtowc.c and
lib/setlocale_null.c.
* lib/mbrtowc.c: Include headers needed for mbtowc-lock.h. Don't include
glthread/lock.h. Include mbtowc-lock.h.
(mbtowc_lock): Remove declaration.
(mbrtowc): Use mbtowc_with_lock.
* m4/mbrtowc.m4 (gl_FUNC_MBRTOWC): Require gl_PTHREADLIB. Check for
threads.h. Set LIB_MBRTOWC.
(gl_PREREQ_MBTOWC_LOCK): New macro.
* modules/mbrtowc (Files): Add lib/mbtowc-lock.h, lib/mbtowc-lock.c,
lib/windows-initguard.h, m4/threadlib.m4, m4/visibility.m4.
(Depends-on): Remove lock.
(configure.ac): Arrange to compile mbtowc-lock.c.
(Link): Mention $(LIB_MBRTOWC) instead of $(LIBTHREAD).
* modules/acl (Link): Likewise.
* modules/argmatch (Link): Likewise.
* modules/backup-rename (Link): Likewise.
* modules/backupfile (Link): Likewise.
* modules/closein (Link): Likewise.
* modules/closeout (Link): Likewise.
* modules/copy-file (Link): Likewise.
* modules/csharpcomp (Link): Likewise.
* modules/csharpexec (Link): Likewise.
* modules/dfa (Link): Likewise.
* modules/exclude (Link): Likewise.
* modules/fnmatch (Link): Likewise.
* modules/fnmatch-gnu (Link): Likewise.
* modules/fnmatch-posix (Link): Likewise.
* modules/glob (Link): Likewise.
* modules/human (Link): Likewise.
* modules/javacomp (Link): Likewise.
* modules/javaexec (Link): Likewise.
* modules/javaversion (Link): Likewise.
* modules/mbfile (Link): Likewise.
* modules/mbiter (Link): Likewise.
* modules/mbmemcasecmp (Link): Likewise.
* modules/mbmemcasecoll (Link): Likewise.
* modules/mbrlen (Link): Likewise.
* modules/mbscasecmp (Link): Likewise.
* modules/mbscasestr (Link): Likewise.
* modules/mbschr (Link): Likewise.
* modules/mbscspn (Link): Likewise.
* modules/mbsinit (Link): Likewise.
* modules/mbslen (Link): Likewise.
* modules/mbsncasecmp (Link): Likewise.
* modules/mbsnlen (Link): Likewise.
* modules/mbsnrtowcs (Link): Likewise.
* modules/mbspbrk (Link): Likewise.
* modules/mbspcasecmp (Link): Likewise.
* modules/mbsrchr (Link): Likewise.
* modules/mbsrtowcs (Link): Likewise.
* modules/mbssep (Link): Likewise.
* modules/mbsspn (Link): Likewise.
* modules/mbsstr (Link): Likewise.
* modules/mbstok_r (Link): Likewise.
* modules/mbswidth (Link): Likewise.
* modules/mbuiter (Link): Likewise.
* modules/mkdir-p (Link): Likewise.
* modules/propername (Link): Likewise.
* modules/quote (Link): Likewise.
* modules/quotearg (Link): Likewise.
* modules/quotearg-simple (Link): Likewise.
* modules/regex-quote (Link): Likewise.
* modules/rpmatch (Link): Likewise.
* modules/sh-quote (Link): Likewise.
* modules/system-quote (Link): Likewise.
* modules/trim (Link): Likewise.
* modules/unistdio/ulc-asnprintf (Link): Likewise.
* modules/unistdio/ulc-fprintf (Link): Likewise.
* modules/unistdio/ulc-vasnprintf (Link): Likewise.
* modules/unistdio/ulc-vasprintf (Link): Likewise.
* modules/unistdio/ulc-vfprintf (Link): Likewise.
* modules/unistdio/ulc-vsnprintf (Link): Likewise.
* modules/unistdio/ulc-vsprintf (Link): Likewise.
* modules/xfreopen (Link): Likewise.
* modules/xmemcoll (Link): Likewise.
* modules/yesno (Link): Likewise.
* modules/regex (Link): Add $(LIB_MBRTOWC).
* modules/acl-tests (Makefile.am): Link the programs with $(LIB_MBRTOWC)
instead of $(LIBTHREAD).
* modules/argmatch-tests (Makefile.am): Likewise.
* modules/closein-tests (Makefile.am): Likewise.
* modules/copy-file-tests (Makefile.am): Likewise.
* modules/dfa-tests (Makefile.am): Likewise.
* modules/fnmatch-tests (Makefile.am): Likewise.
* modules/glob-tests (Makefile.am): Likewise.
* modules/mbmemcasecmp-tests (Makefile.am): Likewise.
* modules/mbmemcasecoll-tests (Makefile.am): Likewise.
* modules/mbrtowc-tests (Makefile.am): Likewise.
* modules/mbscasecmp-tests (Makefile.am): Likewise.
* modules/mbscasestr-tests (Makefile.am): Likewise.
* modules/mbschr-tests (Makefile.am): Likewise.
* modules/mbscspn-tests (Makefile.am): Likewise.
* modules/mbsinit-tests (Makefile.am): Likewise.
* modules/mbsncasecmp-tests (Makefile.am): Likewise.
* modules/mbsnrtowcs-tests (Makefile.am): Likewise.
* modules/mbspbrk-tests (Makefile.am): Likewise.
* modules/mbspcasecmp-tests (Makefile.am): Likewise.
* modules/mbsrchr-tests (Makefile.am): Likewise.
* modules/mbsrtowcs-tests (Makefile.am): Likewise.
* modules/mbsspn-tests (Makefile.am): Likewise.
* modules/mbsstr-tests (Makefile.am): Likewise.
* modules/quotearg-simple-tests (Makefile.am): Likewise.
* modules/quotearg-tests (Makefile.am): Likewise.
* modules/readtokens-tests (Makefile.am): Likewise.
* modules/sh-quote-tests (Makefile.am): Likewise.
* modules/system-quote-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-asnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vasprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vsnprintf-tests (Makefile.am): Likewise.
* modules/unistdio/ulc-vsprintf-tests (Makefile.am): Likewise.
* modules/yesno-tests (Makefile.am): Likewise.
* modules/exclude-tests (Makefile.am): Link the programs with
$(LIB_MBRTOWC).
* modules/regex-tests (Makefile.am): Likewise.
* modules/regex-quote-tests (Makefile.am): Likewise.
107 files changed:
ChangeLog
lib/mbrtowc.c
lib/mbtowc-lock.c [new file with mode: 0644]
lib/mbtowc-lock.h [new file with mode: 0644]
m4/mbrtowc.m4
modules/acl
modules/acl-tests
modules/argmatch
modules/argmatch-tests
modules/backup-rename
modules/backupfile
modules/closein
modules/closein-tests
modules/closeout
modules/copy-file
modules/copy-file-tests
modules/csharpcomp
modules/csharpexec
modules/dfa
modules/dfa-tests
modules/exclude
modules/exclude-tests
modules/fnmatch
modules/fnmatch-gnu
modules/fnmatch-posix
modules/fnmatch-tests
modules/glob
modules/glob-tests
modules/human
modules/javacomp
modules/javaexec
modules/javaversion
modules/mbfile
modules/mbiter
modules/mbmemcasecmp
modules/mbmemcasecmp-tests
modules/mbmemcasecoll
modules/mbmemcasecoll-tests
modules/mbrlen
modules/mbrtowc
modules/mbrtowc-tests
modules/mbscasecmp
modules/mbscasecmp-tests
modules/mbscasestr
modules/mbscasestr-tests
modules/mbschr
modules/mbschr-tests
modules/mbscspn
modules/mbscspn-tests
modules/mbsinit
modules/mbsinit-tests
modules/mbslen
modules/mbsncasecmp
modules/mbsncasecmp-tests
modules/mbsnlen
modules/mbsnrtowcs
modules/mbsnrtowcs-tests
modules/mbspbrk
modules/mbspbrk-tests
modules/mbspcasecmp
modules/mbspcasecmp-tests
modules/mbsrchr
modules/mbsrchr-tests
modules/mbsrtowcs
modules/mbsrtowcs-tests
modules/mbssep
modules/mbsspn
modules/mbsspn-tests
modules/mbsstr
modules/mbsstr-tests
modules/mbstok_r
modules/mbswidth
modules/mbuiter
modules/mkdir-p
modules/propername
modules/quote
modules/quotearg
modules/quotearg-simple
modules/quotearg-simple-tests
modules/quotearg-tests
modules/readtokens-tests
modules/regex
modules/regex-quote
modules/regex-quote-tests
modules/regex-tests
modules/rpmatch
modules/sh-quote
modules/sh-quote-tests
modules/system-quote
modules/system-quote-tests
modules/trim
modules/unistdio/ulc-asnprintf
modules/unistdio/ulc-asnprintf-tests
modules/unistdio/ulc-fprintf
modules/unistdio/ulc-vasnprintf
modules/unistdio/ulc-vasnprintf-tests
modules/unistdio/ulc-vasprintf
modules/unistdio/ulc-vasprintf-tests
modules/unistdio/ulc-vfprintf
modules/unistdio/ulc-vsnprintf
modules/unistdio/ulc-vsnprintf-tests
modules/unistdio/ulc-vsprintf
modules/unistdio/ulc-vsprintf-tests
modules/xfreopen
modules/xmemcoll
modules/yesno
modules/yesno-tests