mirror of
https://github.com/mirror/wget.git
synced 2025-03-24 08:40:29 +08:00
Split unique_name into two functions with just one arg
* src/http.c (check_file_output): Call unique_name_passthrough. * src/metalink.c (badhash_suffix): Call unique_name. * src/url.c (url_file_name): Call unique_name_passthrough. * src/utils.c: Split unique_name, amend description. * src/utils.h: Amend unique_name, add unique_name_passthrough.
This commit is contained in:
parent
88d841c651
commit
8e130c32ba
@ -2367,7 +2367,7 @@ check_file_output (const struct url *u, struct http_stat *hs,
|
||||
}
|
||||
else if (!ALLOW_CLOBBER)
|
||||
{
|
||||
char *unique = unique_name (hs->local_file, true);
|
||||
char *unique = unique_name_passthrough (hs->local_file);
|
||||
if (unique != hs->local_file)
|
||||
xfree (hs->local_file);
|
||||
hs->local_file = unique;
|
||||
|
@ -1108,7 +1108,7 @@ badhash_suffix (char *name)
|
||||
char *bhash, *uname;
|
||||
|
||||
bhash = concat_strings (name, ".badhash", (char *)0);
|
||||
uname = unique_name (bhash, false);
|
||||
uname = unique_name (bhash);
|
||||
|
||||
logprintf (LOG_VERBOSE, _("Renaming %s to %s.\n"),
|
||||
quote_n (0, name), quote_n (1, uname));
|
||||
|
@ -1863,7 +1863,7 @@ url_file_name (const struct url *u, char *replaced_filename)
|
||||
}
|
||||
else
|
||||
{
|
||||
unique = unique_name (fname, true);
|
||||
unique = unique_name_passthrough (fname);
|
||||
if (unique != fname)
|
||||
xfree (fname);
|
||||
}
|
||||
|
39
src/utils.c
39
src/utils.c
@ -686,21 +686,27 @@ unique_name_1 (const char *prefix)
|
||||
by this function exists until you open it with O_EXCL or
|
||||
equivalent.
|
||||
|
||||
If ALLOW_PASSTHROUGH is 0, it always returns a freshly allocated
|
||||
string. Otherwise, it may return FILE if the file doesn't exist
|
||||
unique_name() always returns a freshly allocated string.
|
||||
|
||||
unique_name_passthrough() may return FILE if the file doesn't exist
|
||||
(and therefore doesn't need changing). */
|
||||
|
||||
char *
|
||||
unique_name (const char *file, bool allow_passthrough)
|
||||
unique_name_passthrough (const char *file)
|
||||
{
|
||||
/* If the FILE itself doesn't exist, return it without
|
||||
modification. */
|
||||
if (!file_exists_p (file, NULL))
|
||||
return allow_passthrough ? (char *)file : xstrdup (file);
|
||||
modification. Otherwise, find a numeric suffix that results in unused
|
||||
file name and return it. */
|
||||
return file_exists_p (file, NULL) ? unique_name_1 (file) : (char *) file;
|
||||
}
|
||||
|
||||
/* Otherwise, find a numeric suffix that results in unused file name
|
||||
and return it. */
|
||||
return unique_name_1 (file);
|
||||
char *
|
||||
unique_name (const char *file)
|
||||
{
|
||||
/* If the FILE itself doesn't exist, return it without
|
||||
modification. Otherwise, find a numeric suffix that results in unused
|
||||
file name and return it. */
|
||||
return file_exists_p (file, NULL) ? unique_name_1 (file) : xstrdup (file);
|
||||
}
|
||||
|
||||
#else /* def UNIQ_SEP */
|
||||
@ -709,10 +715,17 @@ unique_name (const char *file, bool allow_passthrough)
|
||||
possible.
|
||||
*/
|
||||
char *
|
||||
unique_name (const char *file, bool allow_passthrough)
|
||||
unique_name_passthrough (const char *file, bool allow_passthrough)
|
||||
{
|
||||
/* Return the FILE itself, without modification, irregardful. */
|
||||
return allow_passthrough ? (char *)file : xstrdup (file);
|
||||
return (char *) file);
|
||||
}
|
||||
char *
|
||||
|
||||
unique_name (const char *file)
|
||||
{
|
||||
/* Return the FILE itself, without modification, irregardful. */
|
||||
return xstrdup (file);
|
||||
}
|
||||
|
||||
#endif /* def UNIQ_SEP [else] */
|
||||
@ -726,12 +739,12 @@ FILE *
|
||||
unique_create (const char *name, bool binary, char **opened_name)
|
||||
{
|
||||
/* unique file name, based on NAME */
|
||||
char *uname = unique_name (name, false);
|
||||
char *uname = unique_name (name);
|
||||
FILE *fp;
|
||||
while ((fp = fopen_excl (uname, binary)) == NULL && errno == EEXIST)
|
||||
{
|
||||
xfree (uname);
|
||||
uname = unique_name (name, false);
|
||||
uname = unique_name (name);
|
||||
}
|
||||
if (opened_name)
|
||||
{
|
||||
|
@ -88,7 +88,8 @@ bool file_exists_p (const char *, file_stats_t *);
|
||||
bool file_non_directory_p (const char *);
|
||||
wgint file_size (const char *);
|
||||
int make_directory (const char *);
|
||||
char *unique_name (const char *, bool);
|
||||
char *unique_name_passthrough (const char *);
|
||||
char *unique_name (const char *);
|
||||
FILE *unique_create (const char *, bool, char **);
|
||||
FILE *fopen_excl (const char *, int);
|
||||
FILE *fopen_stat (const char *, const char *, file_stats_t *);
|
||||
|
Loading…
Reference in New Issue
Block a user