added hak_makesymbolwithuchars()/hak_makesymbolwithbchars()/hak_makestringwithuchars()/hak_makestirngwithbchars()
fixed some fpc code related to character type configured
This commit is contained in:
16
go/cb.go
16
go/cb.go
@ -85,7 +85,7 @@ var io_tab IOHandleTable = IOHandleTable{}
|
||||
//export hak_go_cci_handler
|
||||
func hak_go_cci_handler(c *C.hak_t, cmd C.hak_io_cmd_t, arg unsafe.Pointer) C.int {
|
||||
var (
|
||||
g *HAK
|
||||
g *Hak
|
||||
err error
|
||||
)
|
||||
|
||||
@ -216,7 +216,7 @@ func hak_go_cci_handler(c *C.hak_t, cmd C.hak_io_cmd_t, arg unsafe.Pointer) C.in
|
||||
//export hak_go_udi_handler
|
||||
func hak_go_udi_handler(c *C.hak_t, cmd C.hak_io_cmd_t, arg unsafe.Pointer) C.int {
|
||||
var (
|
||||
g *HAK
|
||||
g *Hak
|
||||
err error
|
||||
)
|
||||
|
||||
@ -264,7 +264,7 @@ func hak_go_udi_handler(c *C.hak_t, cmd C.hak_io_cmd_t, arg unsafe.Pointer) C.in
|
||||
//export hak_go_udo_handler
|
||||
func hak_go_udo_handler(c *C.hak_t, cmd C.hak_io_cmd_t, arg unsafe.Pointer) C.int {
|
||||
var (
|
||||
g *HAK
|
||||
g *Hak
|
||||
err error
|
||||
)
|
||||
|
||||
@ -333,10 +333,10 @@ func hak_go_udo_handler(c *C.hak_t, cmd C.hak_io_cmd_t, arg unsafe.Pointer) C.in
|
||||
|
||||
// ------------------------------------------------------
|
||||
type CciFileHandler struct {
|
||||
g *HAK
|
||||
g *Hak
|
||||
}
|
||||
|
||||
func (p *CciFileHandler) Open(g *HAK, name string) (int, error) {
|
||||
func (p *CciFileHandler) Open(g *Hak, name string) (int, error) {
|
||||
var (
|
||||
f *os.File
|
||||
r *bufio.Reader
|
||||
@ -398,12 +398,12 @@ func (p *CciFileHandler) Read(fd int, buf []rune) (int, error) {
|
||||
|
||||
// ------------------------------------------------------
|
||||
type UdiFileHandler struct {
|
||||
g *HAK
|
||||
g *Hak
|
||||
f *os.File
|
||||
r *bufio.Reader
|
||||
}
|
||||
|
||||
func (p *UdiFileHandler) Open(g *HAK) error {
|
||||
func (p *UdiFileHandler) Open(g *Hak) error {
|
||||
var (
|
||||
f *os.File
|
||||
// err error
|
||||
@ -463,7 +463,7 @@ type UdoFileHandler struct {
|
||||
w *bufio.Writer
|
||||
}
|
||||
|
||||
func (p *UdoFileHandler) Open(g *HAK) error {
|
||||
func (p *UdoFileHandler) Open(g *Hak) error {
|
||||
var (
|
||||
f *os.File
|
||||
// err error
|
||||
|
72
go/hak.go
72
go/hak.go
@ -31,26 +31,26 @@ import (
|
||||
)
|
||||
|
||||
type CciImpl interface {
|
||||
Open(g *HAK, name string) (int, error)
|
||||
Open(g *Hak, name string) (int, error)
|
||||
Close(fd int)
|
||||
Read(fd int, buf []rune) (int, error)
|
||||
}
|
||||
|
||||
type UdiImpl interface {
|
||||
Open(g *HAK) error
|
||||
Open(g *Hak) error
|
||||
Close()
|
||||
Read(buf []rune) (int, error)
|
||||
}
|
||||
|
||||
type UdoImpl interface {
|
||||
Open(g *HAK) error
|
||||
Open(g *Hak) error
|
||||
Close()
|
||||
Write(data []rune) error
|
||||
WriteBytes(data []byte) error
|
||||
Flush() error
|
||||
}
|
||||
|
||||
type HAK struct {
|
||||
type Hak struct {
|
||||
c *C.hak_t
|
||||
inst_no int
|
||||
io struct {
|
||||
@ -79,33 +79,29 @@ const TRAIT_LANG_ENABLE_EOL BitMask = C.HAK_TRAIT_LANG_ENABLE_EOL
|
||||
|
||||
var inst_table InstanceTable
|
||||
|
||||
func deregister_instance(g *HAK) {
|
||||
func deregister_instance(g *Hak) {
|
||||
if g.inst_no >= 0 {
|
||||
inst_table.delete_instance(g.inst_no)
|
||||
g.inst_no = -1
|
||||
}
|
||||
}
|
||||
|
||||
func New() (*HAK, error) {
|
||||
func New() (*Hak, error) {
|
||||
var c *C.hak_t
|
||||
var g *HAK
|
||||
var g *Hak
|
||||
var ext *Ext
|
||||
var errnum C.hak_errnum_t
|
||||
var errinf C.hak_errinf_t
|
||||
|
||||
c = C.hak_openstd(C.hak_oow_t(unsafe.Sizeof(*ext)), &errnum)
|
||||
c = C.hak_openstd(C.hak_oow_t(unsafe.Sizeof(*ext)), &errinf)
|
||||
if c == nil {
|
||||
var buf [64]C.hak_uch_t
|
||||
var ptr *C.hak_uch_t
|
||||
var err error
|
||||
|
||||
ptr = C.hak_errnum_to_errucstr(errnum, &buf[0], C.hak_oow_t(cap(buf)))
|
||||
err = fmt.Errorf("%s", string(ucstr_to_rune_slice(ptr)))
|
||||
err = fmt.Errorf("%s", string(ucstr_to_rune_slice(&errinf.msg[0])))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ext = (*Ext)(unsafe.Pointer(C.hak_getxtn(c)))
|
||||
|
||||
g = &HAK{c: c, inst_no: -1}
|
||||
g = &Hak{c: c, inst_no: -1}
|
||||
|
||||
runtime.SetFinalizer(g, deregister_instance)
|
||||
g.inst_no = inst_table.add_instance(c, g)
|
||||
@ -114,12 +110,12 @@ func New() (*HAK, error) {
|
||||
return g, nil
|
||||
}
|
||||
|
||||
func (hak *HAK) Close() {
|
||||
func (hak *Hak) Close() {
|
||||
C.hak_close(hak.c)
|
||||
deregister_instance(hak)
|
||||
}
|
||||
|
||||
func (hak *HAK) make_errinfo() *Err {
|
||||
func (hak *Hak) make_errinfo() *Err {
|
||||
var loc C.hak_loc_t
|
||||
var err Err
|
||||
var errnum C.hak_errnum_t
|
||||
@ -147,7 +143,7 @@ func (hak *HAK) make_errinfo() *Err {
|
||||
return &err
|
||||
}
|
||||
|
||||
func (hak *HAK) GetTrait() BitMask {
|
||||
func (hak *Hak) GetTrait() BitMask {
|
||||
var x C.int
|
||||
var log_mask BitMask = 0
|
||||
|
||||
@ -160,7 +156,7 @@ func (hak *HAK) GetTrait() BitMask {
|
||||
return log_mask
|
||||
}
|
||||
|
||||
func (hak *HAK) SetTrait(log_mask BitMask) {
|
||||
func (hak *Hak) SetTrait(log_mask BitMask) {
|
||||
var x C.int
|
||||
|
||||
x = C.hak_setoption(hak.c, C.HAK_TRAIT, unsafe.Pointer(&log_mask))
|
||||
@ -170,7 +166,7 @@ func (hak *HAK) SetTrait(log_mask BitMask) {
|
||||
}
|
||||
}
|
||||
|
||||
func (hak *HAK) GetLogMask() BitMask {
|
||||
func (hak *Hak) GetLogMask() BitMask {
|
||||
var x C.int
|
||||
var log_mask BitMask = 0
|
||||
|
||||
@ -183,7 +179,7 @@ func (hak *HAK) GetLogMask() BitMask {
|
||||
return log_mask
|
||||
}
|
||||
|
||||
func (hak *HAK) SetLogMask(log_mask BitMask) {
|
||||
func (hak *Hak) SetLogMask(log_mask BitMask) {
|
||||
var x C.int
|
||||
|
||||
x = C.hak_setoption(hak.c, C.HAK_LOG_MASK, unsafe.Pointer(&log_mask))
|
||||
@ -193,7 +189,7 @@ func (hak *HAK) SetLogMask(log_mask BitMask) {
|
||||
}
|
||||
}
|
||||
|
||||
func (hak *HAK) GetLogTarget() string {
|
||||
func (hak *Hak) GetLogTarget() string {
|
||||
var x C.int
|
||||
var tgt *C.char
|
||||
|
||||
@ -206,7 +202,7 @@ func (hak *HAK) GetLogTarget() string {
|
||||
return C.GoString(tgt)
|
||||
}
|
||||
|
||||
func (hak *HAK) SetLogTarget(target string) {
|
||||
func (hak *Hak) SetLogTarget(target string) {
|
||||
var x C.int
|
||||
var tgt *C.char
|
||||
|
||||
@ -220,7 +216,7 @@ func (hak *HAK) SetLogTarget(target string) {
|
||||
}
|
||||
}
|
||||
|
||||
func (hak *HAK) Ignite(memsize uintptr) error {
|
||||
func (hak *Hak) Ignite(memsize uintptr) error {
|
||||
var x C.int
|
||||
|
||||
x = C.hak_ignite(hak.c, C.hak_oow_t(memsize))
|
||||
@ -232,7 +228,7 @@ func (hak *HAK) Ignite(memsize uintptr) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) AddBuiltinPrims() error {
|
||||
func (hak *Hak) AddBuiltinPrims() error {
|
||||
var x C.int
|
||||
|
||||
x = C.hak_addbuiltinprims(hak.c)
|
||||
@ -247,7 +243,7 @@ func (hak *HAK) AddBuiltinPrims() error {
|
||||
// - the main stream is not handled by this IO handler
|
||||
// - the feeder must read the main stream and pass data.
|
||||
// - the inclusion of another file from the main stream requires the path information of the main strea.
|
||||
func (hak *HAK) AttachCCIO(cci CciImpl, main_cci_name string) error {
|
||||
func (hak *Hak) AttachCCIO(cci CciImpl, main_cci_name string) error {
|
||||
var x C.int
|
||||
var old_cci CciImpl
|
||||
var old_cci_name string
|
||||
@ -269,7 +265,7 @@ func (hak *HAK) AttachCCIO(cci CciImpl, main_cci_name string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) AttachUDIO(udi UdiImpl, udo UdoImpl) error {
|
||||
func (hak *Hak) AttachUDIO(udi UdiImpl, udo UdoImpl) error {
|
||||
var x C.int
|
||||
var os UdiImpl
|
||||
var op UdoImpl
|
||||
@ -293,7 +289,7 @@ func (hak *HAK) AttachUDIO(udi UdiImpl, udo UdoImpl) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) BeginFeed() error {
|
||||
func (hak *Hak) BeginFeed() error {
|
||||
var x C.int
|
||||
|
||||
x = C.hak_beginfeed(hak.c, nil)
|
||||
@ -305,7 +301,7 @@ func (hak *HAK) BeginFeed() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) EndFeed() error {
|
||||
func (hak *Hak) EndFeed() error {
|
||||
var x C.int
|
||||
|
||||
x = C.hak_endfeed(hak.c)
|
||||
@ -317,7 +313,7 @@ func (hak *HAK) EndFeed() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) FeedString(str string) error {
|
||||
func (hak *Hak) FeedString(str string) error {
|
||||
var x C.int
|
||||
var q []C.hak_uch_t
|
||||
|
||||
@ -330,7 +326,7 @@ func (hak *HAK) FeedString(str string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) FeedRunes(str []rune) error {
|
||||
func (hak *Hak) FeedRunes(str []rune) error {
|
||||
var x C.int
|
||||
var q []C.hak_uch_t
|
||||
|
||||
@ -343,7 +339,7 @@ func (hak *HAK) FeedRunes(str []rune) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) FeedFromReader(rdr io.Reader) error {
|
||||
func (hak *Hak) FeedFromReader(rdr io.Reader) error {
|
||||
var err error
|
||||
var n int
|
||||
var x C.int
|
||||
@ -368,7 +364,7 @@ func (hak *HAK) FeedFromReader(rdr io.Reader) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) FeedFromFile(file string) error {
|
||||
func (hak *Hak) FeedFromFile(file string) error {
|
||||
var f *os.File
|
||||
var err error
|
||||
|
||||
@ -382,7 +378,7 @@ func (hak *HAK) FeedFromFile(file string) error {
|
||||
return hak.FeedFromReader(bufio.NewReader(f))
|
||||
}
|
||||
|
||||
func (hak *HAK) Execute() error {
|
||||
func (hak *Hak) Execute() error {
|
||||
var x C.hak_oop_t
|
||||
|
||||
x = C.hak_execute(hak.c)
|
||||
@ -396,7 +392,7 @@ func (hak *HAK) Execute() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) Decode() error {
|
||||
func (hak *Hak) Decode() error {
|
||||
var x C.int
|
||||
|
||||
x = C.hak_decode(hak.c, C.hak_getcode(hak.c), 0, C.hak_getbclen(hak.c))
|
||||
@ -408,11 +404,11 @@ func (hak *HAK) Decode() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (hak *HAK) get_errmsg() string {
|
||||
func (hak *Hak) get_errmsg() string {
|
||||
return C.GoString(C.hak_geterrbmsg(hak.c))
|
||||
}
|
||||
|
||||
func (hak *HAK) set_errmsg(num C.hak_errnum_t, msg string) {
|
||||
func (hak *Hak) set_errmsg(num C.hak_errnum_t, msg string) {
|
||||
var ptr *C.char
|
||||
ptr = C.CString(msg)
|
||||
defer C.free(unsafe.Pointer(ptr))
|
||||
@ -467,7 +463,7 @@ func rune_slice_to_uchars(r []rune) []C.hak_uch_t {
|
||||
return c
|
||||
}
|
||||
|
||||
func c_to_go(c *C.hak_t) *HAK {
|
||||
func c_to_go(c *C.hak_t) *Hak {
|
||||
var ext *Ext
|
||||
var inst Instance
|
||||
|
||||
|
@ -10,7 +10,7 @@ import (
|
||||
|
||||
type Instance struct {
|
||||
c *C.hak_t // c object
|
||||
g *HAK // go object
|
||||
g *Hak // go object
|
||||
}
|
||||
|
||||
type InstanceTable struct {
|
||||
@ -19,7 +19,7 @@ type InstanceTable struct {
|
||||
free_slots []int
|
||||
}
|
||||
|
||||
func (itab *InstanceTable) add_instance(c *C.hak_t, g *HAK) int {
|
||||
func (itab *InstanceTable) add_instance(c *C.hak_t, g *Hak) int {
|
||||
itab.mtx.Lock()
|
||||
defer itab.mtx.Unlock()
|
||||
|
||||
|
Reference in New Issue
Block a user