Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | maint: run 'make update-copyright' | Simon Josefsson | 2023-01-01 | 1 | -1/+1 |
| | |||||
* | strstr-simple: pacify GCC 12.1 | Paul Eggert | 2022-05-21 | 1 | -2/+2 |
| | | | | | * lib/str-two-way.h (two_way_long_needle): Pacify GCC 12.1 -Wsuggest-attribute=pure (x86-64, -O2). | ||||
* | maint: run 'make update-copyright' | Paul Eggert | 2022-01-01 | 1 | -1/+1 |
| | |||||
* | Put LGPLv2+ notices in source files where appropriate. | Bruno Haible | 2021-06-04 | 1 | -8/+8 |
| | | | | | * lib/**.{h,c,gperf}: Use LGPLv2+ notice whenever the module description says so. | ||||
* | maint: run 'make update-copyright' | Paul Eggert | 2020-12-31 | 1 | -1/+1 |
| | |||||
* | maint: Run 'make update-copyright' | Paul Eggert | 2019-12-31 | 1 | -1/+1 |
| | |||||
* | Update some URLs | Paul Eggert | 2019-09-22 | 1 | -1/+1 |
| | | | | | | This is a clerical change that mostly changes http: to https: in URLs where either will work. It also updates some URLs that have moved, removes some URLs that no longer work, and fixes related text. | ||||
* | * lib/str-two-way.h: Fix comment typo. | Paul Eggert | 2019-04-14 | 1 | -1/+1 |
| | |||||
* | maint: Run 'make update-copyright' | Paul Eggert | 2019-01-01 | 1 | -1/+1 |
| | |||||
* | maint: Run 'make update-copyright' | Paul Eggert | 2018-01-01 | 1 | -1/+1 |
| | |||||
* | all: Replace many more http URLs by https URLs. Update stale URLs. | Bruno Haible | 2017-09-14 | 1 | -2/+2 |
| | | | | | * users.txt: Remove mention of 'newts'. * lib/localename.c: Update comment about LANG_SOTHO. | ||||
* | all: prefer https: URLs | Paul Eggert | 2017-09-13 | 1 | -1/+1 |
| | |||||
* | version-etc: new year | Paul Eggert | 2017-01-01 | 1 | -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 year | Paul Eggert | 2016-01-01 | 1 | -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 year | Paul Eggert | 2014-12-31 | 1 | -1/+1 |
| | | | | | | * doc/gnulib.texi: * lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date. * all files: Run 'make update-copyright'. | ||||
* | maint: update copyright | Eric Blake | 2014-01-01 | 1 | -1/+1 |
| | | | | | | I ran 'make update-copyright'. Signed-off-by: Eric Blake <eblake@redhat.com> | ||||
* | maint: update all copyright year number ranges | Eric Blake | 2013-01-01 | 1 | -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 URLs | Paul Eggert | 2012-02-09 | 1 | -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 ranges | Jim Meyering | 2012-01-01 | 1 | -1/+1 |
| | | | | Run "make update-copyright". | ||||
* | strstr: revert patches that introduced bug and pessimization | Eric Blake | 2011-02-25 | 1 | -17/+20 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | Jim's one-liner solved the bug by pessimizing speed, making the algorithm shift less per iteration and thus perform more repeated comparisons. The real reason for the bug is that my supposed "optimizations" actually resulted in cases on certain periodic needles where critical_factorization returned a factorization that was equal to, rather than less than the period of the needle. This makes the CMP_FUNC choose the wrong branch, since a periodic needle must be handled differently than one where the left half of the needle does not overlap the right half. Thankfully, the flawed "optimization" was only present in gnulib, and was never ported to glibc or cygwin (the only two known implementations that use the two-way algorithm), so no additional m4 check is needed to detect the bug in the wild. * lib/str-two-way.h: Add another reference. (two_way_short_needle, two_way_long_needle): Revert changes from 2011-02-24; they pessimize search speed. (critical_factorization): Partially revert changes from 2010-06-22; they violate the requirement that the left half of the needle be smaller than the period of the needle. Signed-off-by: Eric Blake <eblake@redhat.com> | ||||
* | strstr: fix a bug whereby strstr would mistakenly return NULL | Jim Meyering | 2011-02-24 | 1 | -2/+2 |
| | | | | | | | | | * lib/str-two-way.h (two_way_short_needle): Correct off-by-one error in period calculation. (two_way_long_needle): Likewise. Reported by Ralf Wildenhues, with the short needle and haystack. * tests/test-strstr.c: Add Ralf's test case to trigger the bug. Add a more involved test to trigger the bug in two_way_long_needle. | ||||
* | maint: update almost all copyright ranges to include 2011 | Jim Meyering | 2011-01-01 | 1 | -1/+1 |
| | | | | Run the new "make update-copyright" rule. | ||||
* | memmem, strstr, strcasestr: fix bug with long periodic needle | Eric Blake | 2010-10-05 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | * lib/str-two-way.h (two_way_long_needle): Avoid bug with long periodic needle having false positive. * m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): Detect bug in glibc 2.12 and cygwin 1.7.7. (gl_FUNC_MEMMEM): Be more pessimistic when cross-compiling. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE) (gl_FUNC_STRCASESTR): Likewise. * m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE, gl_FUNC_STRSTR): Likewise. * tests/test-memmem.c (main): Expose the bug. * tests/test-strcasestr.c (main): Likewise. * tests/test-strstr.c (main): Likewise. * tests/test-c-strcasestr.c (main): Likewise. * doc/glibc-functions/memmem.texi (memmem): Document the bug. * doc/posix-functions/strstr.texi (strstr): Likewise. * doc/glibc-functions/strcasestr.texi (strcasestr): Likewise. Reported via http://sourceware.org/bugzilla/show_bug.cgi?id=12092 Signed-off-by: Eric Blake <eblake@redhat.com> | ||||
* | memmem: slight optimization | Eric Blake | 2010-06-22 | 1 | -19/+40 |
| | | | | | | | | | | | | | | | | | | | | | | | For any needle, the factorization 0/n has a local period of 1, so it is a critical factorization iff the entire needle consists only of a single repeated byte, in which case 1/n-1 would also be critical. Starting with a comparison of x[0] and x[1] in the maximal suffix check will either find the 0/n case or move on to something else, so we can optimize and start with the x[1] vs. x[2] case to begin with. To avoid out-of-bounds references, we must then special case needles of length two or less. However, for these cases, we can determine a critical factorization without any probes of the needle (we already require a non-empty needle; a 1-byte needle can factor as either 0/1 or 1/0 but the rest of our code assumes a non-empty suffix; and of the two 2-byte needle patterns, "aa" can factor as either 0/2 or 1/1 but with best performance for 1/1, and "ab" must be factored as 1/1). * lib/str-two-way.h (critical_factorization): Update comments. Reduce work during factorization phase. Reported by Carlos Bueno <carlos@bueno.org>. Signed-off-by: Eric Blake <eblake@redhat.com> | ||||
* | update nearly all FSF copyright year lists to include 2010 | Jim Meyering | 2010-01-01 | 1 | -1/+1 |
| | | | | | Use the same procedure as for 2009, outlined in http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/20081 | ||||
* | update nearly all FSF copyright year lists to include 2009 | Jim Meyering | 2009-12-29 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | The files named by the following are exempted: grep -v '^#' config/srclist.txt|grep -v '^$' \ | while read src dst; do test -f "$dst" && { echo "$dst"; continue; } test -d "$dst" || continue echo "$dst"/$(basename "$src") done > exempt git ls-files tests/unictype >> exempt In the remaining files, convert to all-interval notation if - there is already at least one year interval like 2000-2003 - the file is maintained by me - the file is in lib/uni*/, where that style already prevails Otherwise, use update-copyright's default. | ||||
* | Use spaces for indentation, not tabs. | Bruno Haible | 2009-12-10 | 1 | -180/+180 |
| | |||||
* | Glibc finally accepted the memmem speedup code, bugzilla #5514. | Eric Blake | 2008-05-15 | 1 | -1/+3 |
| | | | | | | | | | | * doc/glibc-functions/memmem.texi (memmem): Mention last broken glibc version. * doc/glibc-functions/strcasestr.texi (strcasestr): Likewise. * doc/posix-functions/strstr.texi (strstr): Likewise. * lib/str-two-way.h (MAX): Sychronize with glibc. Signed-off-by: Eric Blake <ebb9@byu.net> | ||||
* | Convert strcasestr module to use Two-Way algorithm. | Eric Blake | 2008-01-14 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | | | | | * modules/strcasestr-simple: New module, based on the old strcasestr, but with Two-Way rather than KMP. * modules/strcasestr (Depends-on): Change to strcasestr-simple. * lib/string.in.h (rpl_strcasestr): Declare. * m4/strcasestr.m4 (gl_FUNC_STRCASESTR): Check for linear performance. * lib/strcasestr.c (strcasestr): Simplify, and avoid malloc. * modules/string (Makefile.am): Support strcasestr. * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise. * modules/strcasestr-tests (Depends-on): Check for alarm. * tests/test-strcasestr.c: Augment test. * lib/str-two-way.h: Clean up stray macro. * NEWS: Document new module. * MODULES.html.sh (string handling): Likewise. * doc/functions/strcasestr.texi: New file. * doc/gnulib.texi (Function Substitutes): New node. Move memmem here, since it is not a POSIX function. Signed-off-by: Eric Blake <ebb9@byu.net> | ||||
* | Share two-way algorithm. | Eric Blake | 2008-01-10 | 1 | -0/+426 |
* lib/str-two-way.h: New file, merged from... * lib/memmem.c: ...here... * lib/strstr.c: ...and here. * modules/memmem (Files): Use it. * modules/strstr (Files): Likewise. Signed-off-by: Eric Blake <ebb9@byu.net> |