From 97abb9f63eb8fd2fbd5fbc9fabdbeccf37d59f5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim Rühsen?= Date: Fri, 19 Dec 2014 16:07:38 +0100 Subject: [PATCH] gnulib: Use basename() from gnulib module 'dirname' Avoid basename incompatibilities between POSIX and GNU implementations. Also, libgen.h isn't needed any more which increases compatibility. --- bootstrap.conf | 1 + src/main.c | 7 ++----- src/warc.c | 16 +++------------- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/bootstrap.conf b/bootstrap.conf index 211f0ad..8d45475 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -36,6 +36,7 @@ c-strcasestr clock-time close connect +dirname fcntl fnmatch futimens diff --git a/src/main.c b/src/main.c index f511258..608a20c 100644 --- a/src/main.c +++ b/src/main.c @@ -56,6 +56,7 @@ as that of the covered work. */ #include "warc.h" #include "version.h" #include "c-strcase.h" +#include "dirname.h" #include #include #include @@ -1033,11 +1034,7 @@ main (int argc, char **argv) /* On VMS, lose the "dev:[dir]" prefix and the ".EXE;nnn" suffix. */ exec_name = vms_basename (argv[0]); #else /* def __VMS */ - exec_name = strrchr (argv[0], PATH_SEPARATOR); - if (!exec_name) - exec_name = argv[0]; - else - ++exec_name; + exec_name = basename (argv[0]); #endif /* def __VMS [else] */ #ifdef WINDOWS diff --git a/src/warc.c b/src/warc.c index 4959836..ef87f46 100644 --- a/src/warc.c +++ b/src/warc.c @@ -35,6 +35,7 @@ as that of the covered work. */ #include "hash.h" #include "utils.h" #include "version.h" +#include "dirname.h" #include #include @@ -54,12 +55,6 @@ as that of the covered work. */ #include #endif -#ifndef WINDOWS -#include -#else -#include -#endif - #include "warc.h" #include "exits.h" @@ -671,7 +666,7 @@ warc_write_warcinfo_record (char *filename) { FILE *warc_tmp; char timestamp[22]; - char *filename_copy, *filename_basename; + char *filename_basename; /* Write warc-info record as the first record of the file. */ /* We add the record id of this info record to the other records in the @@ -681,8 +676,7 @@ warc_write_warcinfo_record (char *filename) warc_timestamp (timestamp, sizeof(timestamp)); - filename_copy = strdup (filename); - filename_basename = strdup (basename (filename_copy)); + filename_basename = basename (filename); warc_write_start_record (); warc_write_header ("WARC-Type", "warcinfo"); @@ -695,8 +689,6 @@ warc_write_warcinfo_record (char *filename) warc_tmp = warc_tempfile (); if (warc_tmp == NULL) { - xfree (filename_copy); - xfree (filename_basename); return false; } @@ -722,8 +714,6 @@ warc_write_warcinfo_record (char *filename) if (! warc_write_ok) logprintf (LOG_NOTQUIET, _("Error writing warcinfo record to WARC file.\n")); - xfree (filename_copy); - xfree (filename_basename); fclose (warc_tmp); return warc_write_ok; } -- 2.1.3