head 1.4; access; symbols pkgsrc-2013Q2:1.4.0.32 pkgsrc-2013Q2-base:1.4 pkgsrc-2012Q4:1.4.0.30 pkgsrc-2012Q4-base:1.4 pkgsrc-2011Q4:1.4.0.28 pkgsrc-2011Q4-base:1.4 pkgsrc-2011Q2:1.4.0.26 pkgsrc-2011Q2-base:1.4 pkgsrc-2009Q4:1.4.0.24 pkgsrc-2009Q4-base:1.4 pkgsrc-2008Q4:1.4.0.22 pkgsrc-2008Q4-base:1.4 pkgsrc-2008Q3:1.4.0.20 pkgsrc-2008Q3-base:1.4 cube-native-xorg:1.4.0.18 cube-native-xorg-base:1.4 pkgsrc-2008Q2:1.4.0.16 pkgsrc-2008Q2-base:1.4 pkgsrc-2008Q1:1.4.0.14 pkgsrc-2008Q1-base:1.4 pkgsrc-2007Q4:1.4.0.12 pkgsrc-2007Q4-base:1.4 pkgsrc-2007Q3:1.4.0.10 pkgsrc-2007Q3-base:1.4 pkgsrc-2007Q2:1.4.0.8 pkgsrc-2007Q2-base:1.4 pkgsrc-2007Q1:1.4.0.6 pkgsrc-2007Q1-base:1.4 pkgsrc-2006Q4:1.4.0.4 pkgsrc-2006Q4-base:1.4 pkgsrc-2006Q3:1.4.0.2 pkgsrc-2006Q3-base:1.4 pkgsrc-2006Q2:1.2.0.28 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.26 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.24 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.22 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.20 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.18 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.2.0.16 pkgsrc-2004Q4-base:1.2 pkgsrc-2004Q3:1.2.0.14 pkgsrc-2004Q3-base:1.2 pkgsrc-2004Q2:1.2.0.12 pkgsrc-2004Q2-base:1.2 pkgsrc-2004Q1:1.2.0.10 pkgsrc-2004Q1-base:1.2 pkgsrc-2003Q4:1.2.0.8 pkgsrc-2003Q4-base:1.2 netbsd-1-6-1:1.2.0.4 netbsd-1-6-1-base:1.2 netbsd-1-6:1.2.0.6 netbsd-1-6-RELEASE-base:1.2 pkgviews:1.2.0.2 pkgviews-base:1.2 buildlink2:1.1.0.2 buildlink2-base:1.2 netbsd-1-5-PATCH003:1.1; locks; strict; comment @# @; 1.4 date 2006.08.05.19.54.26; author wiz; state dead; branches; next 1.3; 1.3 date 2006.08.04.19.23.39; author christos; state Exp; branches; next 1.2; 1.2 date 2002.06.21.12.26.32; author lukem; state Exp; branches; next 1.1; 1.1 date 2001.09.19.08.57.07; author joda; state Exp; branches 1.1.2.1; next ; 1.1.2.1 date 2002.06.23.18.44.22; author jlam; state Exp; branches; next ; desc @@ 1.4 log @Complete move of id-utils to its new home, idutils. @ text @$NetBSD: patch-ak,v 1.3 2006/08/04 19:23:39 christos Exp $ --- src/mkid.c.orig 2006-02-16 01:40:30.000000000 -0500 +++ src/mkid.c 2006-08-03 15:57:10.096617302 -0400 @@@@ -28,7 +28,6 @@@@ #include #include #include -#include #include #include #include @@@@ -40,8 +39,6 @@@@ #include "scanners.h" #include "iduglobal.h" -char* dirname(char* path); - struct summary { struct token **sum_tokens; @@@@ -372,11 +369,18 @@@@ { if (errno == ENOENT) { - char const *dirname = dir_name ((char*)filename); - if (access (dirname, 06) < 0) + char *dir_name = strrchr (filename, '/'); + if (dir_name) + { + while (*--dir_name == '/') + continue; + dir_name++; + } + dir_name = dir_name ? strndup (filename, dir_name - filename) : strdup("."); + if (access (dir_name, 06) < 0) error (1, errno, _("can't create `%s' in `%s'"), - base_name (filename), dirname); - free(dirname); + base_name (filename), dir_name); + free(dir_name); } else error (1, errno, _("can't modify `%s'"), filename); @@@@ -450,7 +454,7 @@@@ source_FILE = fopen (flink->fl_name, "r"); if (source_FILE) { - char *file_name = alloca (PATH_MAX); + char file_name[PATH_MAX]; if (statistics_flag) { if (fstat (fileno (source_FILE), &st) < 0) @ 1.3 log @welcome to idutils-4.1 @ text @d1 1 a1 1 $NetBSD$ @ 1.2 log @+ In assert_writeable(), don't depend upon dirname(3) not modifying the argument; POSIX allows this, even though the replacement lib/dirname.c (from glibc?) returns a strndup-ed strings *except* for the "." case. [mmm, possible memory leaks]. Instead, just implement most of guts of lib/dirname.c directly in assert_writeable(), always copy string, and always free it. This fixes ``mkid -f /some/path/to/id'' + Crank PKGREVISION. @ text @d1 1 a1 1 $NetBSD: patch-ak,v 1.1 2001/09/19 08:57:07 joda Exp $ d3 11 a13 4 --- src/mkid.c.orig Tue Jul 9 14:19:09 1996 +++ src/mkid.c @@@@ -33,7 +33,6 @@@@ #include "hash.h" d15 8 a22 6 #include "error.h" -#include "xalloca.h" #if HAVE_LIMITS_H # include #endif @@@@ -304,12 +303,18 @@@@ d26 3 a28 4 - char const *dir_name = dirname (file_name); - if (!dir_name || !*dir_name) - dir_name = "."; + char *dir_name = strrchr (file_name, '/'); d32 1 a32 1 + ; d35 2 a36 2 + dir_name = dir_name ? strndup (file_name, dir_name - file_name) : strdup("."); if (access (dir_name, 06) < 0) d38 4 a41 2 basename (file_name), dir_name); + free (dir_name); d44 8 a51 2 error (1, errno, _("can't modify `%s'"), file_name); @@@@ -363,7 +368,7 @@@@ a53 15 { - char *file_name = ALLOCA (char, PATH_MAX); + char file_name[PATH_MAX]; maybe_relative_file_name (file_name, flink, cw_dlink); error (0, errno, _("can't stat `%s'"), file_name); } @@@@ -372,7 +377,7 @@@@ } if (verbose_flag) { - char *file_name = ALLOCA (char, PATH_MAX); + char file_name[PATH_MAX]; maybe_relative_file_name (file_name, flink, cw_dlink); printf ("%d: %s: %s", member->mf_index, lang->lg_name, file_name); fflush (stdout); @ 1.1 log @remove unnecessary alloca's; quash one buffer overrun @ text @d1 1 a1 1 $NetBSD$ d3 2 a4 2 --- src/mkid.c~ Tue Jul 9 06:19:09 1996 +++ src/mkid.c Wed Sep 19 10:21:00 2001 d13 23 a35 1 @@@@ -363,7 +362,7 @@@@ d44 1 a44 1 @@@@ -372,7 +371,7 @@@@ @ 1.1.2.1 log @Merge from pkgsrc-current to buildlink2 branch. @ text @d1 1 a1 1 $NetBSD: patch-ak,v 1.2 2002/06/21 12:26:32 lukem Exp $ d3 2 a4 2 --- src/mkid.c.orig Tue Jul 9 14:19:09 1996 +++ src/mkid.c d13 1 a13 23 @@@@ -304,12 +303,18 @@@@ { if (errno == ENOENT) { - char const *dir_name = dirname (file_name); - if (!dir_name || !*dir_name) - dir_name = "."; + char *dir_name = strrchr (file_name, '/'); + if (dir_name) + { + while (*--dir_name == '/') + ; + dir_name++; + } + dir_name = dir_name ? strndup (file_name, dir_name - file_name) : strdup("."); if (access (dir_name, 06) < 0) error (1, errno, _("can't create `%s' in `%s'"), basename (file_name), dir_name); + free (dir_name); } else error (1, errno, _("can't modify `%s'"), file_name); @@@@ -363,7 +368,7 @@@@ d22 1 a22 1 @@@@ -372,7 +377,7 @@@@ @