X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/2dc7b8bd0e8d4a2d91334b9bb458df146b1700e8..d521e1c2a1980d241b0ca611d71c78d51bf255f5:/util.c diff --git a/util.c b/util.c index 540fdf5d..cdf68bcb 100644 --- a/util.c +++ b/util.c @@ -109,19 +109,19 @@ void print_child_argv(char **cmd) rprintf(FCLIENT, "\n"); } -NORETURN void out_of_memory(char *str) +NORETURN void out_of_memory(const char *str) { rprintf(FERROR, "ERROR: out of memory in %s [%s]\n", str, who_am_i()); exit_cleanup(RERR_MALLOC); } -NORETURN void overflow_exit(char *str) +NORETURN void overflow_exit(const char *str) { rprintf(FERROR, "ERROR: buffer overflow in %s [%s]\n", str, who_am_i()); exit_cleanup(RERR_MALLOC); } -int set_modtime(char *fname, time_t modtime, mode_t mode) +int set_modtime(const char *fname, time_t modtime, mode_t mode) { #if !defined HAVE_LUTIMES || !defined HAVE_UTIMES if (S_ISLNK(mode)) @@ -145,8 +145,10 @@ int set_modtime(char *fname, time_t modtime, mode_t mode) t[1].tv_sec = modtime; t[1].tv_usec = 0; # ifdef HAVE_LUTIMES - if (S_ISLNK(mode)) - return lutimes(fname, t); + if (S_ISLNK(mode)) { + lutimes(fname, t); + return 0; /* ignore errors */ + } # endif return utimes(fname, t); #elif defined HAVE_UTIMBUF @@ -214,7 +216,7 @@ int create_directory_path(char *fname) * * Derived from GNU C's cccp.c. */ -int full_write(int desc, char *ptr, size_t len) +int full_write(int desc, const char *ptr, size_t len) { int total_written; @@ -382,7 +384,7 @@ int robust_unlink(const char *fname) * across filesystems, -2 if copy_file() failed, and -1 on other errors. * If partialptr is not NULL and we need to do a copy, copy the file into * the active partial-dir instead of over the destination file. */ -int robust_rename(char *from, char *to, char *partialptr, +int robust_rename(const char *from, const char *to, const char *partialptr, int mode) { int tries = 4; @@ -459,7 +461,7 @@ void kill_all(int sig) } /** Turn a user name into a uid */ -int name_to_uid(char *name, uid_t *uid) +int name_to_uid(const char *name, uid_t *uid) { struct passwd *pass; if (!name || !*name) @@ -473,7 +475,7 @@ int name_to_uid(char *name, uid_t *uid) } /** Turn a group name into a gid */ -int name_to_gid(char *name, gid_t *gid) +int name_to_gid(const char *name, gid_t *gid) { struct group *grp; if (!name || !*name) @@ -864,7 +866,7 @@ char *sanitize_path(char *dest, const char *p, const char *rootdir, int depth, /* Like chdir(), but it keeps track of the current directory (in the * global "curr_dir"), and ensures that the path size doesn't overflow. * Also cleans the path using the clean_fname() function. */ -int push_dir(char *dir, int set_path_only) +int push_dir(const char *dir, int set_path_only) { static int initialised; unsigned int len; @@ -911,7 +913,7 @@ int push_dir(char *dir, int set_path_only) * Reverse a push_dir() call. You must pass in an absolute path * that was copied from a prior value of "curr_dir". **/ -int pop_dir(char *dir) +int pop_dir(const char *dir) { if (chdir(dir)) return 0; @@ -1126,7 +1128,7 @@ char *human_num(int64 num) if (!num) *--s = '0'; while (num) { - *--s = (num % 10) + '0'; + *--s = (char)(num % 10) + '0'; num /= 10; } return s; @@ -1147,9 +1149,7 @@ char *human_dnum(double dnum, int decimal_digits) return buf; } -/** - * Return the date and time as a string - **/ +/* Return the date and time as a string. Some callers tweak returned buf. */ char *timestring(time_t t) { static char TimeBuf[200];