diff --git a/src/buffer.go b/src/buffer.go index d2f21b2..19c9337 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -98,6 +98,16 @@ func (buffer *Buffer) Load() error { return nil } + // Replace tilde with home directory + if strings.HasPrefix(buffer.filename, "~/") { + homedir, err := os.UserHomeDir() + if err != nil { + return err + } + + buffer.filename = filepath.Join(homedir, buffer.filename[2:]) + } + content, err := os.ReadFile(buffer.filename) if err != nil { return err @@ -113,6 +123,16 @@ func (buffer *Buffer) Save() error { return nil } + // Replace tilde with home directory + if strings.HasPrefix(buffer.filename, "~/") { + homedir, err := os.UserHomeDir() + if err != nil { + return err + } + + buffer.filename = filepath.Join(homedir, buffer.filename[2:]) + } + // Append new line character at end of buffer contents if not present if buffer.Contents[len(buffer.Contents)-1] != '\n' { buffer.Contents += "\n"