changed 'sed' to use -e for an expression
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
a7b323b795
commit
3b9b02de83
@ -45,7 +45,7 @@ hclgo_LINK = mv -f hclgo.bin hclgo$(EXEEXT) || echo "FAILED TO LINK"
|
|||||||
hclgo.bin:
|
hclgo.bin:
|
||||||
cp -pf $(srcdir)/go.mod $(builddir)/go.mod >/dev/null 2>&1 || true
|
cp -pf $(srcdir)/go.mod $(builddir)/go.mod >/dev/null 2>&1 || true
|
||||||
chmod u+w $(builddir)/go.mod ## with `make distcheck`, the echo's redirection to the file fails without this permission change
|
chmod u+w $(builddir)/go.mod ## with `make distcheck`, the echo's redirection to the file fails without this permission change
|
||||||
sed -ri "/^[[:space:]]*replace[[:space:]]+cfg[[:space:]]*=>/d" $(builddir)/go.mod
|
sed -r -i -e "/^[[:space:]]*replace[[:space:]]+cfg[[:space:]]*=>/d" $(builddir)/go.mod
|
||||||
echo -e "\nreplace cfg => $(abs_builddir)/go/cfg" >> $(builddir)/go.mod
|
echo -e "\nreplace cfg => $(abs_builddir)/go/cfg" >> $(builddir)/go.mod
|
||||||
[ -f $(srcdir)/go.sum ] && cp -pf $(srcdir)/go.sum $(builddir)/go.sum >/dev/null 2>&1 || true
|
[ -f $(srcdir)/go.sum ] && cp -pf $(srcdir)/go.sum $(builddir)/go.sum >/dev/null 2>&1 || true
|
||||||
CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS)" \
|
CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS)" \
|
||||||
|
@ -940,7 +940,7 @@ clean-local:
|
|||||||
@ENABLE_HCLGO_TRUE@hclgo.bin:
|
@ENABLE_HCLGO_TRUE@hclgo.bin:
|
||||||
@ENABLE_HCLGO_TRUE@ cp -pf $(srcdir)/go.mod $(builddir)/go.mod >/dev/null 2>&1 || true
|
@ENABLE_HCLGO_TRUE@ cp -pf $(srcdir)/go.mod $(builddir)/go.mod >/dev/null 2>&1 || true
|
||||||
@ENABLE_HCLGO_TRUE@ chmod u+w $(builddir)/go.mod ## with `make distcheck`, the echo's redirection to the file fails without this permission change
|
@ENABLE_HCLGO_TRUE@ chmod u+w $(builddir)/go.mod ## with `make distcheck`, the echo's redirection to the file fails without this permission change
|
||||||
@ENABLE_HCLGO_TRUE@ sed -ri "/^[[:space:]]*replace[[:space:]]+cfg[[:space:]]*=>/d" $(builddir)/go.mod
|
@ENABLE_HCLGO_TRUE@ sed -r -i -e "/^[[:space:]]*replace[[:space:]]+cfg[[:space:]]*=>/d" $(builddir)/go.mod
|
||||||
@ENABLE_HCLGO_TRUE@ echo -e "\nreplace cfg => $(abs_builddir)/go/cfg" >> $(builddir)/go.mod
|
@ENABLE_HCLGO_TRUE@ echo -e "\nreplace cfg => $(abs_builddir)/go/cfg" >> $(builddir)/go.mod
|
||||||
@ENABLE_HCLGO_TRUE@ [ -f $(srcdir)/go.sum ] && cp -pf $(srcdir)/go.sum $(builddir)/go.sum >/dev/null 2>&1 || true
|
@ENABLE_HCLGO_TRUE@ [ -f $(srcdir)/go.sum ] && cp -pf $(srcdir)/go.sum $(builddir)/go.sum >/dev/null 2>&1 || true
|
||||||
@ENABLE_HCLGO_TRUE@ CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS)" \
|
@ENABLE_HCLGO_TRUE@ CGO_CFLAGS="-I$(abs_srcdir)/lib -I$(abs_builddir)/lib $(CFLAGS)" \
|
||||||
|
22
go/cb.go
22
go/cb.go
@ -9,7 +9,11 @@ import "C"
|
|||||||
import (
|
import (
|
||||||
// "bufio"
|
// "bufio"
|
||||||
// "io"
|
// "io"
|
||||||
|
"bufio"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
"sync"
|
||||||
|
"unsafe"
|
||||||
// "sync"
|
// "sync"
|
||||||
// "unsafe"
|
// "unsafe"
|
||||||
)
|
)
|
||||||
@ -19,7 +23,6 @@ type IOHandle struct {
|
|||||||
ioif interface{}
|
ioif interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
type IOHandleTable struct {
|
type IOHandleTable struct {
|
||||||
mtx sync.Mutex
|
mtx sync.Mutex
|
||||||
handles []IOHandle
|
handles []IOHandle
|
||||||
@ -348,10 +351,10 @@ func (p *ScanFileHandler) Open(g *HCL) error {
|
|||||||
)
|
)
|
||||||
|
|
||||||
f = os.Stdin
|
f = os.Stdin
|
||||||
//f, err = os.Open("/dev/stdin")
|
//f, err = os.Open("/dev/stdin")
|
||||||
//if err != nil {
|
//if err != nil {
|
||||||
// return err
|
// return err
|
||||||
//}
|
//}
|
||||||
|
|
||||||
p.r = bufio.NewReader(f)
|
p.r = bufio.NewReader(f)
|
||||||
p.f = f
|
p.f = f
|
||||||
@ -407,10 +410,10 @@ func (p *PrintFileHandler) Open(g *HCL) error {
|
|||||||
// err error
|
// err error
|
||||||
)
|
)
|
||||||
|
|
||||||
// f, err = os.OpenFile("/dev/stdout", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
|
// f, err = os.OpenFile("/dev/stdout", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
|
||||||
// if err != nil {
|
// if err != nil {
|
||||||
// return err
|
// return err
|
||||||
// }
|
// }
|
||||||
|
|
||||||
f = os.Stdout
|
f = os.Stdout
|
||||||
|
|
||||||
@ -455,4 +458,3 @@ func (p *PrintFileHandler) Flush() error {
|
|||||||
//fmt.Fprintf(os.Stderr, "XXXXXXXXXX flush porint\n")
|
//fmt.Fprintf(os.Stderr, "XXXXXXXXXX flush porint\n")
|
||||||
return p.w.Flush()
|
return p.w.Flush()
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
23
go/hcl.go
23
go/hcl.go
@ -12,13 +12,23 @@ import (
|
|||||||
"unsafe"
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type IOImpl interface {
|
||||||
|
Open(g *HCL, name string, includer_name string) (int, error)
|
||||||
|
Close(fd int)
|
||||||
|
Read(fd int, buf []rune) (int, error)
|
||||||
|
Write(data []rune) error
|
||||||
|
WriteBytes(data []byte) error
|
||||||
|
Flush() error
|
||||||
|
}
|
||||||
|
|
||||||
type HCL struct {
|
type HCL struct {
|
||||||
c *C.hcl_t
|
c *C.hcl_t
|
||||||
inst_no int
|
inst_no int
|
||||||
|
|
||||||
io struct {
|
io struct {
|
||||||
r IOHandle
|
r IOImpl
|
||||||
w IOHandle
|
s IOImpl
|
||||||
|
p IOImpl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +92,14 @@ func (hcl *HCL) AddBuiltinPrims() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (hcl *HCL) AttachIO() error {
|
func (hcl *HCL) AttachIO(r IOImpl, w IOImpl, p IOImpl) error {
|
||||||
|
hcl.io.r = r
|
||||||
|
hcl.io.s = s
|
||||||
|
hcl.io.p = p
|
||||||
|
if C.hcl_attachio(hcl.c, go_read_handler, go_scan_handler, go_print_handler) <= -1 {
|
||||||
|
// TODO: restore to the old value..
|
||||||
|
return fmt.Errorf("unable to attach I/O handlers: %s", string(ucstr_to_rune_slice(C.hcl_geterrstr(hcl.c))))
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
32
main.go
32
main.go
@ -29,10 +29,11 @@ int print_handler (hcl_t* hcl, hcl_iocmd_t cmd, void* arg)
|
|||||||
//import "C"
|
//import "C"
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
hcl "code.miflux.com/hyung-hwan/hcl/go"
|
|
||||||
"os"
|
|
||||||
_ "cfg"
|
_ "cfg"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
hcl "code.miflux.com/hyung-hwan/hcl/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -105,11 +106,9 @@ func main() {
|
|||||||
var x *hcl.HCL = nil
|
var x *hcl.HCL = nil
|
||||||
var err error = nil
|
var err error = nil
|
||||||
|
|
||||||
/*
|
var rfh hcl.ReadFileHandler
|
||||||
var rfh hcl.ReadFileHandler
|
var sfh hcl.ScanFileHandler
|
||||||
var sfh hcl.ScanFileHandler
|
var pfh hcl.PrintFileHandler
|
||||||
var pfh hcl.PrintFileHandler
|
|
||||||
*/
|
|
||||||
|
|
||||||
x, err = hcl.New()
|
x, err = hcl.New()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -127,21 +126,18 @@ func main() {
|
|||||||
goto oops
|
goto oops
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
err = x.AttachIO(rfh, sfh, pfh)
|
||||||
err = x.AttachIO(&rfh, &sfh, &pfh)
|
if err != nil {
|
||||||
if err != nil {
|
fmt.Printf("Error - %s", err.Error())
|
||||||
fmt.Printf("Error - %s", err.Error())
|
}
|
||||||
}
|
x.FeedString(`(printf ">>>>>>>>> [%d]\n" (+ 30 455))
|
||||||
x.FeedString(`(printf ">>>>>>>>> [%d]\n" (+ 30 455))
|
|
||||||
|
|
||||||
(printf ">>>>>>>>> [%d]\n" (+ 11 455))
|
(printf ">>>>>>>>> [%d]\n" (+ 11 455))
|
||||||
#include "a.hcl"
|
#include "a.hcl"
|
||||||
(printf ">>>>>>>>> [%d]\n" (+ 20 455))`)
|
(printf ">>>>>>>>> [%d]\n" (+ 20 455))`)
|
||||||
|
|
||||||
x.EndFeed()
|
x.EndFeed()
|
||||||
x.Execute()
|
x.Execute()
|
||||||
|
|
||||||
*/
|
|
||||||
x.Close()
|
x.Close()
|
||||||
|
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
|
Loading…
Reference in New Issue
Block a user