Skip to content

Commit

Permalink
Merge branch 'maint'
Browse files Browse the repository at this point in the history
* maint:
  Force listingblocks to be monospaced in manpages
  Do not expect unlink(2) to fail on a directory.
  • Loading branch information
gitster committed Jul 19, 2007
2 parents 726f9bc + 281a53b commit c1c10a3
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 7 deletions.
6 changes: 6 additions & 0 deletions Documentation/asciidoc.conf
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,13 @@ ifdef::backend-docbook[]
[listingblock]
<example><title>{title}</title>
<literallayout>
ifdef::doctype-manpage[]
&#10;.ft C&#10;
endif::doctype-manpage[]
|
ifdef::doctype-manpage[]
&#10;.ft&#10;
endif::doctype-manpage[]
</literallayout>
{title#}</example>
endif::backend-docbook[]
Expand Down
37 changes: 30 additions & 7 deletions entry.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,40 @@ static void create_directories(const char *path, const struct checkout *state)
const char *slash = path;

while ((slash = strchr(slash+1, '/')) != NULL) {
struct stat st;
int stat_status;

len = slash - path;
memcpy(buf, path, len);
buf[len] = 0;

if (len <= state->base_dir_len)
/*
* checkout-index --prefix=<dir>; <dir> is
* allowed to be a symlink to an existing
* directory.
*/
stat_status = stat(buf, &st);
else
/*
* if there currently is a symlink, we would
* want to replace it with a real directory.
*/
stat_status = lstat(buf, &st);

if (!stat_status && S_ISDIR(st.st_mode))
continue; /* ok, it is already a directory. */

/*
* We know stat_status == 0 means something exists
* there and this mkdir would fail, but that is an
* error codepath; we do not care, as we unlink and
* mkdir again in such a case.
*/
if (mkdir(buf, 0777)) {
if (errno == EEXIST) {
struct stat st;
if (len > state->base_dir_len && state->force && !unlink(buf) && !mkdir(buf, 0777))
continue;
if (!stat(buf, &st) && S_ISDIR(st.st_mode))
continue; /* ok */
}
if (errno == EEXIST && state->force &&
!unlink(buf) && !mkdir(buf, 0777))
continue;
die("cannot create directory at %s", buf);
}
}
Expand Down

0 comments on commit c1c10a3

Please sign in to comment.