Added escape characters util.
This commit is contained in:
parent
2ce694b77a
commit
185833af4c
2 changed files with 54 additions and 0 deletions
52
ec/run.go
Normal file
52
ec/run.go
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
package ec
|
||||||
|
|
||||||
|
import(
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
"bufio"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
const(
|
||||||
|
esc = '\\'
|
||||||
|
)
|
||||||
|
|
||||||
|
var(
|
||||||
|
CharMap = map[string]string{
|
||||||
|
"n":"\n",
|
||||||
|
"b":"\b",
|
||||||
|
"r":"\r",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func
|
||||||
|
handleEscChar(rd *bufio.Reader) error {
|
||||||
|
r, _, e := rd.ReadRune()
|
||||||
|
if e != nil {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
fmt.Print(CharMap[string(r)])
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func
|
||||||
|
Run(args []string) int {
|
||||||
|
rd := bufio.NewReader(os.Stdin)
|
||||||
|
for {
|
||||||
|
r, _, e := rd.ReadRune()
|
||||||
|
if e == io.EOF {
|
||||||
|
break;
|
||||||
|
} else if e != nil {
|
||||||
|
log.Fatal(e)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if r == esc {
|
||||||
|
handleEscChar(rd)
|
||||||
|
} else {
|
||||||
|
fmt.Print(string(r))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
2
main.go
2
main.go
|
@ -20,6 +20,7 @@ import(
|
||||||
"goblin/noext"
|
"goblin/noext"
|
||||||
"goblin/mergelbl"
|
"goblin/mergelbl"
|
||||||
"goblin/basename"
|
"goblin/basename"
|
||||||
|
"goblin/ec"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -46,6 +47,7 @@ func main() {
|
||||||
"urlprs" : urlprs.Run,
|
"urlprs" : urlprs.Run,
|
||||||
"noext" : noext.Run,
|
"noext" : noext.Run,
|
||||||
"mergelbl" : mergelbl.Run,
|
"mergelbl" : mergelbl.Run,
|
||||||
|
"ec" : ec.Run,
|
||||||
}
|
}
|
||||||
|
|
||||||
if binBase := path.Base(os.Args[0]) ; binBase != "goblin" {
|
if binBase := path.Base(os.Args[0]) ; binBase != "goblin" {
|
||||||
|
|
Loading…
Reference in a new issue