git: libc - Adopt more linux-friendly basename() and dirname()

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Jan 4 12:55:05 PST 2020


commit 207ba6700e31c36bb4e38d4da221a4f86e466ee9
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Jan 4 12:48:20 2020 -0800

    libc - Adopt more linux-friendly basename() and dirname()
    
    * Essentially take the FreeBSD basename() and dirname() code, changing
      the API to be more linux-friendly.  This reduces work required in dports.
    
    * Adjust numerous cases in our base code that assumed the old prototypes
      and side effects.
    
    * The passed-in string pointers are no longer const and can be modified
      in-place by the functions.  The returned value is no longer sometimes
      dynamically allocated and will instead either return a constant string,
      a portion of the passed in string, or a modified portion of the
      passed-in string.
    
      The API unfortunately has to be declared to return a char * instead of
      a const char *, even though it sometimes returns pointers to constant
      strings.
    
      The API is now thread-safe.
    
    * The API is still a huge historical mess but at least the ports for
      the most part assume the above behavior now due to linux doing the
      same thing.
    
    Reviewed-by: multiple people

Summary of changes:
 contrib/gdb-7/include/libiberty.h |  2 +-
 include/libgen.h                  |  4 +-
 lib/libc/gen/basename.c           | 76 ++++++++++--------------------
 lib/libc/gen/dirname.c            | 97 ++++++++++++++++++---------------------
 lib/libpam/libpam/pam_debug_log.c |  6 ++-
 lib/libutil/pw_util.c             |  2 +-
 sbin/devfsctl/devfsctl.c          |  2 +-
 sbin/hammer/cmd_pfs.c             | 21 +++++++--
 usr.bin/evtranalyze/evtranalyze.c |  9 +++-
 usr.bin/newgrp/newgrp.c           |  4 +-
 usr.bin/shlock/shlock.c           |  5 +-
 usr.sbin/hotplugd/hotplugd.c      |  2 +-
 12 files changed, 107 insertions(+), 123 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/207ba6700e31c36bb4e38d4da221a4f86e466ee9


-- 
DragonFly BSD source repository



More information about the Commits mailing list