чување 064966a62fa3e31682b6dad26753042fe02181b9
родитељ 1fda024f044428ed14fa8ed37c72f07fb6d36c95
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Sun, 3 Mar 2024 09:12:26 +0100
Move strlcpy,strlcat declarations to util.h; add lstat call to save_file
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 2, додавања: 12(+), брисања: 8(-)
diff --git a/sled.c b/sled.c
@@ -59,13 +59,6 @@ extern const char* prompt_overwrite;
extern const char* prompt_reread_dirty;
extern const char* program_name;
-#ifndef strlcpy
-size_t strlcpy(char* dst, const char* src, size_t dsize);
-#endif
-#ifndef strlcat
-size_t strlcat(char* dst, const char* src, size_t dsize);
-#endif
-
int clear_selection(struct DrawState* state);
int cp(const char* from, const char* to);
int create_file(struct DrawState* dstate);
@@ -1036,6 +1029,10 @@ save_file(struct DrawState* state)
return SAVE_ERR_CANT_OPEN_FILE;
#ifdef CREATE_BACKUPS
+ if (lstat(state->rfn_len > 0 ? state->real_filename : state->filename,
+ &st)
+ < 0)
+ return SAVE_ERR_CANT_STAT_FILE;
#ifdef BACKUP_FAIL_OK
if (state->backup_possible)
{
@@ -1059,7 +1056,7 @@ save_file(struct DrawState* state)
if (symlink(state->real_filename, state->filename) == -1)
return SAVE_ERR_CANT_SYMLINK;
}
- if (!new_file)
+ if (!state->new_file)
chmod(state->rfn_len > 0 ? state->real_filename
: state->filename,
st.st_mode);
diff --git a/util.h b/util.h
@@ -49,6 +49,13 @@ enum { ACT_WRITING, ACT_READING };
extern int utlerrno;
+#ifndef strlcpy
+size_t strlcpy(char* dst, const char* src, size_t dsize);
+#endif
+#ifndef strlcat
+size_t strlcat(char* dst, const char* src, size_t dsize);
+#endif
+
size_t u8_string_to_unicode(uint32_t* us, const char* s, const size_t max);
size_t unicode_string_to_u8(char* s, const uint32_t* us, const size_t max);
size_t u32_strlen(const uint32_t* s);