diff --git a/src/buffer.go b/src/buffer.go index 9012536..64f3028 100644 --- a/src/buffer.go +++ b/src/buffer.go @@ -604,7 +604,7 @@ func GetOpenFileBuffer(filename string) *Buffer { return nil } -func CreateFileBuffer(filename string, openNonExistentFile bool) (*Buffer, error) { +func CreateFileBuffer(filename string) (*Buffer, error) { // Replace tilde with home directory if filename != "~" && strings.HasPrefix(filename, "~/") { homedir, err := os.UserHomeDir() @@ -623,22 +623,20 @@ func CreateFileBuffer(filename string, openNonExistentFile bool) (*Buffer, error } stat, err := os.Stat(abs) - if !openNonExistentFile { - if err != nil { + if err != nil { + if !os.IsNotExist(err) { return nil, err } - - if !stat.Mode().IsRegular() { - return nil, fmt.Errorf("%s is not a regular file", filename) - } + } else if !stat.Mode().IsRegular() { + return nil, fmt.Errorf("not a regular file") } if GetBufferByName(filename) != nil { - return nil, fmt.Errorf("a buffer with the name (%s) is already open", filename) + return nil, fmt.Errorf("a buffer with the same name is already open") } if GetBufferByFilename(abs) != nil { - return nil, fmt.Errorf("%s is already open in another buffer", filename) + return nil, fmt.Errorf("file is already open in another buffer") } buffer := Buffer{ @@ -675,7 +673,7 @@ func CreateBuffer(bufferName string) (*Buffer, error) { } if GetBufferByName(bufferName) != nil { - return nil, fmt.Errorf("a buffer with the name (%s) is already open", bufferName) + return nil, fmt.Errorf("a buffer with the same name is already open") } Buffers = append(Buffers, &buffer) diff --git a/src/command.go b/src/command.go index ff7bd3c..cd689f2 100644 --- a/src/command.go +++ b/src/command.go @@ -141,9 +141,9 @@ func initCommands() { window.PrintMessage(fmt.Sprintf("File already open! Switching to buffer: %s", openBuffer.Name), TYPER_MESSAGE_INFO) window.CurrentBuffer = openBuffer } else { - newBuffer, err := CreateFileBuffer(input, false) + newBuffer, err := CreateFileBuffer(input) if err != nil { - window.PrintMessage(fmt.Sprintf("Could not open file: %s", err.Error()), TYPER_MESSAGE_WARNING) + window.PrintMessage(fmt.Sprintf("Could not open file %s: %s", input, err), TYPER_MESSAGE_ERROR) return } diff --git a/src/main.go b/src/main.go index e51c54d..cf879a2 100644 --- a/src/main.go +++ b/src/main.go @@ -1,6 +1,7 @@ package main import ( + "fmt" "log" flag "github.com/spf13/pflag" @@ -45,9 +46,9 @@ func main() { // Open paths passed as arguments if flag.NArg() > 0 { for _, file := range flag.Args() { - buffer, err := CreateFileBuffer(file, true) + buffer, err := CreateFileBuffer(file) if err != nil { - window.PrintMessage("Could not open file: "+file, TYPER_MESSAGE_ERROR) + window.PrintMessage(fmt.Sprintf("Could not open file %s: %s", file, err), TYPER_MESSAGE_ERROR) continue } @@ -55,7 +56,9 @@ func main() { window.CurrentBuffer = buffer } } - } else { + } + + if window.CurrentBuffer == nil { buffer, err := CreateBuffer("New Buffer 1") if err == nil { window.CurrentBuffer = buffer