From 259ea60013af1d673f7de4ef4111a150a6dbf9a2 Mon Sep 17 00:00:00 2001 From: oabrivard Date: Sat, 25 Nov 2023 00:35:51 +0100 Subject: [PATCH] Added support for multiple flags with file input --- main.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/main.go b/main.go index ee5f072..3a04fd3 100644 --- a/main.go +++ b/main.go @@ -160,22 +160,24 @@ func main() { byteCounter = fileByteCounter } - switch { - case *cFlag: - fmt.Print("\t", byteCounter(f)) - case *lFlag: + if *lFlag || flag.NFlag() == 0 { fmt.Print("\t", lineCounter(f)) - case *wFlag: + f.Seek(0, 0) + } + + if *wFlag || flag.NFlag() == 0 { fmt.Print("\t", wordCounter(f)) - case *mFlag: - fmt.Print("\t", charCounter(f)) - default: - b := byteCounter(f) f.Seek(0, 0) - l := lineCounter(f) + } + + if *cFlag || flag.NFlag() == 0 { + fmt.Print("\t", byteCounter(f)) + f.Seek(0, 0) + } + + if *mFlag { + fmt.Print("\t", charCounter(f)) f.Seek(0, 0) - w := wordCounter(f) - fmt.Print("\t", l, "\t", w, "\t", b) } if len(fileName) > 0 {