diff options
| author | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2025-12-19 23:25:48 +0100 |
|---|---|---|
| committer | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2025-12-19 23:25:48 +0100 |
| commit | 2592ef74ab2eba57c32fe21993ce01e9698b106f (patch) | |
| tree | b733680e79aab862c0ba748bb91016a752c8773a /src/ring.c | |
| parent | 714875f3c0c22ed01a8e777755b281c97f2b52b8 (diff) | |
fixup: renamed "backups" to "recovery files"HEADmaster-fmsbw-cimaster
* Other editors call "backup files" previous copies of saved files.
This role would be served by savepoint files in SciTECO.
* Likewise filename~ would point to such a backup file.
It therefore makes sense that savepoint files also end in tildes (.teco-n-filename~).
* Security copies of modified buffers would be called "auto-saves" (Emacs) or
"swap files" (Vim).
Both of these terms is IMHO misleading, so SciTECO now uses the
term "recovery file".
* "Recovery files" are now named #filename# just like in Emacs.
Diffstat (limited to 'src/ring.c')
| -rw-r--r-- | src/ring.c | 46 |
1 files changed, 24 insertions, 22 deletions
@@ -77,9 +77,11 @@ teco_buffer_undo_edit(teco_buffer_t *ctx) /** @private @memberof teco_buffer_t */ static inline gchar * -teco_buffer_get_backup(teco_buffer_t *ctx) +teco_buffer_get_recovery(teco_buffer_t *ctx) { - return g_strconcat(ctx->filename, "~", NULL); + g_autofree gchar *dirname = g_path_get_dirname(ctx->filename); + g_autofree gchar *basename = g_path_get_basename(ctx->filename); + return g_strconcat(dirname, G_DIR_SEPARATOR_S, "#", basename, "#", NULL); } /** @private @memberof teco_buffer_t */ @@ -116,10 +118,10 @@ teco_buffer_save(teco_buffer_t *ctx, const gchar *filename, GError **error) */ if (ctx == teco_ring_current && !teco_qreg_current) undo__teco_interface_info_update_buffer(ctx); - if (ctx->state == TECO_BUFFER_DIRTY_BACKEDUP) { - g_autofree gchar *filename_backup = teco_buffer_get_backup(ctx); - g_unlink(filename_backup); - /* on rubout, we do not restore the backup file */ + if (ctx->state == TECO_BUFFER_DIRTY_DUMPED) { + g_autofree gchar *filename_recovery = teco_buffer_get_recovery(ctx); + g_unlink(filename_recovery); + /* on rubout, we do not restore the recovery file */ ctx->state = TECO_BUFFER_DIRTY; } teco_undo_guint(ctx->state) = TECO_BUFFER_CLEAN; @@ -141,9 +143,9 @@ teco_buffer_save(teco_buffer_t *ctx, const gchar *filename, GError **error) static inline void teco_buffer_free(teco_buffer_t *ctx) { - if (ctx->state == TECO_BUFFER_DIRTY_BACKEDUP) { - g_autofree gchar *filename_backup = teco_buffer_get_backup(ctx); - g_unlink(filename_backup); + if (ctx->state == TECO_BUFFER_DIRTY_DUMPED) { + g_autofree gchar *filename_recovery = teco_buffer_get_recovery(ctx); + g_unlink(filename_recovery); } teco_view_free(ctx->view); @@ -242,9 +244,9 @@ teco_ring_find_by_id(teco_int_t id) static void teco_ring_undirtify(void) { - if (teco_ring_current->state == TECO_BUFFER_DIRTY_BACKEDUP) { - g_autofree gchar *filename_backup = teco_buffer_get_backup(teco_ring_current); - g_unlink(filename_backup); + if (teco_ring_current->state == TECO_BUFFER_DIRTY_DUMPED) { + g_autofree gchar *filename_recovery = teco_buffer_get_recovery(teco_ring_current); + g_unlink(filename_recovery); } teco_ring_current->state = TECO_BUFFER_CLEAN; @@ -268,7 +270,7 @@ teco_ring_dirtify(void) break; case TECO_BUFFER_DIRTY: break; - case TECO_BUFFER_DIRTY_BACKEDUP: + case TECO_BUFFER_DIRTY_DUMPED: /* set to TECO_BUFFER_DIRTY on rubout */ teco_undo_guint(teco_ring_current->state); break; @@ -306,22 +308,22 @@ teco_ring_save_all_dirty_buffers(GError **error) } /** - * Backup interval in seconds or 0 if disabled. + * Recovery creation interval in seconds or 0 if disabled. * It's not currently enforced in batch mode. */ -guint teco_ring_backup_interval = 5*60; +guint teco_ring_recovery_interval = 5*60; /** - * Back up all dirty buffers. + * Create recovery files for all dirty buffers. * - * Should be called by the interface every teco_ring_backup_interval seconds. + * Should be called by the interface every teco_ring_recovery_interval seconds. * This does not generate or expect undo tokens, so it can be called * even when idlying. */ void -teco_ring_backup(void) +teco_ring_dump_recovery(void) { - g_assert(teco_ring_backup_interval > 0); + g_assert(teco_ring_recovery_interval > 0); for (teco_tailq_entry_t *cur = teco_ring_head.first; cur != NULL; cur = cur->next) { teco_buffer_t *buffer = (teco_buffer_t *)cur; @@ -333,9 +335,9 @@ teco_ring_backup(void) if (buffer->state != TECO_BUFFER_DIRTY || !buffer->filename) continue; - g_autofree gchar *filename_backup = teco_buffer_get_backup(buffer); + g_autofree gchar *filename_recovery = teco_buffer_get_recovery(buffer); - g_autoptr(GIOChannel) channel = g_io_channel_new_file(filename_backup, "w", NULL); + g_autoptr(GIOChannel) channel = g_io_channel_new_file(filename_recovery, "w", NULL); if (!channel) continue; @@ -355,7 +357,7 @@ teco_ring_backup(void) if (!teco_view_save_to_channel(buffer->view, channel, NULL)) continue; - buffer->state = TECO_BUFFER_DIRTY_BACKEDUP; + buffer->state = TECO_BUFFER_DIRTY_DUMPED; } } |
