summaryrefslogtreecommitdiff
path: root/lib/glob.in.h
Commit message (Collapse)AuthorAgeFilesLines
* glob-h: Avoid conflict with preprocessor macros owned by the system.Bruno Haible2021-06-071-9/+1
| | | | | | | | | | This fixes a compilation error on DragonFly BSD 6.0. * lib/glob.in.h: Don't include <libc-config.h>. Don't define __USE_GNU. Include glob-libc.gl.h instead of glob-libc.h. * modules/glob-h (Makefile.am): Arrange to create glob-libc.gl.h from glob-libc.h. * lib/libc-config.h: Add comment.
* Put LGPLv2+ notices in source files where appropriate.Bruno Haible2021-06-041-8/+8
| | | | | * lib/**.{h,c,gperf}: Use LGPLv2+ notice whenever the module description says so.
* glob: include libc-config.h only if neededPaul Eggert2021-02-241-1/+3
|
* maint: run 'make update-copyright'Paul Eggert2020-12-311-1/+1
|
* Use __restrict also on clang.Bruno Haible2020-08-161-1/+3
| | | | | | * lib/argp.h (__restrict): Don't define as a macro on clang >= 3. * lib/glob.in.h (_Restrict_): Use __restrict on clang >= 3. * lib/unitypes.in.h (_UC_RESTRICT): Likewise.
* glob, spawn: Use improved '_Restrict_' definition.Bruno Haible2020-02-231-4/+5
| | | | | * lib/glob.in.h (_Restrict_): Use same definition as in lib/regex.h. * lib/spawn.in.h (_Restrict_, _Restrict_arr_): Likewise.
* maint: Run 'make update-copyright'Paul Eggert2019-12-311-1/+1
|
* maint: Run 'make update-copyright'Paul Eggert2019-01-011-1/+1
|
* glob-h: New module.Bruno Haible2018-08-071-20/+81
| | | | | | | | | | | | | | | | | | | | | * lib/glob.in.h: Use nearly the usual gnulib idioms for header file replacements. * lib/glob.c: Include <config.h>. * m4/glob_h.m4: New file. * m4/glob.m4 (gl_GLOB): Require gl_GLOB_H. Remove code that is moved to glob_h.m4. Set HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P, REPLACE_GLOB_PATTERN_P as appropriate. (gl_PREREQ_GLOB): Don't require AC_C_RESTRICT and AC_USE_SYSTEM_EXTENSIONS, now done through module 'glob-h'. * modules/glob-h: New file. * modules/glob (Files): Remove lib/glob.in.h, lib/glob-libc.h. (Dependencies): Add glob-h. Remove extensions, snippet/*, libc-config, lstat, sys_stat. Change conditions. (configure.ac): Test HAVE_GLOB, REPLACE_GLOB, HAVE_GLOB_PATTERN_P, REPLACE_GLOB_PATTERN_P. Set module indicator. (Makefile.am): Remove code that is moved to glob-h. * doc/posix-headers/glob.texi: Mention the 'glob-h' module. * modules/posixcheck (Depends-on): Add glob-h.
* glob: Don't compile replacements on recent glibc systems.Bruno Haible2018-03-161-27/+64
| | | | | | | | | | | | | | * lib/glob.in.h: Use the usual idiom for the double-inclusion guard. If REPLACE_GLOB is 0, include the system's <glob.h> and use _GL_CXXALIAS_SYS. * m4/glob.m4 (gl_GLOB): Set REPLACE_GLOB instead of GLOB_H. Accept _GNU_GLOB_INTERFACE_VERSION 2 as well. Delete the file conf$$-globtest inside the AC_RUN_IFELSE block. Remove GL_GENERATE_GLOB_H conditional. * modules/glob (Dependencies): Test REPLACE_GLOB instead of GLOB_H. Remove snippet/warn-on-use. (configure.ac): Test REPLACE_GLOB instead of GLOB_H. (Makefile.am): Create glob.h always. Update list of substitutions in glob.h. Don't depend on $(WARN_ON_USE_H).
* glob: Fix compilation error in C++ mode.Bruno Haible2018-03-151-0/+15
| | | | * lib/glob.in.h (_Restrict_): Define, like in regex.h and spawn.in.h.
* maint: Run 'make update-copyright'Paul Eggert2018-01-011-1/+1
|
* all: prefer https: URLsPaul Eggert2017-09-131-1/+1
|
* glob: use scratch_buffer instead of extend_allocaPaul Eggert2017-09-011-41/+1
| | | | | | | | | | | | | | | | | | | | | Much of the lib/glob.c part of this patch comes from a glibc patch proposed by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-08/msg00456.html * lib/glob.c: Do not include <config.h>, since <libc-config.h>, included via glob.h, does this for us now. (__set_errno): Remove, as libc-config does this for us now. Include <scratch_buffer.h>. (GETPW_R_SIZE_MAX): Remove. (glob): Use struct scratch_buffer instead of extend_alloca. * lib/glob.in.h: Include libc-config.h rather than including <sys/cdefs.h> conditionally. (__BEGIN_DECLS, __END_DECLS, __THROW, __THROWNL, attribute_hidden) (__glibc_unlikely, __restrict, weak_alias): Remove, as libc-config does this for us now. * m4/glob.m4 (gl_PREREQ_GLOB): Remove sys/cdefs.h tests; no longer needed. * modules/glob (Depends-on): Add libc-config, scratch_buffer. (glob.h): Do not replace HAVE_SYS_CDEFS_H.
* glob: match dangling symlinksPaul Eggert2017-08-311-8/+0
| | | | | | | | | | | | | | | | | | | This fixes a bug I inadvertently introduced to Gnulib when I merged glibc glob back into gnulib on 2007-10-16. This fix is inspired by a patch proposed for glibc by Adhemerval Zanella in: https://sourceware.org/ml/libc-alpha/2017-08/msg00446.html * doc/posix-functions/glob.texi: Update list of affected platforms. * lib/glob.c (__lstat64): New macro. (is_dir): New function. (glob, glob_in_dir): Match symlinks even if they are dangling. (link_stat, link_exists_p): Remove. All uses removed. * lib/glob.in.h (__attribute_noinline__): Remove; no longer used. * m4/glob.m4 (gl_PREREQ_GLOB): Do not check for fstatat. * modules/glob (Depends-on): Remove dirfd. * modules/glob-tests (Depends-on): Add symlink. * tests/test-glob.c: Include errno.h, unistd.h. (BASE): New macro. (main): Test dangling symlinks, if symlinks are supported.
* glob: try to port recent changes to MS-WindowsPaul Eggert2017-08-241-0/+1
| | | | | | | Problem reported by Bruno Haible in: http://lists.gnu.org/archive/html/bug-gnulib/2017-08/msg00170.html * lib/glob.c (__glob_pattern_p) [!_LIBC]: Move from here ... * lib/glob.in.h (__glob_pattern_p): ... to here.
* glob: merge from glibc with Zanella glob changesPaul Eggert2017-08-231-5/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge glob from glibc, with changes for glob proposed by Adhemerval Zanella in the thread starting here: https://sourceware.org/ml/libc-alpha/2017-08/msg01079.html plus some fixes for this merge. * lib/flexmember.h: Change license wording to something that works unchanged in Glibc, since this code might be used in Glibc and this will minimize 'diff' output. * lib/glob_internal.h, lib/glob_pattern_p.c, lib/globfree.c: New files, ported from glibc. * lib/glob_pattern_p.c, lib/globfree.c, lib/glob.c [!_LIBC]: Include <config.h> first. * lib/glob-libc.h (_Restrict_): Remove. All uses replaced with __restrict. (__size_t): Remove. All uses replaced by size_t. (size_t): Define by defining __need_size_t and including <stddef.h>. This should work even in non-glibc platforms, where any name pollution is OK. Use __USE_MISC instead of __USE_BSD || __USE_GNU. (struct stat64): Don’t worry about __GLOB_GNULIB. (glob, globfree, glob_pattern_p): Remove macros for __USE_FILE_OFFSET64 && __GNUC__ < 2 && !defined __GLOB_GNULIB case. Remove _GL_ARG_NONNULL as GNU behavior is to accept NULL but set errno. * lib/glob.c (_GL_ARG_NONNULL) [!_LIBC]: Remove. All uses removed since the glibc behavior works on null pointers. Do not include stdio.h; old SunOS is irrelevant now. Do not worry about GLOB_ONLY_P as we now mimic glibc here. Include glob_internal.h. (D_INO_TO_RESULT): Depend on (_LIBC || D_INO_IN_DIRENT), not ((POSIX || WINDOWS32) && !__GNU_LIBRARY__). The latter probably worked only coincidentally. (attribute_hidden, __attribute_noinline__, __glibc_unlikely): Remove macros; now done in glob.in.h. (size_add_wrapv): Do not use __builtin_add_overflow if __ICC. (glob): Properly initialize glob structure with GLOB_BRACE|GLOB_DOOFFS (bug 20707). Remove old code using SHELL since Bash no longer uses this. (glob, prefix_array): Separate MS code better. (glob, glob_in_dir): Use C99 decls before statements when glibc does. (glob_in_dir): Remove old Amiga and VMS code. (globfree, __glob_pattern_type, __glob_pattern_p): Move to separate files. * lib/glob.in.h (attribute_hidden, __attribute_noinline__) (__glibc_unlikely): Move here from glob.c. (__restrict): New macro here, replacing the _Restrict_ in glob.c. (weak_alias): New macro. (__size_t): Remove. All uses replaced by size_t. * modules/d-ino (License): Now LGPLv2+, for compatibility with glob. * modules/flexmember (License): Now LGPLv2+, which it should have been anyway since flexmember.h is not unlimited-license. * modules/glob (Files): Add +lib/glob_internal.h, lib/glob_pattern_p.c, lib/globfree.c. (Depends-on): Remove snippet/arg-nonnull.
* version-etc: new yearPaul Eggert2017-01-011-1/+1
| | | | | | | | | | * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
* version-etc: new yearPaul Eggert2016-01-011-1/+1
| | | | | | | | | | * build-aux/gendocs.sh (version): * doc/gendocs_template: * doc/gendocs_template_min: * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright dates by hand in templates and the like. * all files: Run 'make update-copyright'.
* version-etc: new yearPaul Eggert2014-12-311-1/+1
| | | | | | * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date. * all files: Run 'make update-copyright'.
* maint: update copyrightEric Blake2014-01-011-1/+1
| | | | | | I ran 'make update-copyright'. Signed-off-by: Eric Blake <eblake@redhat.com>
* glob: fix compilationEric Blake2013-09-091-0/+1
| | | | | | | | Sometimes, it just isn't my day. The previous patch missed an #endif. * lib/glob.in.h (__THROW): Fix missing line in previous commit. Signed-off-by: Eric Blake <eblake@redhat.com>
* glob: fix build for platforms without __THROWEric Blake2013-09-071-0/+2
| | | | | | | | | | | | The previous fix for glibc broke builds on non-glibc platforms that don't pre-define __THROW. Perhaps we could make the code more optimal by using gcc attributes instead of expanding to nothing, to match the glibc usage; but for now this fixes the build. Reproted by Tom G. Christensen. * lib/glob.in.h (__THROW): Add definition again. Signed-off-by: Eric Blake <eblake@redhat.com>
* glob: avoid -Wattribute warnings on glibcEric Blake2013-09-041-2/+2
| | | | | | | | | | | | | Colin Watson reported that some versions of gcc warn about the use of attribute((leaf)) on static functions, since it is documented to have an effect only on external functions. * lib/glob.c (next_brace_sub, prefix_array, collated_compare): Use __THROWNL, not __THROW, on static functions. * lib/glob.in.h (__THROW): Adjust... (__THROWNL): ...accordingly. Signed-off-by: Eric Blake <eblake@redhat.com>
* maint: update all copyright year number rangesEric Blake2013-01-011-1/+1
| | | | | | Run "make update-copyright". Compare to commit 1602f0a from last year. Signed-off-by: Eric Blake <eblake@redhat.com>
* maint: replace FSF snail-mail addresses with URLsPaul Eggert2012-02-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/argz.mk, lib/accept4.c, lib/alignof.h, lib/alloca.in.h: * lib/alphasort.c, lib/arcfour.c, lib/arcfour.h, lib/arctwo.c: * lib/arctwo.h, lib/argz.c, lib/arpa_inet.in.h, lib/asnprintf.c: * lib/asprintf.c, lib/assert.in.h, lib/base32.c, lib/base32.h: * lib/base64.c, lib/base64.h, lib/c-ctype.c, lib/c-ctype.h: * lib/c-strcase.h, lib/c-strcasecmp.c, lib/c-strncasecmp.c: * lib/check-version.c, lib/check-version.h, lib/config.charset: * lib/ctype.in.h, lib/des.c, lib/des.h, lib/dup3.c, lib/errno.in.h: * lib/float+.h, lib/fnmatch.c, lib/fnmatch.in.h, lib/fnmatch_loop.c: * lib/fseeko.c, lib/gai_strerror.c, lib/gc-gnulib.c: * lib/gc-libgcrypt.c, lib/gc-pbkdf2-sha1.c, lib/gc.h: * lib/getaddrinfo.c, lib/getdelim.c, lib/getfilecon.c, lib/getline.c: * lib/getlogin_r.c, lib/getpass.c, lib/getpass.h, lib/gettext.h: * lib/gettimeofday.c, lib/glob.in.h, lib/glthread/cond.c: * lib/glthread/cond.h, lib/glthread/lock.c, lib/glthread/lock.h: * lib/glthread/thread.c, lib/glthread/thread.h: * lib/glthread/threadlib.c, lib/glthread/yield.h, lib/hmac-md5.c: * lib/hmac-sha1.c, lib/hmac.h, lib/iconv.c, lib/iconv.in.h: * lib/iconv_close.c, lib/iconv_open.c, lib/inet_ntop.c, lib/isfinite.c: * lib/isinf.c, lib/iswblank.c, lib/langinfo.in.h, lib/link.c: * lib/localcharset.c, lib/localcharset.h, lib/lseek.c, lib/malloc.c: * lib/malloca.c, lib/malloca.h, lib/md2.c, lib/md2.h, lib/md4.c: * lib/md4.h, lib/md5.c, lib/md5.h, lib/memmem.c, lib/mempcpy.c: * lib/memset.c, lib/memxor.c, lib/memxor.h, lib/minmax.h, lib/mktime.c: * lib/msvc-inval.c, lib/msvc-inval.h, lib/msvc-nothrow.c: * lib/msvc-nothrow.h, lib/netdb.in.h, lib/netinet_in.in.h, lib/nproc.c: * lib/nproc.h, lib/obstack_printf.c, lib/pathmax.h, lib/pipe.c: * lib/pipe2.c, lib/poll.c, lib/poll.in.h, lib/printf-args.c: * lib/printf-args.h, lib/printf-parse.c, lib/printf-parse.h: * lib/pselect.c, lib/pthread.in.h, lib/pty-private.h, lib/pty.in.h: * lib/read-file.c, lib/read-file.h, lib/ref-add.sin, lib/ref-del.sin: * lib/regcomp.c, lib/regex.c, lib/regex.h, lib/regex_internal.c: * lib/regex_internal.h, lib/regexec.c, lib/rijndael-alg-fst.c: * lib/rijndael-alg-fst.h, lib/rijndael-api-fst.c: * lib/rijndael-api-fst.h, lib/rint.c, lib/rintf.c, lib/rintl.c: * lib/round.c, lib/roundf.c, lib/roundl.c, lib/scandir.c, lib/select.c: * lib/sha1.c, lib/sha1.h, lib/size_max.h, lib/snprintf.c: * lib/stdalign.in.h, lib/stdarg.in.h, lib/stdbool.in.h: * lib/stddef.in.h, lib/stdint.in.h, lib/stdio.in.h, lib/str-kmp.h: * lib/str-two-way.h, lib/strcasecmp.c, lib/strcasestr.c, lib/strdup.c: * lib/striconv.c, lib/striconv.h, lib/string.in.h, lib/strings.in.h: * lib/strncasecmp.c, lib/strndup.c, lib/strnlen.c, lib/strpbrk.c: * lib/strptime.c, lib/strsep.c, lib/strstr.c, lib/strverscmp.c: * lib/sys_file.in.h, lib/sys_ioctl.in.h, lib/sys_select.in.h: * lib/sys_socket.in.h, lib/sys_stat.in.h, lib/sys_time.in.h: * lib/sys_times.in.h, lib/sys_types.in.h, lib/sys_uio.in.h: * lib/sys_utsname.in.h, lib/sys_wait.in.h, lib/tcgetsid.c: * lib/termios.in.h, lib/time.in.h, lib/time_r.c, lib/timegm.c: * lib/times.c, lib/unictype/3level.h, lib/unictype/3levelbit.h: * lib/unistd.in.h, lib/vasnprintf.c, lib/vasnprintf.h, lib/vasprintf.c: * lib/vsnprintf.c, lib/waitpid.c, lib/wchar.in.h, lib/wctype.in.h: * lib/xsize.h, tests/test-closein.c, tests/test-des.c: * tests/test-fclose.c, tests/test-fgetc.c, tests/test-filevercmp.c: * tests/test-fputc.c, tests/test-fread.c, tests/test-fwrite.c: * tests/test-gc-arcfour.c, tests/test-gc-arctwo.c, tests/test-gc-des.c: * tests/test-gc-hmac-md5.c, tests/test-gc-hmac-sha1.c: * tests/test-gc-md2.c, tests/test-gc-md4.c, tests/test-gc-md5.c: * tests/test-gc-pbkdf2-sha1.c, tests/test-gc-rijndael.c: * tests/test-gc-sha1.c, tests/test-gc.c, tests/test-getdelim.c: * tests/test-getline.c, tests/test-getndelim2.c, tests/test-md2.c: * tests/test-md4.c, tests/test-parse-datetime.c, tests/test-perror.c: * tests/test-perror2.c, tests/test-pipe.c, tests/test-pipe2.c: * tests/test-poll.c, tests/test-quotearg-simple.c: * tests/test-quotearg.c, tests/test-quotearg.h: * tests/test-round-ieee.c, tests/test-round1.c: * tests/test-roundf-ieee.c, tests/test-roundf1.c: * tests/test-roundl-ieee.c, tests/test-roundl.c: * tests/test-safe-alloc.c, tests/test-sigpipe.c: * tests/test-spawn-pipe-child.c, tests/test-spawn-pipe-main.c: * tests/test-strerror.c, tests/test-strerror_r.c: * tests/test-strsignal.c, tests/test-strverscmp.c: * tests/test-xmemdup0.c: Replace FSF snail mail addresses with URLs, as per GNU coding standards. See glibc bug <http://sourceware.org/bugzilla/show_bug.cgi?id=13673>.
* maint: update all copyright year number rangesJim Meyering2012-01-011-1/+1
| | | | Run "make update-copyright".
* maint: update almost all copyright ranges to include 2011Jim Meyering2011-01-011-1/+1
| | | | Run the new "make update-copyright" rule.
* glob: Avoid #define replacements in C++ mode.Bruno Haible2010-03-081-0/+24
|
* glob: Fix C++ compilation.John W. Eaton2010-01-081-2/+7
|
* update nearly all FSF copyright year lists to include 2010Jim Meyering2010-01-011-1/+1
| | | | | Use the same procedure as for 2009, outlined in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081
* New module 'arg-nonnull'. Declare which arguments expect non-NULL values.Bruno Haible2009-12-111-1/+3
|
* Use spaces for indentation, not tabs.Bruno Haible2009-12-101-1/+1
|
* Rename glob_.h to glob.in.h.Bruno Haible2007-10-021-0/+60