projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* getlogin_r.h: Simplify API documentation.
[gnulib.git]
/
lib
/
dirname.c
diff --git
a/lib/dirname.c
b/lib/dirname.c
index
9fb5f09
..
9b60076
100644
(file)
--- a/
lib/dirname.c
+++ b/
lib/dirname.c
@@
-1,5
+1,7
@@
/* dirname.c -- return all but the last element in a path
/* dirname.c -- return all but the last element in a path
- Copyright 1990, 1998, 2000, 2001 Free Software Foundation, Inc.
+
+ Copyright (C) 1990, 1998, 2000, 2001, 2003, 2004 Free Software
+ Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@
-13,17
+15,15
@@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
- Inc., 5
9 Temple Place - Suite 330, Boston, MA 02111-1307
, USA. */
+ Inc., 5
1 Franklin Street, Fifth Floor, Boston, MA 02110-1301
, USA. */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#if HAVE_CONFIG_H
# include <config.h>
#endif
-#if STDC_HEADERS || HAVE_STRING_H
-# include <string.h>
-#endif
-
#include "dirname.h"
#include "dirname.h"
+
+#include <string.h>
#include "xalloc.h"
/* Return the length of `dirname (PATH)', or zero if PATH is
#include "xalloc.h"
/* Return the length of `dirname (PATH)', or zero if PATH is
@@
-32,7
+32,7
@@
size_t
dir_len (char const *path)
{
size_t
dir_len (char const *path)
{
- size_t prefix_length = FILESYSTEM_PREFIX_LEN (path);
+ size_t prefix_length = FILE
_
SYSTEM_PREFIX_LEN (path);
size_t length;
/* Strip the basename and any redundant slashes before it. */
size_t length;
/* Strip the basename and any redundant slashes before it. */
@@
-53,7
+53,7
@@
char *
dir_name (char const *path)
{
size_t length = dir_len (path);
dir_name (char const *path)
{
size_t length = dir_len (path);
-
int append_dot = (length == FILE
SYSTEM_PREFIX_LEN (path));
+
bool append_dot = (length == FILE_
SYSTEM_PREFIX_LEN (path));
char *newpath = xmalloc (length + append_dot + 1);
memcpy (newpath, path, length);
if (append_dot)
char *newpath = xmalloc (length + append_dot + 1);
memcpy (newpath, path, length);
if (append_dot)
@@
-67,9
+67,13
@@
dir_name (char const *path)
Run the test like this (expect no output):
gcc -DHAVE_CONFIG_H -DTEST_DIRNAME -I.. -O -Wall \
Run the test like this (expect no output):
gcc -DHAVE_CONFIG_H -DTEST_DIRNAME -I.. -O -Wall \
- basename.c dirname.c xmalloc.c
+ basename.c dirname.c xmalloc.c
error.c
sed -n '/^BEGIN-DATA$/,/^END-DATA$/p' dirname.c|grep -v DATA|./a.out
sed -n '/^BEGIN-DATA$/,/^END-DATA$/p' dirname.c|grep -v DATA|./a.out
+If it's been built on a DOS or Windows platforms, run another test like
+this (again, expect no output):
+ sed -n '/^BEGIN-DOS-DATA$/,/^END-DOS-DATA$/p' dirname.c|grep -v DATA|./a.out
+
BEGIN-DATA
foo//// .
bar/foo//// bar
BEGIN-DATA
foo//// .
bar/foo//// bar
@@
-79,16
+83,28
@@
foo/ .
a .
END-DATA
a .
END-DATA
+BEGIN-DOS-DATA
+c:///// c:/
+c:/ c:/
+c:/. c:/
+c:foo c:.
+c:foo/bar c:foo
+END-DOS-DATA
+
*/
# define MAX_BUFF_LEN 1024
# include <stdio.h>
*/
# define MAX_BUFF_LEN 1024
# include <stdio.h>
+char *program_name;
+
int
int
-main ()
+main (
int argc, char *argv[]
)
{
char buff[MAX_BUFF_LEN + 1];
{
char buff[MAX_BUFF_LEN + 1];
+ program_name = argv[0];
+
buff[MAX_BUFF_LEN] = 0;
while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0])
{
buff[MAX_BUFF_LEN] = 0;
while (fgets (buff, MAX_BUFF_LEN, stdin) && buff[0])
{