annotate lib/mkdir.c @ 7296:33903d90fa2b

(argp_doc): Make sure NULL is not passed to dgettext
author Sergey Poznyakoff <gray@gnu.org.ua>
date Tue, 12 Sep 2006 09:06:40 +0000
parents 96c32553b4c6
children 8a1a9361108c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3479
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
1 /* On some systems, mkdir ("foo/", 0700) fails because of the trailing
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
2 slash. On those systems, this wrapper removes the trailing slash.
4665
dc6d827f3011 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 3479
diff changeset
3
dc6d827f3011 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 3479
diff changeset
4 Copyright (C) 2001, 2003 Free Software Foundation, Inc.
3479
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
5
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
6 This program is free software; you can redistribute it and/or modify
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
9 any later version.
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
10
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
11 This program is distributed in the hope that it will be useful,
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14 GNU General Public License for more details.
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
15
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
17 along with this program; if not, write to the Free Software Foundation,
5848
a48fb0e98c8c *** empty log message ***
Paul Eggert <eggert@cs.ucla.edu>
parents: 4665
diff changeset
18 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
3479
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
20 /* written by Jim Meyering */
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
21
6259
96c32553b4c6 Use a consistent style for including <config.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
22 #ifdef HAVE_CONFIG_H
96c32553b4c6 Use a consistent style for including <config.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
23 # include <config.h>
96c32553b4c6 Use a consistent style for including <config.h>.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
24 #endif
3479
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
25
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
26 /* Disable the definition of mkdir to rpl_mkdir (from config.h) in this
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
27 file. Otherwise, we'd get conflicting prototypes for rpl_mkdir on
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
28 most systems. */
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
29 #undef mkdir
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
30
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
31 #include <sys/types.h>
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
32 #include <sys/stat.h>
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
33 #include <stdio.h>
4665
dc6d827f3011 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 3479
diff changeset
34 #include <stdlib.h>
dc6d827f3011 Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 3479
diff changeset
35 #include <string.h>
3479
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
36
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
37 #include "dirname.h"
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
38 #include "xalloc.h"
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
39
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
40 /* This function is required at least for NetBSD 1.5.2. */
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
41
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42 int
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
43 rpl_mkdir (char const *dir, mode_t mode)
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
44 {
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
45 int ret_val;
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
46 char *tmp_dir;
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
47 size_t len = strlen (dir);
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
48
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49 if (len && dir[len - 1] == '/')
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
50 {
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
51 tmp_dir = xstrdup (dir);
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 strip_trailing_slashes (tmp_dir);
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53 }
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
54 else
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
55 {
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
56 tmp_dir = (char *) dir;
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
57 }
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
58
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
59 ret_val = mkdir (tmp_dir, mode);
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
60
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
61 if (tmp_dir != dir)
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
62 free (tmp_dir);
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
63
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
64 return ret_val;
006fa74ac160 *** empty log message ***
Jim Meyering <jim@meyering.net>
parents:
diff changeset
65 }