* details.
*
* You should have received a copy of the GNU Lesser General Public License
- * along with this file; if not, see http://www.gnu.org/licenses/.
+ * along with this file; if not, see https://www.gnu.org/licenses/.
*/
/*
size_t len = tstrlen(fs_source_path) +
tstrlen(wimboot_cfgfile);
- tmp_config_file = MALLOC((len + 1) * sizeof(tchar));
struct stat st;
+ tmp_config_file = MALLOC((len + 1) * sizeof(tchar));
+ if (!tmp_config_file)
+ return WIMLIB_ERR_NOMEM;
+
tsprintf(tmp_config_file, T("%"TS"%"TS),
fs_source_path, wimboot_cfgfile);
if (!tstat(tmp_config_file, &st)) {
*/
int
rename_wim_path(WIMStruct *wim, const tchar *from, const tchar *to,
- CASE_SENSITIVITY_TYPE case_type,
+ CASE_SENSITIVITY_TYPE case_type, bool noreplace,
struct update_command_journal *j)
{
struct wim_dentry *src;
if (dst) {
/* Destination file exists */
+ if (noreplace)
+ return -EEXIST;
+
if (src == dst) /* Same file */
return 0;
ret = rename_wim_path(wim, rename_cmd->rename.wim_source_path,
rename_cmd->rename.wim_target_path,
- WIMLIB_CASE_PLATFORM_DEFAULT, j);
+ WIMLIB_CASE_PLATFORM_DEFAULT, false, j);
if (ret) {
ret = -ret;
errno = ret;
}
#endif
-#ifdef __WIN32__
+#ifdef _WIN32
/* Check for flags not supported on Windows. */
if (add_flags & WIMLIB_ADD_FLAG_UNIX_DATA) {
ERROR("Capturing UNIX-specific data is not supported on Windows");