mirror of
https://github.com/EnumeratedDev/typer.git
synced 2026-09-15 21:26:11 +00:00
Fix panic when attempting to open directory
This commit is contained in:
+8
-10
@@ -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)
|
||||
|
||||
+2
-2
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+6
-3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user