Skip to content

Commit

Permalink
Fix panic.
Browse files Browse the repository at this point in the history
  • Loading branch information
ncruces committed Dec 15, 2022
1 parent 98d9f88 commit 66863de
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 17 deletions.
9 changes: 4 additions & 5 deletions cmd/zenity/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -724,14 +724,13 @@ func addColumn(s string) error {
func addFileFilter(s string) error {
var filter zenity.FileFilter

if split := strings.SplitN(s, "|", 2); len(split) > 1 {
filter.Name = strings.TrimSpace(split[0])
s = split[1]
if head, tail, cut := strings.Cut(s, "|"); cut {
filter.Name = head
s = tail
}

filter.Patterns = strings.Split(strings.TrimSpace(s), " ")
filter.Patterns = strings.Split(strings.Trim(s, " "), " ")
fileFilters = append(fileFilters, filter)

return nil
}

Expand Down
8 changes: 4 additions & 4 deletions file_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func ExampleSelectFile() {
zenity.SelectFile(
zenity.Filename(defaultPath),
zenity.FileFilters{
{"Go files", []string{"*.go"}, true},
{"Go files", []string{"*.go"}, false},
{"Web files", []string{"*.html", "*.js", "*.css"}, true},
{"Image files", []string{"*.png", "*.gif", "*.ico", "*.jpg", "*.webp"}, true},
})
Expand All @@ -30,7 +30,7 @@ func ExampleSelectFileMultiple() {
zenity.SelectFileMultiple(
zenity.Filename(defaultPath),
zenity.FileFilters{
{"Go files", []string{"*.go"}, true},
{"Go files", []string{"*.go"}, false},
{"Web files", []string{"*.html", "*.js", "*.css"}, true},
{"Image files", []string{"*.png", "*.gif", "*.ico", "*.jpg", "*.webp"}, true},
})
Expand All @@ -41,7 +41,7 @@ func ExampleSelectFileSave() {
zenity.ConfirmOverwrite(),
zenity.Filename(defaultName),
zenity.FileFilters{
{"Go files", []string{"*.go"}, true},
{"Go files", []string{"*.go"}, false},
{"Web files", []string{"*.html", "*.js", "*.css"}, true},
{"Image files", []string{"*.png", "*.gif", "*.ico", "*.jpg", "*.webp"}, true},
})
Expand Down Expand Up @@ -232,7 +232,7 @@ func TestSelectFileSave_script(t *testing.T) {
str, err := zenity.SelectFileSave(
zenity.ConfirmOverwrite(),
zenity.Filename("Χρτο.go"),
zenity.FileFilter{"Go files", []string{"*.go"}, true},
zenity.FileFilter{"Go files", []string{"*.go"}, false},
)
if skip, err := skip(err); skip {
t.Skip("skipping:", err)
Expand Down
13 changes: 7 additions & 6 deletions file_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func selectFile(opts options) (string, error) {
args.Flags |= win.OFN_FORCESHOWHIDDEN
}
if opts.fileFilters != nil {
args.Filter = &initFilters(opts.fileFilters)[0]
args.Filter = initFilters(opts.fileFilters)
}

var res [32768]uint16
Expand Down Expand Up @@ -71,7 +71,7 @@ func selectFileMultiple(opts options) ([]string, error) {
args.Flags |= win.OFN_FORCESHOWHIDDEN
}
if opts.fileFilters != nil {
args.Filter = &initFilters(opts.fileFilters)[0]
args.Filter = initFilters(opts.fileFilters)
}

var res [32768 + 1024*256]uint16
Expand Down Expand Up @@ -145,7 +145,7 @@ func selectFileSave(opts options) (string, error) {
args.Flags |= win.OFN_FORCESHOWHIDDEN
}
if opts.fileFilters != nil {
args.Filter = &initFilters(opts.fileFilters)[0]
args.Filter = initFilters(opts.fileFilters)
}

var res [32768]uint16
Expand Down Expand Up @@ -335,12 +335,12 @@ func initDirNameExt(filename string, name []uint16) (dir *uint16, ext *uint16) {
return
}

func initFilters(filters FileFilters) []uint16 {
func initFilters(filters FileFilters) *uint16 {
filters.simplify()
filters.name()
var res []uint16
for _, f := range filters {
if f.Name == "" || len(f.Patterns) == 0 {
if len(f.Patterns) == 0 {
continue
}
res = append(res, utf16.Encode([]rune(f.Name))...)
Expand All @@ -353,6 +353,7 @@ func initFilters(filters FileFilters) []uint16 {
}
if res != nil {
res = append(res, 0)
return &res[0]
}
return res
return nil
}
4 changes: 2 additions & 2 deletions zenity_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ func Test_applyOptions(t *testing.T) {
{name: "ConfirmCreate", args: ConfirmCreate(), want: options{confirmCreate: true}},
{name: "ShowHidden", args: ShowHidden(), want: options{showHidden: true}},
{name: "Filename", args: Filename("file.go"), want: options{filename: "file.go"}},
{name: "FileFilter", args: FileFilter{"Go files", []string{"*.go"}, true}, want: options{
fileFilters: FileFilters{{"Go files", []string{"*.go"}, true}},
{name: "FileFilter", args: FileFilter{"All files", []string{"*.*"}, true}, want: options{
fileFilters: FileFilters{{"All files", []string{"*.*"}, true}},
}},
{name: "FileFilters", args: FileFilters{{"Go files", []string{"*.go"}, true}}, want: options{
fileFilters: FileFilters{{"Go files", []string{"*.go"}, true}},
Expand Down

0 comments on commit 66863de

Please sign in to comment.