• Show log

    Commit

  • Hash : 0771cac8
    Author : Paul Eggert
    Date : 2023-09-03T18:14:53

    same-inode, stat-size: support pointers too
    
    Add functions and macros so that we can test pointers to struct
    stat as well as plain struct stat.  This lets coreutils deal with
    structs that are only partly initialized, without relying on
    undefined behavior.
    * NEWS: Mention this.
    * doc/posix-headers/sys_stat.texi, doc/stat-size.texi:
    Mention this and modernize.
    * lib/at-func2.c (at_func2):
    * lib/fts.c (same_fd):
    * lib/rename.c (rpl_rename) [RENAME_HARD_LINK_BUG]:
    * lib/same-inode.c: New file.
    * lib/same.c (same_nameat):
    * lib/term-style-control.c (activate_term_style_controller):
    Prefer psame_inode (a, b) to SAME_INODE (*a, *b).
    * lib/hash-triple-simple.c (triple_compare_ino_str):
    * lib/hash-triple.c (triple_compare):
    Prefer PSAME_INODE (a, b) to SAME_INODE (*a, *b).
    psame_inode is not suitable since the args are not struct stat *.
    * lib/same-inode.h: Check that config.h is included first.
    (SAME_INODE_INLINE, PSAME_INODE): New macros.
    (SAME_INODE): Reimplement in terms of PSAME_INODE.
    (psame_inode): New function.
    * lib/stat-size.h (STP_BLKSIZE, STP_NBLOCKS): New macros.
    (ST_BLKSIZE, ST_NBLOCKS): Use them.
    * lib/term-style-control.c (log_signal_handler_called):
    Always define as a function, to pacify -Wunused*.
    * modules/canonicalize-lgpl-tests (Files): Add m4/musl.m4.
    (Depends-on): Call gl_MUSL_LIBC.
    * modules/same-inode (Files): Add same-inode.c.
    (Depends-on): Add extern-inline, stdbool.
    (lib_SOURCES): New macro.
    * tests/test-binary-io.c, tests/test-canonicalize-lgpl.c:
    * tests/test-canonicalize.c, tests/test-cloexec.c:
    * tests/test-dup-safer.c, tests/test-dup2.c, tests/test-error.c:
    * tests/test-fcntl.c, tests/test-fdopendir.c, tests/test-fgetc.c:
    * tests/test-fputc.c, tests/test-fread.c, tests/test-fstat.c:
    * tests/test-fstatat.c, tests/test-ftruncate.c:
    * tests/test-fwrite.c, tests/test-getcwd.c:
    * tests/test-getdtablesize.c, tests/test-isblank.c:
    * tests/test-linkat.c, tests/test-lock.c, tests/test-lstat.h:
    * tests/test-malloc-gnu.c, tests/test-openat.c:
    * tests/test-pthread-thread.c, tests/test-pthread_sigmask1.c:
    * tests/test-pthread_sigmask2.c, tests/test-ptsname.c:
    * tests/test-ptsname_r.c, tests/test-raise.c:
    * tests/test-realloc-gnu.c, tests/test-rwlock1.c:
    * tests/test-sigprocmask.c, tests/test-snprintf.c:
    * tests/test-stat.h, tests/test-term-style-control-hello.c:
    * tests/test-term-style-control-yes.c, tests/test-thread_create.c:
    * tests/test-unlinkat.c, tests/test-vasnprintf.c:
    * tests/test-xalloc-die.c:
    Adjust to these changes, and fix some warnings elicited by
    -Wall -Wextra that I ran into while testing.
    * top/maint.mk (sc_prohibit_stat_st_blocks): Mention STP_NBLOCKS.
    

  • README

  • This directory contains metainformation about the gnulib modules, one or two
    files per module. These files are used by gnulib-tool.
    
    For every module,
      - the file <module> is the metainformation about the library code of the
        module,
      - the file <module>-tests is the metainformation about the unit test of
        the module (optional but recommended).
    
    All the files in this directory are distributed under the following copyright:
    
      Copyright (C) 2002-2023 Free Software Foundation, Inc.
      Copying and distribution of this file, with or without modification,
      in any medium, are permitted without royalty provided the copyright
      notice and this notice are preserved.