1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2026-10-24 00:48:56 +03:00

46 Commits

Author SHA1 Message Date
Paul Eggert
9670f9bf65 parse-datetime: INT_BITS → INT_WIDTH in comments 2026-05-31 00:33:36 -07:00
Pádraig Brady
cfdf3467ac parse-datetime: avoid false test failure on windows
* tests/test-parse-datetime.c: Tweak so that year 2003 rather than 0003
is used, as the latter is not supported by mktime on Windows or Cygwin.
Reported by Bruno Haible.
2026-02-16 11:23:59 +00:00
Pádraig Brady
451042cb76 parse-datetime: support dd.mm. in combination
* lib/parse-datetime.y: The previous commit added DD.MM. and DD.MM.YYYY
grammar rules, plus lexer logic (NOT_DECIMAL flag) to prevent 17.6 from
being lexed as a single decimal token. The resulting shift/reduce
conflict between the two rules caused "1.2. 6:7:8.9" to consume 6 as
a year. Also the NOT_DECIMAL flag was never cleared in the DD.MM. case,
later preventing 8.9 from being lexed as a decimal.
  Since the lexer already distinguishes the contiguous 1.2.3 and spaced,
we introduce tUNUMBER_DOTTED so each rule expects different tokens,
thus removing the shift/reduce conflict.  Also we clear NOT_DECIMAL
in the normal path.
* tests/test-parse-datetime.c: Add test cases.
2026-02-12 14:01:30 +00:00
Pádraig Brady
e0e930371e parse-datetime: add tests for dd.mm.yy and mm/dd/yy formats
* tests/test-parse-datetime.c: Add test cases.
2026-02-12 14:01:27 +00:00
Collin Funk
a8482ceecf maint: run 'make update-copyright' 2026-01-01 10:37:05 -08:00
Bruno Haible
cb2153a9d1 tests: Use C99 initialization syntax for single-variable 'for' loops.
* tests/altstack-util.h (check_alternate_stack_no_overflow): Declare
variable of single-variable 'for' loops in the 'for' clause.
* tests/atomic-int-gnulib.h (init_atomic_int): Likewise.
* tests/atomic-int-isoc.h (init_atomic_int): Likewise.
* tests/atomic-int-posix.h (init_atomic_int): Likewise.
* tests/bench-crc.c (main): Likewise.
* tests/bench-digest.h (main): Likewise.
* tests/bench-mbiter.c (do_test, main): Likewise.
* tests/bench-mbiterf.c (do_test, main): Likewise.
* tests/bench-mbswidth.c (do_test, main): Likewise.
* tests/bench-mbuiter.c (do_test, main): Likewise.
* tests/bench-mbuiterf.c (do_test, main): Likewise.
* tests/bench-mcel.c (noop_test, main): Likewise.
* tests/bench-pagealign_alloc.c (allocate_some_pages, main): Likewise.
* tests/bench-totalorder.c (do_float_test, do_double_test,
do_long_double_test, main): Likewise.
* tests/test-access.h (is_administrator): Likewise.
* tests/test-aligned-malloc.c (main): Likewise.
* tests/test-aligned_alloc.c (main): Likewise.
* tests/test-alloca-opt.c (main): Likewise.
* tests/test-arcfour.c (main): Likewise.
* tests/test-arctwo.c (main): Likewise.
* tests/test-argp.c (parse_opt, main): Likewise.
* tests/test-argv-iter.c (main): Likewise.
* tests/test-array-mergesort.c (main): Likewise.
* tests/test-array_list.c (check_equals, main): Likewise.
* tests/test-array_map.c (check_equals, main): Likewise.
* tests/test-array_omap.c (check_equals, main): Likewise.
* tests/test-array_oset.c (check_equals, gl_sortedlist_indexof_atleast,
main): Likewise.
* tests/test-array_set.c (check_equals, main): Likewise.
* tests/test-asyncsafe-linked_list-strong.c (sigint_handler,
signal_sending_thread, main): Likewise.
* tests/test-asyncsafe-linked_list-weak.c (init_bag_empty, bag_is_empty,
bag_is_subset, bag_equals, bag_or, bag_xor, bag_and_not, sigint_handler,
signal_sending_thread, main): Likewise.
* tests/test-asyncsafe-spin1.c (main): Likewise.
* tests/test-asyncsafe-spin2.c (check_accounts, lock_mutator_thread,
test_asyncsafe_spin): Likewise.
* tests/test-at-init-2.c (init_squares): Likewise.
* tests/test-at-init-3.c (init_cubes): Likewise.
* tests/test-avltree_list.c (check_equals, main): Likewise.
* tests/test-avltree_omap.c (check_equals, main): Likewise.
* tests/test-avltree_oset.c (check_equals, main): Likewise.
* tests/test-avltreehash_list.c (check_equals, main): Likewise.
* tests/test-btoc32.c (main): Likewise.
* tests/test-btowc.c (main): Likewise.
* tests/test-c-ctype.c (test_agree_with_C_locale, test_all): Likewise.
* tests/test-c-strcasestr.c (main): Likewise.
* tests/test-c-strstr.c (main): Likewise.
* tests/test-c32isalnum.c (main): Likewise.
* tests/test-c32isalpha.c (main): Likewise.
* tests/test-c32isblank.c (main): Likewise.
* tests/test-c32iscntrl.c (main): Likewise.
* tests/test-c32isdigit.c (main): Likewise.
* tests/test-c32isgraph.c (main): Likewise.
* tests/test-c32islower.c (main): Likewise.
* tests/test-c32isprint.c (main): Likewise.
* tests/test-c32ispunct.c (main): Likewise.
* tests/test-c32isspace.c (main): Likewise.
* tests/test-c32isupper.c (main): Likewise.
* tests/test-c32isxdigit.c (main): Likewise.
* tests/test-c32rtomb.c (main): Likewise.
* tests/test-c32rtomb-w32.c (test_one_locale, main): Likewise.
* tests/test-c32snrtombs.c (main): Likewise.
* tests/test-c32srtombs.c (main): Likewise.
* tests/test-c32stombs.c (main): Likewise.
* tests/test-c32tolower.c (main): Likewise.
* tests/test-c32toupper.c (main): Likewise.
* tests/test-c32width.c (main): Likewise.
* tests/test-call_once2.c (once_contender_thread, test_once): Likewise.
* tests/test-carray_list.c (check_equals, main): Likewise.
* tests/test-cbrt.h (test_function): Likewise.
* tests/test-ceil2.c (main): Likewise.
* tests/test-ceilf2.c (main): Likewise.
* tests/test-count-leading-zeros.c (TEST_COUNT_LEADING_ZEROS): Likewise.
* tests/test-count-one-bits.c (TEST_COUNT_ONE_BITS): Likewise.
* tests/test-count-trailing-zeros.c (TEST_COUNT_TRAILING_ZEROS):
Likewise.
* tests/test-crc.c (main): Likewise.
* tests/test-des.c (main, cipher): Likewise.
* tests/test-di-set.c (main): Likewise.
* tests/test-digest.h (test_digest_on_files): Likewise.
* tests/test-dirent-safer.c (main): Likewise.
* tests/test-dirname.c (main): Likewise.
* tests/test-dprintf-posix2.c (main): Likewise.
* tests/test-dup-safer.c (main): Likewise.
* tests/test-dup3.c (main): Likewise.
* tests/test-dynarray.c (main): Likewise.
* tests/test-exec-child.c (main): Likewise.
* tests/test-execle-main.c (get_environ_assignment): Likewise.
* tests/test-execute-child.c (main): Likewise.
* tests/test-execute-main.c (main): Likewise.
* tests/test-execute-script.c (main): Likewise.
* tests/test-execve-main.c (get_environ_assignment): Likewise.
* tests/test-execvpe-main.c (get_environ_assignment): Likewise.
* tests/test-exp.h (test_function): Likewise.
* tests/test-exp2.h (test_function): Likewise.
* tests/test-explicit_bzero.c (test_stack): Likewise.
* tests/test-expm1.h (test_function): Likewise.
* tests/test-fabs.h (test_function): Likewise.
* tests/test-fchdir.c (main): Likewise.
* tests/test-fdatasync.c (main): Likewise.
* tests/test-fdopen.c (COUNT): Likewise.
* tests/test-fenv-except-trapping-1.c (main): Likewise.
* tests/test-ffs.c (naive, main): Likewise.
* tests/test-ffsl.c (naive, main): Likewise.
* tests/test-ffsll.c (naive, main): Likewise.
* tests/test-filemode.c (main): Likewise.
* tests/test-filenamecat.c (main): Likewise.
* tests/test-filevercmp.c (main): Likewise.
* tests/test-float-h.c (test_float, test_double, test_long_double):
Likewise.
* tests/test-floor2.c (main): Likewise.
* tests/test-floorf2.c (main): Likewise.
* tests/test-fma2.h (test_function): Likewise.
* tests/test-fmod.h (test_function): Likewise.
* tests/test-fnmatch-w32.c (main): Likewise.
* tests/test-fprintf-posix3.c (main): Likewise.
* tests/test-fpurge.c (main): Likewise.
* tests/test-free.c (N, __has_feature): Likewise.
* tests/test-frexp.h (test_function): Likewise.
* tests/test-fsync.c (main): Likewise.
* tests/test-fts.c (needles, main): Likewise.
* tests/test-gc-arcfour.c (main): Likewise.
* tests/test-gc-arctwo.c (main): Likewise.
* tests/test-gc-des.c (main): Likewise.
* tests/test-gc-hmac-md5.c (main): Likewise.
* tests/test-gc-hmac-sha1.c (main): Likewise.
* tests/test-gc-hmac-sha256.c (main): Likewise.
* tests/test-gc-hmac-sha512.c (main): Likewise.
* tests/test-gc-md2.c (main): Likewise.
* tests/test-gc-md4.c (main): Likewise.
* tests/test-gc-md5.c (main): Likewise.
* tests/test-gc-pbkdf2.c (main): Likewise.
* tests/test-gc-pbkdf2-sha1.c (main): Likewise.
* tests/test-gc-rijndael.c (main): Likewise.
* tests/test-gc-sha1.c (main): Likewise.
* tests/test-gc-sha256.c (main): Likewise.
* tests/test-gc-sha512.c (main): Likewise.
* tests/test-gc-sm3.c (main): Likewise.
* tests/test-getaddrinfo.c (simple): Likewise.
* tests/test-getcwd.c (test_long_name): Likewise.
* tests/test-getgroups.c (main): Likewise.
* tests/test-getlogin_r.c (main): Likewise.
* tests/test-getndelim2.c (main): Likewise.
* tests/test-getopt.h (test_getopt): Likewise.
* tests/test-getopt_long.h (test_getopt_long, test_getopt_long_posix):
Likewise.
* tests/test-getrusage.c (main): Likewise.
* tests/test-getusershell.c (second_pass): Likewise.
* tests/test-hash.c (main): Likewise.
* tests/test-hash_map.c (check_equals, main): Likewise.
* tests/test-hash_set.c (check_equals, string_hashcode, main): Likewise.
* tests/test-hmac-md5.c (hmac_check): Likewise.
* tests/test-hmac-sha1.c (hmac_check): Likewise.
* tests/test-hmac-sha256.c (hmac_check): Likewise.
* tests/test-hmac-sha512.c (hmac_check): Likewise.
* tests/test-hypot.h (test_function): Likewise.
* tests/test-idpriv-drop.c (main): Likewise.
* tests/test-idpriv-droptemp.c (main): Likewise.
* tests/test-ieee754-h.c (main): Likewise.
* tests/test-ilogb.h (test_function): Likewise.
* tests/test-ino-map.c (INO_MAP_INIT): Likewise.
* tests/test-integer_length.c (naive, main): Likewise.
* tests/test-integer_length_l.c (naive, main): Likewise.
* tests/test-integer_length_ll.c (naive, main): Likewise.
* tests/test-isalnum_l.c (test_single_locale_common): Likewise.
* tests/test-isalpha_l.c (test_single_locale_common): Likewise.
* tests/test-isblank.c (main): Likewise.
* tests/test-isblank_l.c (test_single_locale_common): Likewise.
* tests/test-iscntrl_l.c (test_single_locale_common): Likewise.
* tests/test-isdigit_l.c (test_single_locale_common): Likewise.
* tests/test-isgraph_l.c (test_single_locale_common): Likewise.
* tests/test-islower_l.c (test_single_locale_common): Likewise.
* tests/test-isprint_l.c (test_single_locale_common): Likewise.
* tests/test-ispunct_l.c (test_single_locale_common): Likewise.
* tests/test-isspace_l.c (test_single_locale_common): Likewise.
* tests/test-isupper_l.c (test_single_locale_common): Likewise.
* tests/test-iswdigit.c (main): Likewise.
* tests/test-iswpunct.c (main): Likewise.
* tests/test-iswxdigit.c (main): Likewise.
* tests/test-isxdigit_l.c (test_single_locale_common): Likewise.
* tests/test-ldexp.h (test_function): Likewise.
* tests/test-ldexp-ieee.h (test_function): Likewise.
* tests/test-libtextstyle.c (main): Likewise.
* tests/test-linkat.c (main): Likewise.
* tests/test-linked_list.c (check_equals, main): Likewise.
* tests/test-linkedhash_list.c (check_equals, main): Likewise.
* tests/test-linkedhash_map.c (check_equals, main): Likewise.
* tests/test-linkedhash_set.c (check_equals, string_hashcode, main):
Likewise.
* tests/test-localename.c (test_locale_name, test_locale_name_thread):
Likewise.
* tests/test-lock.c (check_accounts, gl_lock_define_initialized,
test_lock, gl_rwlock_define_initialized, test_rwlock,
reclock_mutator_thread, test_recursive_lock, once_contender_thread,
test_once): Likewise.
* tests/test-log.h (test_function): Likewise.
* tests/test-log10.h (test_function): Likewise.
* tests/test-log1p.h (test_function): Likewise.
* tests/test-log2.h (test_function): Likewise.
* tests/test-logb.h (test_function): Likewise.
* tests/test-login_tty.c (main): Likewise.
* tests/test-malloca.c (main): Likewise.
* tests/test-mbrlen.c (main): Likewise.
* tests/test-mbrlen-w32.c (test_one_locale, main): Likewise.
* tests/test-mbrtoc16.c (main): Likewise.
* tests/test-mbrtoc16-w32.c (test_one_locale, main): Likewise.
* tests/test-mbrtoc32.c (main): Likewise.
* tests/test-mbrtoc32-w32.c (test_one_locale, main): Likewise.
* tests/test-mbrtowc.c (main): Likewise.
* tests/test-mbrtowc-w32.c (test_one_locale, main): Likewise.
* tests/test-mbsnrtoc32s.c (main): Likewise.
* tests/test-mbsnrtowcs.c (main): Likewise.
* tests/test-mbsrtoc32s.c (main): Likewise.
* tests/test-mbsrtowcs.c (main): Likewise.
* tests/test-mbstoc32s.c (main): Likewise.
* tests/test-mbstowcs.c (main): Likewise.
* tests/test-md2-buffer.c (main): Likewise.
* tests/test-md4-buffer.c (main): Likewise.
* tests/test-md5-buffer.c (main): Likewise.
* tests/test-memalign.c (main): Likewise.
* tests/test-memcasecmp.c (main): Likewise.
* tests/test-memchr.c (main): Likewise.
* tests/test-memchr2.c (main): Likewise.
* tests/test-memcmp.c (main): Likewise.
* tests/test-memmem.c (main): Likewise.
* tests/test-memrchr.c (main): Likewise.
* tests/test-memset_explicit.c (test_stack): Likewise.
* tests/test-mkfifoat.c (main): Likewise.
* tests/test-modf.h (test_function): Likewise.
* tests/test-mountlist.c (main): Likewise.
* tests/test-mtx.c (check_accounts, lock_mutator_thread, test_mtx_plain,
reclock_mutator_thread, test_mtx_recursive): Likewise.
* tests/test-nl_langinfo2.c (main): Likewise.
* tests/test-nonblocking-misc.h (init_data): Likewise.
* tests/test-nstrftime.h (posixtm_test, tzalloc_test, quarter_test):
Likewise.
* tests/test-obstack-printf.h (test_function): Likewise.
* tests/test-obstack-zprintf-big.c (main): Likewise.
* tests/test-obstack-zprintf-posix.c (RESULT_EQ): Likewise.
* tests/test-open.h (test_open): Likewise.
* tests/test-openat-safer.c (main): Likewise.
* tests/test-options.c (test_getopt_long, test_getopt_long_posix):
Likewise.
* tests/test-pagealign_alloc.c (main): Likewise.
* tests/test-parse-datetime.c (main): Likewise.
* tests/test-perror2.c (main): Likewise.
* tests/test-pipe-filter-gi1.c (done_read): Likewise.
* tests/test-pipe-filter-ii1.c (done_read): Likewise.
* tests/test-pipe2.c (main): Likewise.
* tests/test-popen.h (main): Likewise.
* tests/test-posix_memalign.c (main): Likewise.
* tests/test-posix_spawn-script.c (main): Likewise.
* tests/test-posix_spawnp-script.c (main): Likewise.
* tests/test-posixtm.c (main): Likewise.
* tests/test-pread.c (main): Likewise.
* tests/test-pthread-mutex.c (check_accounts, lock_mutator_thread,
test_pthread_mutex_normal, reclock_mutator_thread,
test_pthread_mutex_recursive): Likewise.
* tests/test-pthread-once2.c (once_contender_thread, test_once):
Likewise.
* tests/test-pthread-rwlock.c (check_accounts, rwlock_mutator_thread,
test_rwlock): Likewise.
* tests/test-pthread-spin.c (check_accounts, lock_mutator_thread,
test_pthread_spin): Likewise.
* tests/test-pthread-tss.c (worker_thread, test_tss, dtorcheck1_thread,
test_tss_dtorcheck1, dtorcheck2_thread, test_tss_dtorcheck2,
racecheck_thread, test_tss_racecheck): Likewise.
* tests/test-ptsname.c (main): Likewise.
* tests/test-ptsname_r.c (test_errors, main): Likewise.
* tests/test-pwrite.c (main): Likewise.
* tests/test-quotearg-simple.c (main): Likewise.
* tests/test-random.c (main): Likewise.
* tests/test-random-mt.c (random_invocator_thread, main): Likewise.
* tests/test-random_r.c (test_failed, main): Likewise.
* tests/test-rawmemchr.c (main): Likewise.
* tests/test-rbtree_list.c (check_equals, main): Likewise.
* tests/test-rbtree_omap.c (check_equals, main): Likewise.
* tests/test-rbtree_oset.c (check_equals, main): Likewise.
* tests/test-rbtreehash_list.c (check_equals, main): Likewise.
* tests/test-readlink.h (test_readlink): Likewise.
* tests/test-readutmp.c (main): Likewise.
* tests/test-remainder.h (test_function): Likewise.
* tests/test-renameat.c (main): Likewise.
* tests/test-renameatu.c (main): Likewise.
* tests/test-rijndael.c (main): Likewise.
* tests/test-rint.h (test_function): Likewise.
* tests/test-round2.c (main): Likewise.
* tests/test-sameacls.c (main, room): Likewise.
* tests/test-scratch-buffer.c (main): Likewise.
* tests/test-sethostname2.c (main): Likewise.
* tests/test-sh-quote.c (main): Likewise.
* tests/test-sha1-buffer.c (main): Likewise.
* tests/test-sha224-buffer.c (main): Likewise.
* tests/test-sha256-buffer.c (main): Likewise.
* tests/test-sha3-224-buffer.c (check): Likewise.
* tests/test-sha3-256-buffer.c (check): Likewise.
* tests/test-sha3-384-buffer.c (check): Likewise.
* tests/test-sha3-512-buffer.c (check): Likewise.
* tests/test-sha384-buffer.c (main): Likewise.
* tests/test-sha512-buffer.c (main): Likewise.
* tests/test-simple-atomic.c (int_mutator_thread, ptr_mutator_thread,
main): Likewise.
* tests/test-sm3-buffer.c (test, main): Likewise.
* tests/test-snprintf.c (main): Likewise.
* tests/test-snprintf-posix.h (test_function, value, word): Likewise.
* tests/test-snzprintf-posix.h (test_function): Likewise.
* tests/test-spawn-pipe-child.c (main): Likewise.
* tests/test-spawn-pipe-main.c (main): Likewise.
* tests/test-spawn-pipe-script.c (main): Likewise.
* tests/test-spin1.c (gl_spinlock_define_initialized): Likewise.
* tests/test-spin2.c (check_accounts, gl_spinlock_define,
test_asyncsafe_spin): Likewise.
* tests/test-sprintf-posix.h (value, word): Likewise.
* tests/test-sqrt.h (test_function): Likewise.
* tests/test-ssfmalloc.c (main): Likewise.
* tests/test-stat-time.c (prepare_test, test_mtime, test_birthtime):
Likewise.
* tests/test-stpncpy.c (main): Likewise.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-strchrnul.c (main): Likewise.
* tests/test-strerror_r.c (main): Likewise.
* tests/test-striconveh.c (main): Likewise.
* tests/test-striconveha.c (main): Likewise.
* tests/test-strnlen.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
* tests/test-system-quote-main.c (check_all, main): Likewise.
* tests/test-szprintf-posix.h (test_function): Likewise.
* tests/test-thread_local.c (worker_thread, test_thread_local):
Likewise.
* tests/test-times.c (main): Likewise.
* tests/test-timespec.c (main): Likewise.
* tests/test-tls.c (worker_thread, test_tls, dtorcheck1_thread,
test_tls_dtorcheck1, dtorcheck2_thread, test_tls_dtorcheck2,
racecheck_thread, test_tls_racecheck): Likewise.
* tests/test-tolower_l.c (test_single_locale_common): Likewise.
* tests/test-toupper_l.c (test_single_locale_common): Likewise.
* tests/test-trunc2.c (main): Likewise.
* tests/test-truncf2.c (main): Likewise.
* tests/test-tsearch.c (memfry, walk_tree, mangle_tree, main): Likewise.
* tests/test-tss.c (worker_thread, test_tss, dtorcheck1_thread,
test_tss_dtorcheck1, dtorcheck2_thread, test_tss_dtorcheck2,
racecheck_thread, test_tss_racecheck): Likewise.
* tests/test-userspec.c (main): Likewise.
* tests/test-vasnprintf.c (test_function): Likewise.
* tests/test-vasnprintf-big.c (main): Likewise.
* tests/test-vasnprintf-posix.c (test_function, value, word): Likewise.
* tests/test-vasnwprintf.c (test_function): Likewise.
* tests/test-vasnwprintf-big.c (main): Likewise.
* tests/test-vasnwprintf-posix.c (test_function, value, word): Likewise.
* tests/test-vasprintf.c (test_vasprintf, test_asprintf): Likewise.
* tests/test-vasprintf-posix.c (test_function, value, word): Likewise.
* tests/test-vaszprintf-posix.c (test_function): Likewise.
* tests/test-vsnprintf.c (main): Likewise.
* tests/test-wcrtomb.c (main): Likewise.
* tests/test-wcrtomb-w32.c (test_one_locale, main): Likewise.
* tests/test-wcsnrtombs.c (main): Likewise.
* tests/test-wcsrtombs.c (main): Likewise.
* tests/test-wcwidth.c (main): Likewise.
* tests/test-xstrtol.c (main): Likewise.
* tests/test-xvasprintf.c (test_xvasprintf, test_xasprintf): Likewise.
* tests/unicase/test-mapping-part2.h (main): Likewise.
* tests/unicase/test-predicate-part2.h (main): Likewise.
* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-to-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-to-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-to-enc.c (main): Likewise.
* tests/unictype/test-bidi_test.c (main): Likewise.
* tests/unictype/test-block_list.c (main): Likewise.
* tests/unictype/test-block_of.c (main): Likewise.
* tests/unictype/test-categ_byname.c (main): Likewise.
* tests/unictype/test-categ_none.c (main): Likewise.
* tests/unictype/test-categ_of.c (main): Likewise.
* tests/unictype/test-decdigit.c (main): Likewise.
* tests/unictype/test-digit.c (main): Likewise.
* tests/unictype/test-incb_of.c (main): Likewise.
* tests/unictype/test-joininggroup_of.c (main): Likewise.
* tests/unictype/test-joiningtype_of.c (main): Likewise.
* tests/unictype/test-numeric.c (main): Likewise.
* tests/unictype/test-pr_byname.c (main): Likewise.
* tests/unictype/test-pr_test.c (main): Likewise.
* tests/unictype/test-predicate-part2.h (main): Likewise.
* tests/unictype/test-scripts.c (main): Likewise.
* tests/unigbrk/test-u8-grapheme-breaks.c (test_u8_grapheme_breaks):
Likewise.
* tests/unigbrk/test-u8-grapheme-next.c (test_u8_grapheme_next):
Likewise.
* tests/unigbrk/test-u8-grapheme-prev.c (test_u8_grapheme_prev):
Likewise.
* tests/unigbrk/test-u16-grapheme-breaks.c (test_u16_grapheme_breaks):
Likewise.
* tests/unigbrk/test-u16-grapheme-next.c (test_u16_grapheme_next):
Likewise.
* tests/unigbrk/test-u16-grapheme-prev.c (test_u16_grapheme_prev):
Likewise.
* tests/unigbrk/test-u32-grapheme-breaks.c (test_u32_grapheme_breaks):
Likewise.
* tests/unigbrk/test-u32-grapheme-next.c (test_u32_grapheme_next):
Likewise.
* tests/unigbrk/test-u32-grapheme-prev.c (test_u32_grapheme_prev):
Likewise.
* tests/unigbrk/test-uc-gbrk-prop.c (main): Likewise.
* tests/unigbrk/test-uc-grapheme-breaks.c (test_uc_grapheme_breaks):
Likewise.
* tests/unigbrk/test-ulc-grapheme-breaks.c (sizeof): Likewise.
* tests/unilbrk/test-u8-possible-linebreaks.c (test_function): Likewise.
* tests/unilbrk/test-u8-width-linebreaks.c (test_function): Likewise.
* tests/unilbrk/test-u16-possible-linebreaks.c (test_function):
Likewise.
* tests/unilbrk/test-u16-width-linebreaks.c (test_function): Likewise.
* tests/unilbrk/test-u32-possible-linebreaks.c (test_function):
Likewise.
* tests/unilbrk/test-u32-width-linebreaks.c (test_function): Likewise.
* tests/unilbrk/test-uc-possible-linebreaks.c (main): Likewise.
* tests/unilbrk/test-ulc-possible-linebreaks.c (test_function):
Likewise.
* tests/unilbrk/test-ulc-width-linebreaks.c (test_function): Likewise.
* tests/uniname/test-uninames.c (name_has_alias, test_name_lookup,
test_inverse_lookup, test_alias_lookup, main): Likewise.
* tests/uninorm/test-u8-nfc.c (test_u8_nfc): Likewise.
* tests/uninorm/test-u8-nfd.c (test_u8_nfd): Likewise.
* tests/uninorm/test-u8-nfkc.c (test_u8_nfkc): Likewise.
* tests/uninorm/test-u8-nfkd.c (test_u8_nfkd): Likewise.
* tests/uninorm/test-u16-nfc.c (test_u16_nfc): Likewise.
* tests/uninorm/test-u16-nfd.c (test_u16_nfd): Likewise.
* tests/uninorm/test-u16-nfkc.c (test_u16_nfkc): Likewise.
* tests/uninorm/test-u16-nfkd.c (test_u16_nfkd): Likewise.
* tests/uninorm/test-u32-nfc.c (test_u32_nfc): Likewise.
* tests/uninorm/test-u32-nfd.c (test_u32_nfd): Likewise.
* tests/uninorm/test-u32-nfkc.c (test_u32_nfkc): Likewise.
* tests/uninorm/test-u32-nfkd.c (test_u32_nfkd): Likewise.
* tests/uninorm/test-u32-normalize-big.c (read_normalization_test_file,
test_specific, test_other, free_normalization_test_file): Likewise.
* tests/uninorm/test-uninorm-filter-nfc.c (check): Likewise.
* tests/unistdio/test-u8-asnprintf-big.c (main): Likewise.
* tests/unistdio/test-u8-asnprintf1.h (test_function): Likewise.
* tests/unistdio/test-u16-asnprintf1.h (test_function): Likewise.
* tests/unistdio/test-u32-asnprintf1.h (test_function): Likewise.
* tests/unistdio/test-ulc-asnprintf-big.c (main): Likewise.
* tests/unistdio/test-ulc-asnprintf1.h (test_function): Likewise.
* tests/unistr/test-chr.h (main): Likewise.
* tests/unistr/test-cmp.h (test_cmp): Likewise.
* tests/unistr/test-cpy-alloc.h (main): Likewise.
* tests/unistr/test-cpy.h (main): Likewise.
* tests/unistr/test-move.h (main): Likewise.
* tests/unistr/test-pcpy.h (main): Likewise.
* tests/unistr/test-set.h (NMAX, main): Likewise.
* tests/unistr/test-stpcpy.h (main): Likewise.
* tests/unistr/test-stpncpy.h (check_single, check): Likewise.
* tests/unistr/test-strcat.h (main): Likewise.
* tests/unistr/test-strchr.h (test_strchr): Likewise.
* tests/unistr/test-strcpy.h (main): Likewise.
* tests/unistr/test-strdup.h (main): Likewise.
* tests/unistr/test-strncat.h (check_single, check): Likewise.
* tests/unistr/test-strncpy.h (check_single, check): Likewise.
* tests/unistr/test-strnlen.h (check): Likewise.
* tests/unistr/test-u-strstr.h (test_u_strstr): Likewise.
* tests/unistr/test-u16-mblen.c (main): Likewise.
* tests/unistr/test-u16-mbsnlen.c (main): Likewise.
* tests/unistr/test-u16-mbtouc.h (test_function): Likewise.
* tests/unistr/test-u16-mbtoucr.c (main): Likewise.
* tests/unistr/test-u16-next.c (main): Likewise.
* tests/unistr/test-u16-prev.c (check, check_invalid, main): Likewise.
* tests/unistr/test-u16-strmblen.c (main): Likewise.
* tests/unistr/test-u16-strmbtouc.c (main): Likewise.
* tests/unistr/test-u16-uctomb.c (main): Likewise.
* tests/unistr/test-u32-mblen.c (main): Likewise.
* tests/unistr/test-u32-mbsnlen.c (main): Likewise.
* tests/unistr/test-u32-mbtouc.h (test_function): Likewise.
* tests/unistr/test-u32-mbtoucr.c (main): Likewise.
* tests/unistr/test-u32-next.c (main): Likewise.
* tests/unistr/test-u32-prev.c (check, check_invalid, main): Likewise.
* tests/unistr/test-u32-strmblen.c (main): Likewise.
* tests/unistr/test-u32-strmbtouc.c (main): Likewise.
* tests/unistr/test-u32-uctomb.c (main): Likewise.
* tests/unistr/test-u8-mblen.c (main): Likewise.
* tests/unistr/test-u8-mbsnlen.c (main): Likewise.
* tests/unistr/test-u8-mbtouc.c (test_safe_function): Likewise.
* tests/unistr/test-u8-mbtouc.h (test_function): Likewise.
* tests/unistr/test-u8-mbtoucr.c (main): Likewise.
* tests/unistr/test-u8-next.c (main): Likewise.
* tests/unistr/test-u8-prev.c (check, check_invalid, main): Likewise.
* tests/unistr/test-u8-strmblen.c (main): Likewise.
* tests/unistr/test-u8-strmbtouc.c (main): Likewise.
* tests/unistr/test-u8-uctomb.c (main): Likewise.
* tests/uniwbrk/test-u8-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-u16-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-u32-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-uc-wordbreaks.c (main): Likewise.
* tests/uniwbrk/test-ulc-wordbreaks.c (main): Likewise.
* tests/uniwidth/test-uc_width.c (main): Likewise.
* tests/uniwidth/test-uc_width2.c (main): Likewise.
* tests/virtualbox.h (is_running_under_virtualbox_kvm, num_cpus):
Likewise.
* tests/test-regex.c (bug_regex11, main): Likewise. Rename local
variables.
2025-11-16 15:05:22 +01:00
Paul Eggert
e264521aaa parse-datetime-tests: port to Gnulib mktime
Problem reported by Pádraig Brady in:
https://lists.gnu.org/r/bug-gnulib/2025-01/msg00040.html
* tests/test-parse-datetime.c (main): Allow both pedantic and
naive interpretation of "now - 35 years", since the main point of
the test introfuced to fix <https://bugs.gnu.org/48085> was that
parse_datetime shouldn’t fail.
2025-01-05 20:44:57 -08:00
Pádraig Brady
7b08932179 maint: run 'make update-copyright' 2025-01-01 09:25:10 +00:00
Bruno Haible
f3d9653741 Eliminate gcc -Wzero-as-null-pointer-constant warnings.
* lib/argp-help.c: Use NULL, not 0, to denote a null pointer.
* lib/argp-parse.c: Likewise.
* lib/backup-find.c (get_version): Likewise.
* lib/bitset/list.c: Likewise.
* lib/bitset/stats.c (bitset_stats_init): Likewise.
* lib/bitset/table.c: Likewise.
* lib/bitsetv.c (bitsetv_alloc): Likewise.
* lib/error.c (print_errno_message): Likewise.
* lib/exclude.c (new_exclude_segment): Likewise.
* lib/getopt.c (GETOPT_ENTRY): Likewise.
* lib/human.c (block_size_args): Likewise.
* lib/obstack.c (_obstack_begin_worker, _obstack_newchunk,
_obstack_allocated_p, _obstack_free, _obstack_memory_used): Likewise.
* lib/quotearg.c (quoting_style_args, quotearg_buffer_restyled,
quotearg_alloc_mem): Likewise.
* lib/readutmp.c (read_utmp_from_file): Likewise.
* lib/savedir.c (comparison_function_table): Likewise.
* lib/settime.c (settime): Likewise.
* tests/nap.h (nap_works): Likewise.
* tests/test-fts.c (argv, fts_dealloc, remove_tree, main): Likewise.
* tests/test-getaddrinfo.c (simple): Likewise.
* tests/test-nstrftime.h (posixtm_test, TZ, quarter_test, errno_test,
locales_test): Likewise.
* tests/test-parse-datetime.c (main): Likewise.
* tests/test-regex.c (main): Likewise.
2024-11-14 16:12:31 +01:00
Paul Eggert
3763f32b77 nstrftime: rename HAVE_TM_GMTOFF
* m4/tm_gmtoff.m4 (gl_TM_GMTOFF): Rename HAVE_TM_GMTOFF
to HAVE_STRUCT_TM_TM_GMTOFF, for consistency with
HAVE_STRUCT_TM_TM_ZONE.  All uses changed.
2024-06-16 16:38:20 -07:00
Bruno Haible
623bcc22f4 parse-datetime tests: Avoid failure on native Windows.
* tests/test-parse-datetime.c (SOME_TIMEPOINT): New macro.
(main): Use it. On native Windows, use Windows time zone names.
Invoke tzset() after setting TZ.
* doc/posix-functions/gmtime.texi: Mention the native Windows problem.
* doc/posix-functions/localtime.texi: Likewise.
2024-05-27 17:51:38 +02:00
Bruno Haible
3a5f51783b tests: Support showing all assertion failures, not just the first one.
* tests/macros.h (CONTINUE_AFTER_ASSERT): New macro.
(test_exit_status): New variable.
(ASSERT, ASSERT_NO_STDIO): If CONTINUE_AFTER_ASSERT is 1, set
test_exit_status instead of aborting.
* tests/**/test-*.{c,h,cc} (main): Instead of exiting with exit code 0,
exit with exit code test_exit_status.
* tests/test-spawn-pipe-child.c: Undefine CONTINUE_AFTER_ASSERT.
* tests/uninorm/test-nf*.c: Include macros.h.
* tests/uninorm/test-u32-nf*-big.c: Likewise.
* tests/random*.c: Define NO_MAIN_HERE.
2024-05-18 23:33:58 +02:00
Simon Josefsson
5b92dd0a45 maint: run 'make update-copyright' 2024-01-01 10:31:48 +01:00
Simon Josefsson
32a72f4537 maint: run 'make update-copyright' 2023-01-01 01:14:21 +01:00
Paul Eggert
9cde39f881 parse-datetime: support 'J' military time zone
Requested by Brian Inglis in:
https://savannah.gnu.org/support/?110644
* lib/parse-datetime.y (parser_control): New member J_zones_seen.
(item): New item 'J'.
(military_table): Add 'J'.
(parse_datetime_body): Set and use J_zones_seen.
* tests/test-parse-datetime.c (main): Test "J".
2022-05-17 15:48:11 -07:00
Paul Eggert
06b2e943be mktime: improve heuristic for ca-1986 Indiana DST
Problem reported by Mark Krenz <https://bugs.gnu.org/48085>.
* lib/mktime.c (__mktime_internal): Be more generous about
accepting arguments with the wrong value of tm_isdst, by falling
back to a one-hour DST difference if we find no nearby DST that is
unusual.  This fixes a problem where "1986-04-28 00:00 EDT" was
rejected when TZ="America/Indianapolis" because the nearest DST
timestamp occurred in 1970, a temporal distance too great for the
old heuristic.  This also also narrows the search a bit, which
is a minor performance win.
* m4/mktime.m4 (gl_FUNC_MKTIME_WORKS):
Check for putenv failures and for Bug#48085.
* tests/test-parse-datetime.c (main):
Test for setenv failures and for Bug#48085.
2022-02-19 15:28:11 -08:00
Paul Eggert
aa0d1e7800 parse-datetime: allow calculations to yield -1
Problem reported by Jeremy Cantrell <https://bugs.gnu.org/50115>.
* lib/parse-datetime.y (parse_datetime_body): When calling mktime,
use an unmodifed and negative tm_wday or tm_yday to detect an error,
as a (time_t) -1 return value is valid on most hosts.
* tests/test-parse-datetime.c (main): Add a test for the bug.
2022-02-05 11:06:29 -08:00
Bernhard Voelker
87e6634b28 license: fix GPLv3 texts to use a comma instead of semicolon.
See: https://www.gnu.org/licenses/gpl-3.0.html#howto
Run:
  $ git grep -l 'Foundation; either version 3' \
      | xargs sed -i '/Foundation; either version 3/ s/n; e/n, e/'

* All files using GPLv3: Adjust via the above command.
2022-01-05 11:56:23 +01:00
Paul Eggert
eec12c00cf maint: run 'make update-copyright' 2022-01-01 09:44:11 -08:00
Bruno Haible
b034c7933b gnulib-common.m4: Use C2x [[maybe_unused]] when possible.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_UNUSED as an alias of
_GL_ATTRIBUTE_MAYBE_UNUSED, not of _GL_ATTRIBUTE_UNUSED.
* lib/binary-io.h (__gl_setmode): Put _GL_UNUSED before, not after, the
declaration.
* lib/c-stack.c (null_action, segv_handler, overflow_handler,
c_stack_action): Likewise.
* lib/chown.c (chown): Likewise.
* lib/clean-temp-simple.c (cleanup_action): Likewise.
* lib/fts.c (dirent_inode_sort_may_be_useful, leaf_optimization,
fts_set): Likewise.
* lib/getgroups.c (getgroups): Likewise.
* lib/getopt.c (_getopt_initialize): Likewise.
* lib/getugroups.c (getugroups): Likewise.
* lib/localename.c (gl_locale_name_thread_unsafe, gl_locale_name_thread,
gl_locale_name_posix, gl_locale_name_environ): Likewise.
* lib/mkdir.c (rpl_mkdir): Likewise.
* lib/mkfifo.c (mkfifo): Likewise.
* lib/mkfifoat.c (mkfifoat): Likewise.
* lib/mknod.c (mknod): Likewise.
* lib/mknodat.c (mknodat): Likewise.
* lib/mountlist.c (me_remote): Likewise.
* lib/openpty.c (openpty): Likewise.
* lib/parse-datetime.y (yyerror): Likewise.
* lib/passfd.c (sendfd, recvfd): Likewise.
* lib/pthread-cond.c (pthread_condattr_destroy, pthread_cond_init,
pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
pthread_cond_broadcast, pthread_cond_destroy): Likewise.
* lib/pthread-mutex.c (pthread_mutexattr_destroy, pthread_mutex_init,
pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_timedlock,
pthread_mutex_unlock, pthread_mutex_destroy): Likewise.
* lib/pthread-rwlock.c (pthread_rwlockattr_destroy, pthread_rwlock_init,
pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock): Likewise.
* lib/pthread-spin.c (pthread_spin_init, pthread_spin_lock,
pthread_spin_trylock, pthread_spin_unlock, pthread_spin_destroy):
Likewise.
* lib/pthread-thread.c (pthread_attr_destroy): Likewise.
* lib/readlink.c (readlink): Likewise.
* lib/rename.c (rpl_rename): Likewise.
* lib/set-permissions.c (set_permissions): Likewise.
* lib/sockets.c (gl_sockets_startup): Likewise.
* lib/stat-time.h (get_stat_birthtime_ns, get_stat_birthtime,
stat_time_normalize): Likewise.
* lib/strptime.c (__strptime_internal): Likewise.
* lib/strtod.c (LDEXP): Likewise.
* lib/symlink.c (symlink): Likewise.
* lib/symlinkat.c (symlinkat): Likewise.
* lib/tempname.c (try_dir, try_nocreate): Likewise.
* lib/textstyle.in.h (styled_ostream_begin_use_class,
styled_ostream_end_use_class, styled_ostream_get_hyperlink_ref,
styled_ostream_get_hyperlink_id, styled_ostream_set_hyperlink,
styled_ostream_flush_to_current_style, fd_ostream_create,
term_ostream_get_color, term_ostream_set_color,
term_ostream_get_bgcolor, term_ostream_set_bgcolor,
term_ostream_get_weight, term_ostream_set_weight,
term_ostream_get_posture, term_ostream_set_posture,
term_ostream_get_underline, term_ostream_set_underline,
term_ostream_get_hyperlink_ref, term_ostream_get_hyperlink_id,
term_ostream_set_hyperlink, term_ostream_create,
term_styled_ostream_create, html_styled_ostream_create,
handle_color_option, handle_style_option, style_file_prepare,
styled_ostream_create, libtextstyle_set_failure_exit_code): Likewise.
* lib/unicodeio.c (exit_failure_callback, fallback_failure_callback):
Likewise.
* lib/wait-process.c (cleanup_slaves_action): Likewise.
* tests/signature.h (SIGNATURE_CHECK2): Likewise.
* tests/test-areadlink.c (do_areadlink): Likewise.
* tests/test-areadlinkat.c (do_areadlinkat): Likewise.
* tests/test-ceilf-ieee.c (main): Likewise.
* tests/test-ceilf1.c (main): Likewise.
* tests/test-dirent.c (dir): Likewise.
* tests/test-fchownat.c (main): Likewise.
* tests/test-fdopendir.c (main): Likewise.
* tests/test-filenamecat.c (main): Likewise.
* tests/test-floor1.c (main): Likewise.
* tests/test-floorf-ieee.c (main): Likewise.
* tests/test-floorf1.c (main): Likewise.
* tests/test-fseeko.c (main): Likewise.
* tests/test-fstatat.c (main): Likewise.
* tests/test-ftello.c (main): Likewise.
* tests/test-getdomainname.c (main): Likewise.
* tests/test-getgroups.c (main): Likewise.
* tests/test-gethostname.c (main): Likewise.
* tests/test-math-c++.cc (OVERLOADED_CHECK): Likewise.
* tests/test-mkdirat.c (main): Likewise.
* tests/test-openat.c (main): Likewise.
* tests/test-parse-datetime.c (main): Likewise.
* tests/test-quotearg-simple.c (main): Likewise.
* tests/test-quotearg.c (main): Likewise.
* tests/test-sethostname2.c (main): Likewise.
* tests/test-unlinkat.c (main): Likewise.
* tests/test-version-etc.c (main): Likewise.
* tests/test-xalloc-die.c (main): Likewise.
* tests/test-xfprintf-posix.c (main): Likewise.
* tests/test-xprintf-posix.c (main): Likewise.
* tests/test-xvasprintf.c (main): Likewise.
2021-08-22 22:04:34 +02:00
Bruno Haible
35f8ff2e11 parse-datetime tests: Avoid a test failure on NetBSD.
Reported by Thomas Klausner <tk@giga.or.at> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-03/msg00069.html>.

* tests/test-parse-datetime.c (main): Skip two tests on NetBSD.
2021-03-14 19:19:07 +01:00
Paul Eggert
4b94832196 maint: run 'make update-copyright' 2020-12-31 23:30:01 -08:00
Paul Eggert
4c9a3c65e2 parse-datetime-tests: port to Alpine Linux 3.12.1
* tests/test-parse-datetime.c: Include errno.h for errno,
and unistd.h for _SC_TZNAME_MAX and sysconf.
(main): In the outlandishly-long time zone abbreviation test,
do not exceed TZNAME_MAX as this has undefined behavior,
and on Alpine Linux 3.12.1 it makes the test fail.
2020-11-11 19:21:19 -08:00
Paul Eggert
2cdc1bafb2 maint: Run 'make update-copyright' 2019-12-31 16:02:16 -08:00
Paul Eggert
e6633650a2 maint: Run 'make update-copyright' 2019-01-01 00:30:05 +01:00
Paul Eggert
281b825eba maint: Run 'make update-copyright' 2018-01-01 00:58:38 +00:00
Paul Eggert
ca35d46812 all: prefer https: URLs 2017-09-13 00:48:57 -07:00
Pádraig Brady
94e0157150 time_rz: fix heap buffer overflow vulnerability
This issue has been assigned CVE-2017-7476 and was
detected with American Fuzzy Lop 2.41b run on the
coreutils date(1) program with ASAN enabled.

  ERROR: AddressSanitizer: heap-buffer-overflow on address 0x...
  WRITE of size 8 at 0x60d00000cff8 thread T0
  #1 0x443020 in extend_abbrs lib/time_rz.c:88
  #2 0x443356 in save_abbr lib/time_rz.c:155
  #3 0x44393f in localtime_rz lib/time_rz.c:290
  #4 0x41e4fe in parse_datetime2 lib/parse-datetime.y:1798

A minimized reproducer is the following 120 byte TZ value,
which goes beyond the value of ABBR_SIZE_MIN (119) on x86_64.
Extend the aa...b portion to overwrite more of the heap.

  date -d $(printf 'TZ="aaa%020daaaaaab%089d"')

localtime_rz and mktime_z were affected since commit 4bc76593.
parse_datetime was affected since commit 4e6e16b3f.

* lib/time_rz.c (save_abbr): Rearrange the calculation determining
whether there is enough buffer space available.  The rearrangement
ensures we're only dealing with positive numbers, thus avoiding
the problematic promotion of signed to unsigned causing an invalid
comparison when zone_copy is more than ABBR_SIZE_MIN bytes beyond
the start of the buffer.
* tests/test-parse-datetime.c (main): Add a test case written by
Paul Eggert, which overwrites enough of the heap so that
standard glibc will fail with "free(): invalid pointer"
without the patch applied.
Reported and analyzed at https://bugzilla.redhat.com/1444774
2017-04-26 20:32:12 -07:00
Paul Eggert
a3fd683de3 version-etc: new year
* 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'.
2017-01-01 02:59:23 +00:00
Pino Toscano
f7bf2e4445 Port tests away from progname
Modules that need the program name already
depend on getprogname.
* modules/acl-tests (Depends-on): Remove progname.
* modules/argmatch (Depends-on): Likewise.
* modules/argmatch-tests (Depends-on): Likewise.
* modules/argp-tests (Depends-on): Likewise.
* modules/argp-version-etc-tests (Depends-on): Likewise.
* modules/array-list-tests (Depends-on): Likewise.
* modules/array-oset-tests (Depends-on): Likewise.
* modules/avltree-list-tests (Depends-on): Likewise.
* modules/avltree-oset-tests (Depends-on): Likewise.
* modules/avltreehash-list-tests (Depends-on): Likewise.
* modules/carray-list-tests (Depends-on): Likewise.
* modules/copy-file-tests (Depends-on): Likewise.
* modules/exclude-tests (Depends-on): Likewise.
* modules/fchownat-tests (Depends-on): Likewise.
* modules/fdopendir-tests (Depends-on): Likewise.
* modules/filenamecat-tests (Depends-on): Likewise.
* modules/fstatat-tests (Depends-on): Likewise.
* modules/fstrcmp-tests (Depends-on): Likewise.
* modules/linked-list-tests (Depends-on): Likewise.
* modules/linkedhash-list-tests (Depends-on): Likewise.
* modules/mkdirat-tests (Depends-on): Likewise.
* modules/nonblocking-pipe-tests (Depends-on): Likewise.
* modules/nonblocking-socket-tests (Depends-on): Likewise.
* modules/obstack-printf-tests (Depends-on): Likewise.
* modules/openat-tests (Depends-on): Likewise.
* modules/parse-datetime-tests (Depends-on): Likewise.
* modules/pipe-filter-gi-tests (Depends-on): Likewise.
* modules/pipe-filter-ii-tests (Depends-on): Likewise.
* modules/quotearg-simple-tests (Depends-on): Likewise.
* modules/quotearg-tests (Depends-on): Likewise.
* modules/rbtree-list-tests (Depends-on): Likewise.
* modules/rbtree-oset-tests (Depends-on): Likewise.
* modules/rbtreehash-list-tests (Depends-on): Likewise.
* modules/spawn-pipe-tests (Depends-on): Likewise.
* modules/system-quote-tests (Depends-on): Likewise.
* modules/uniname/uniname-tests (Depends-on): Likewise.
* modules/uninorm/nfc-tests (Depends-on): Likewise.
* modules/uninorm/nfd-tests (Depends-on): Likewise.
* modules/uninorm/nfkc-tests (Depends-on): Likewise.
* modules/uninorm/nfkd-tests (Depends-on): Likewise.
* modules/unistdio/u16-vsnprintf-tests (Depends-on): Likewise.
* modules/unistdio/u16-vsprintf-tests (Depends-on): Likewise.
* modules/unistdio/u32-vsnprintf-tests (Depends-on): Likewise.
* modules/unistdio/u32-vsprintf-tests (Depends-on): Likewise.
* modules/unistdio/u8-vsnprintf-tests (Depends-on): Likewise.
* modules/unistdio/u8-vsprintf-tests (Depends-on): Likewise.
* modules/unistdio/ulc-vsnprintf-tests (Depends-on): Likewise.
* modules/unistdio/ulc-vsprintf-tests (Depends-on): Likewise.
* modules/unlinkat-tests (Depends-on): Likewise.
* modules/version-etc-tests (Depends-on): Likewise.
* modules/xalloc-die-tests (Depends-on): Likewise.
* modules/xmemdup0-tests (Depends-on): Likewise.
* modules/xprintf-posix-tests (Depends-on): Likewise.
* modules/xvasprintf-tests (Depends-on): Likewise.
* tests/test-argmatch.c: Do not include progname.h.
(main) Stop calling set_program_name.
* tests/test-argp-version-etc.c: Likewise.
* tests/test-argp.c: Likewise.
* tests/test-argv-iter.c: Likewise.
* tests/test-array_list.c: Likewise.
* tests/test-array_oset.c: Likewise.
* tests/test-avltree_list.c: Likewise.
* tests/test-avltree_oset.c: Likewise.
* tests/test-avltreehash_list.c: Likewise.
* tests/test-carray_list.c: Likewise.
* tests/test-copy-acl.c: Likewise.
* tests/test-copy-file.c: Likewise.
* tests/test-exclude.c: Likewise.
* tests/test-fchownat.c: Likewise.
* tests/test-fdopendir.c: Likewise.
* tests/test-filenamecat.c: Likewise.
* tests/test-fstatat.c: Likewise.
* tests/test-fstrcmp.c: Likewise.
* tests/test-linked_list.c: Likewise.
* tests/test-linkedhash_list.c: Likewise.
* tests/test-mkdirat.c: Likewise.
* tests/test-nonblocking-pipe-main.c: Likewise.
* tests/test-nonblocking-socket-main.c: Likewise.
* tests/test-obstack-printf.c: Likewise.
* tests/test-openat.c: Likewise.
* tests/test-parse-datetime.c: Likewise.
* tests/test-pipe-filter-gi1.c: Likewise.
* tests/test-pipe-filter-gi2-main.c: Likewise.
* tests/test-pipe-filter-ii1.c: Likewise.
* tests/test-pipe-filter-ii2-main.c: Likewise.
* tests/test-quotearg-simple.c: Likewise.
* tests/test-quotearg.c: Likewise.
* tests/test-rbtree_list.c: Likewise.
* tests/test-rbtree_oset.c: Likewise.
* tests/test-rbtreehash_list.c: Likewise.
* tests/test-sameacls.c: Likewise.
* tests/test-set-mode-acl.c: Likewise.
* tests/test-spawn-pipe-main.c: Likewise.
* tests/test-system-quote-main.c: Likewise.
* tests/test-unlinkat.c: Likewise.
* tests/test-version-etc.c: Likewise.
* tests/test-xalloc-die.c: Likewise.
* tests/test-xfprintf-posix.c: Likewise.
* tests/test-xmemdup0.c: Likewise.
* tests/test-xprintf-posix.c: Likewise.
* tests/test-xvasprintf.c: Likewise.
* tests/uniname/test-uninames.c: Likewise.
* tests/uninorm/test-u32-nfc-big.c: Likewise.
* tests/uninorm/test-u32-nfd-big.c: Likewise.
* tests/uninorm/test-u32-nfkc-big.c: Likewise.
* tests/uninorm/test-u32-nfkd-big.c: Likewise.
* tests/unistdio/test-u16-vsnprintf1.c: Likewise.
* tests/unistdio/test-u16-vsprintf1.c: Likewise.
* tests/unistdio/test-u32-vsnprintf1.c: Likewise.
* tests/unistdio/test-u32-vsprintf1.c: Likewise.
* tests/unistdio/test-u8-vsnprintf1.c: Likewise.
* tests/unistdio/test-u8-vsprintf1.c: Likewise.
* tests/unistdio/test-ulc-vsnprintf1.c: Likewise.
* tests/unistdio/test-ulc-vsprintf1.c: Likewise.
* tests/test-c-stack.c: (program_name): Do not define.
(main): Do not set program_name.
* tests/test-closein.c: Likewise.
* tests/test-xstrtol.c: Likewise.
* tests/test-yesno.c: Likewise.
2016-09-05 09:21:54 -07:00
Paul Eggert
71090a2a31 version-etc: new year
* 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'.
2016-01-01 00:57:21 -08:00
Paul Eggert
b9bfe78424 version-etc: new year
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR): Update copyright date.
* all files: Run 'make update-copyright'.
2014-12-31 17:47:54 -08:00
Pádraig Brady
a10acfb1d2 parse-datetime: fix crash or infloop in TZ="" parsing
This was reported in http://bugs.gnu.org/16872
from the coreutils command: date -d 'TZ="""'

The infinite loop for this case was present since the
initial TZ="" parsing support in commit de95bdc2 29-10-2004.
This was changed to a crash or heap corruption depending
on the platform with commit 2e3e4195 18-01-2010.

* lib/parse-datetime.y (parse_datetime): Break out of the
TZ="" parsing loop once the second significant " is found.
Also skip over any subsequent whitespace to be consistent
with the non TZ= case.
* tests/test-parse-datetime.c: Add test cases for TZ="" parsing.
2014-02-27 23:15:43 +00:00
Eric Blake
1276a2c5f2 maint: update copyright
I ran 'make update-copyright'.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-01-01 00:07:10 -07:00
Eric Blake
9fc81090f6 maint: update all copyright year number ranges
Run "make update-copyright".  Compare to commit 1602f0a from last year.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-01-01 00:50:58 +00:00
Paul Eggert
bc33a8a0c7 test-parse-datetime: avoid glibc leap-second glitch
* tests/test-parse-datetime.c (main): Set TZ to US Eastern time
with the 2012 rules.  Problem reported by Bruce Dubbs in
<http://bugs.gnu.org/12206>.
2012-08-17 11:09:40 -07:00
Jim Meyering
d8f90adf5f parse-datetime: fix failure to diagnose invalid input
date -d "$(printf '\xb0')" would print 00:00:00 with today's date
rather than diagnosing the invalid input.  Now it reports this:
date: invalid date '\260'
* lib/parse-datetime.y (to_uchar): Define.
(yylex): Don't sign-extend "other" bytes.
* m4/parse-datetime.m4: Require AC_C_INLINE for first use of "inline".
Thanks to Bruno Haible for the patch to this file.
* tests/test-parse-datetime.c (main): Add a test to trigger the bug.
Peter Evans reported the bug in GNU date: http://bugs.gnu.org/11843
2012-07-04 12:58:07 +02:00
Paul Eggert
341111f654 maint: replace FSF snail-mail addresses with URLs
* 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>.
2012-02-09 21:39:58 -08:00
Paul Eggert
04c1ac6962 Use ', not `, for quoting output.
* build-aux/announce-gen (usage, sizes, print_news_deltas)
(print_changelog_deltas, get_tool_versions, main program):
* build-aux/git-version-gen:
* build-aux/gitlog-to-changelog (usage, parse_amend_file):
* build-aux/move-if-change (help):
* build-aux/useless-if-before-free (usage, main program):
* check-module (parse_module_file, usage)
(find_included_lib_files, check_module):
* lib/argmatch.c (main) [TEST]:
* lib/argp-help.c (_help):
* lib/getopt1.c (main) [TEST]:
* lib/git-merge-changelog.c (usage):
* lib/xstrtol-error.c (xstrtol_error):
* m4/alloca.m4 (_AC_LIBOBJ_ALLOCA):
* m4/argz.m4 (gl_FUNC_ARGZ):
* m4/bison.m4 (gl_BISON):
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU):
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
* m4/flexmember.m4 (AC_C_FLEXIBLE_ARRAY_MEMBER):
* m4/fpending.m4 (gl_PREREQ_FPENDING):
* m4/gc-random.m4 (gl_GC_RANDOM):
* m4/intl.m4 (gt_CHECK_DECL):
* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK):
* m4/longlong.m4 (AC_TYPE_LONG_LONG_INT)
(AC_TYPE_UNSIGNED_LONG_LONG_INT):
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS):
* m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK):
* m4/onceonly.m4 (AC_CHECK_FUNCS_ONCE):
* m4/posixver.m4 (gl_DEFAULT_POSIX2_VERSION):
* tests/test-dirname.c (main):
* tests/test-getpass.c (main):
* tests/test-iconvme.c (main):
* tests/test-parse-datetime.c (LOG):
* tests/test-xstrtoimax.sh:
* tests/test-xstrtol.sh:
* tests/test-xstrtoll.sh:
* tests/test-xstrtoumax.sh:
* tests/unigbrk/test-uc-is-grapheme-break.c (main):
* top/GNUmakefile (abort-due-to-no-makefile):
Quote 'like this', not `like this', as per the recent change to
the GNU coding standards.
2012-01-05 23:44:47 -08:00
Jim Meyering
1602f0afed maint: update all copyright year number ranges
Run "make update-copyright".
2012-01-01 10:04:58 +01:00
Jim Meyering
56ddf0fdeb test-parse-datetime.c: avoid new DST-related false positive test failure
* tests/test-parse-datetime.c (gmt_offset): Determine the "gmt_offset"
based on the time/date we'll convert, not the current time.
Otherwise, the moment we cross a DST boundary like today's in
Europe, (CEST to CET), that offset ends up being one hour off.
2011-10-30 18:12:54 +01:00
Eric Blake
8bfd590069 date: accept 'hence' as opposite of 'ago'
* lib/parse-datetime.y (relative_time_table): Add 'hence'.
* tests/test-parse-datetime.c (main): Enhance test.
Suggested by Jesse Wilson.

Signed-off-by: Eric Blake <eblake@redhat.com>
2011-09-19 10:51:34 -06:00
Jim Meyering
8af631b398 test-parse-datetime.c: accommodate a relatively strict gcc warning
* tests/test-parse-datetime.c (gmt_offset): Declare function "static",
to avoid a warning from gcc's -Werror=missing-declarations.
Insert a few spaces-before-funcall-parenthesis.
2011-08-31 16:43:29 +02:00
J.T. Conklin
c2ecbc9a82 parse-datetime: accept ISO 8601 date and time rep with "T" separator
The parser now accepts ISO 8601 date-time strings with "T" as the
separator.  It has long parsed dates like "2004-02-29 16:21:42"
with a space between the date and time strings.  Now it also parses
"2004-02-29T16:21:42" and fractional-second and time-zone-annotated
variants like "2004-02-29T16:21:42.333-07:00"

* lib/parse-datetime.y: Parse ISO 8601 extended date and time
of day representation using the 'T' separator character.
* doc/parse-datetime.texi (General date syntax): replace use of
deprecated --iso-8601 option with --rfc-3339 in example of date
command output formats that can be parsed.
* tests/test-parse-datetime.c (tm_diff): New function, taken from
lib/parse-datetime.y.
(gmt_offset): New function.
(main): Add additional test cases to validate ISO8601 extended
date and time of day format parsing.
2011-08-31 16:23:29 +02:00
Jim Meyering
d60f3b0c6b maint: update almost all copyright ranges to include 2011
Run the new "make update-copyright" rule.
2011-01-01 22:12:59 +01:00
Eric Blake
2bb63bfb25 parse-datetime: better name than get_date
* NEWS: Reword the deprecation notice.
* modules/get_date: Rename to modules/parse-datetime.
* modules/get_date-tests: Rename to modules/parse-datetime-tests.
* m4/get_date.m4: Rename to m4/parse-datetime.m4.
* lib/get_date.y: Rename to lib/parse-datetime.y.
* tests/test-get_date.c: Rename to tests/test-parse-datetime.c.
* doc/get_date.texi: Rename to doc/parse-datetime.texi.
* doc/getdate.texi: Provide fallback wrapper.
* lib/getdate.h: Move guts, and wrap...
* lib/parse-datetime.h: ...new file.
* lib/parse-datetime.y (get_date): Rename...
(parse_datetime): ...to this.
* m4/parse-datetime.m4 (gl_GET_DATE): Rename...
(gl_PARSE_DATETIME): ...to this.
* doc/posix-functions/getdate.texi (get_date): Provide fallback
documentation.
* modules/getdate (Files): Provide fallback docs and header.
(Notice, Depends-on): Update references.
* tests/test-parse-datetime.c: Likewise.
* DEPENDENCIES: Likewise.
* MODULES.html.sh (Date and time <time.h>): Likewise.
* doc/parse-datetime.texi (Date input formats)
(Authors of parse_datetime): Likewise.
* modules/parse-datetime (Files, configure.ac, Makefile.am)
(Include): Likewise.
* modules/parse-datetime-tests (Files, Makefile.am): Likewise.
* gnulib-tool: Likewise.
* m4/bison.m4 (gl_BISON): Likewise.
Suggested by Bruno Haible.

Signed-off-by: Eric Blake <eblake@redhat.com>
2010-10-05 12:05:18 -06:00