From f21cc9e93a6132d0471441569adfa86197f79ead Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Thu, 13 Feb 2020 11:44:28 +0000 Subject: win32: code shrink Have bs_to_slash() return a pointer to its argument. This allows some calls to be chained, saving 32 bytes. --- debianutils/which.c | 12 +++++------- include/mingw.h | 2 +- win32/mingw.c | 20 +++++++++----------- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/debianutils/which.c b/debianutils/which.c index 61f5770c5..715bd8d5e 100644 --- a/debianutils/which.c +++ b/debianutils/which.c @@ -69,17 +69,14 @@ int which_main(int argc UNUSED_PARAM, char **argv) #if ENABLE_PLATFORM_MINGW32 if ((p=auto_win32_extension(*argv)) != NULL) { missing = 0; - bs_to_slash(p); - puts(p); + puts(bs_to_slash(p)); } else #endif if (file_is_executable(*argv)) { missing = 0; #if ENABLE_PLATFORM_MINGW32 - p = auto_string(xstrdup(*argv)); - bs_to_slash(p); - puts(p); + puts(bs_to_slash(auto_string(xstrdup(*argv)))); #else puts(*argv); #endif @@ -92,9 +89,10 @@ int which_main(int argc UNUSED_PARAM, char **argv) while ((p = find_executable(*argv, &path)) != NULL) { missing = 0; #if ENABLE_PLATFORM_MINGW32 - bs_to_slash(p); -#endif + puts(bs_to_slash(p)); +#else puts(p); +#endif free(p); if (!option_mask32) /* -a not set */ break; diff --git a/include/mingw.h b/include/mingw.h index 2a543160a..4aca7e884 100644 --- a/include/mingw.h +++ b/include/mingw.h @@ -513,7 +513,7 @@ static inline char *auto_win32_extension(const char *p) return s ? auto_string(s) : NULL; } -void bs_to_slash(char *p) FAST_FUNC; +char *bs_to_slash(char *p) FAST_FUNC; void slash_to_bs(char *p) FAST_FUNC; size_t remove_cr(char *p, size_t len) FAST_FUNC; diff --git a/win32/mingw.c b/win32/mingw.c index 8f4d155b8..bada160da 100644 --- a/win32/mingw.c +++ b/win32/mingw.c @@ -791,8 +791,7 @@ char *mingw_getcwd(char *pointer, int len) char *ret = getcwd(pointer, len); if (!ret) return ret; - bs_to_slash(ret); - return ret; + return bs_to_slash(ret); } #undef rename @@ -846,9 +845,7 @@ static char *gethomedir(void) GetUserProfileDirectory(h, buf, &len); CloseHandle(h); - bs_to_slash(buf); - - return buf; + return bs_to_slash(buf); } #define NAME_LEN 100 @@ -1109,8 +1106,7 @@ char *realpath(const char *path, char *resolved_path) if (_fullpath(buffer, path, MAX_PATH) && (real_path=resolve_symlinks(buffer))) { - strcpy(resolved_path, real_path); - bs_to_slash(resolved_path); + bs_to_slash(strcpy(resolved_path, real_path)); p = last_char_is(resolved_path, '/'); if (p && p > resolved_path && p[-1] != ':') *p = '\0'; @@ -1496,13 +1492,16 @@ char *alloc_win32_extension(const char *p) return NULL; } -void FAST_FUNC bs_to_slash(char *p) +char * FAST_FUNC bs_to_slash(char *str) { - for (; *p; ++p) { + char *p; + + for (p=str; *p; ++p) { if ( *p == '\\' ) { *p = '/'; } } + return str; } void FAST_FUNC slash_to_bs(char *p) @@ -1723,8 +1722,7 @@ char *get_drive_cwd(const char *path, char *buffer, int size) ret = GetFullPathName(drive, size, buffer, NULL); if (ret == 0 || ret > size) return NULL; - bs_to_slash(buffer); - return buffer; + return bs_to_slash(buffer); } void fix_path_case(char *path) -- cgit v1.2.3-55-g6feb