mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 23:28:48 +00:00
fix strip-semicolon using original file handle size
This commit is contained in:
+4
-1
@@ -6030,9 +6030,12 @@ gb_inline b32 gb_file_copy(char const *existing_filename, char const *new_filena
|
|||||||
|
|
||||||
struct stat stat_existing;
|
struct stat stat_existing;
|
||||||
fstat(existing_fd, &stat_existing);
|
fstat(existing_fd, &stat_existing);
|
||||||
|
|
||||||
size = sendfile(new_fd, existing_fd, 0, stat_existing.st_size);
|
size = sendfile(new_fd, existing_fd, 0, stat_existing.st_size);
|
||||||
|
|
||||||
|
// set new handle to wanted size for safety
|
||||||
|
int i = ftruncate(new_fd, size);
|
||||||
|
GB_ASSERT(i == 0);
|
||||||
|
|
||||||
close(new_fd);
|
close(new_fd);
|
||||||
close(existing_fd);
|
close(existing_fd);
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -2141,7 +2141,7 @@ int strip_semicolons(Parser *parser) {
|
|||||||
generated_count += 1;
|
generated_count += 1;
|
||||||
|
|
||||||
i64 written = 0;
|
i64 written = 0;
|
||||||
defer (gb_file_truncate(&f, written));
|
defer (err = gb_file_truncate(&f, written));
|
||||||
|
|
||||||
debugf("Write file with stripped tokens: %s\n", filename);
|
debugf("Write file with stripped tokens: %s\n", filename);
|
||||||
err = write_file_with_stripped_tokens(&f, file->file, &written);
|
err = write_file_with_stripped_tokens(&f, file->file, &written);
|
||||||
@@ -2178,6 +2178,7 @@ int strip_semicolons(Parser *parser) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
debugf("Copy '%s' to '%s'\n", new_fullpath, old_fullpath);
|
debugf("Copy '%s' to '%s'\n", new_fullpath, old_fullpath);
|
||||||
|
|
||||||
if (!gb_file_copy(new_fullpath, old_fullpath, false)) {
|
if (!gb_file_copy(new_fullpath, old_fullpath, false)) {
|
||||||
gb_printf_err("failed to copy '%s' to '%s'\n", old_fullpath, new_fullpath);
|
gb_printf_err("failed to copy '%s' to '%s'\n", old_fullpath, new_fullpath);
|
||||||
debugf("Copy '%s' to '%s'\n", old_fullpath_backup, old_fullpath);
|
debugf("Copy '%s' to '%s'\n", old_fullpath_backup, old_fullpath);
|
||||||
|
|||||||
Reference in New Issue
Block a user