Куча говна / Говнокод #18383 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
package eapi

// #include <eggdrop/mod/module.h>
// #include <eggdrop/main.h>
// #include <eggdrop/proto.h>
import (
	"C"
	"errors"
)

const (
	DP_STDOUT 		= 0x7FF1
	DP_LOG			= 0x7FF2
	DP_SERVER  		= 0x7FF3
	DP_HELP			= 0x7FF4
	DP_STDERR		= 0x7FF5
	DP_MODE			= 0x7FF6
	DP_MODE_NEXT	= 0x7FF7
	DP_SERVER_NEXT	= 0x7FF8
	DP_HELP_NEXT	= 0x7FF9
)

var (
	binds []struct{
		flags,match string
		list *C.tcl_bind_list_t
	}
	bind_num int = 0
)

//...

func Bind(event,flags,match string, proc func(cd *C.ClientData, irp *C.Tcl_Interp, argc C.int, argv *[]C.char)) int,error{
	tl := C.find_bind_table(C.CString(event))
	if tl == nil{
		return -1,errors.New("No such event table : "+ event)
	}
	func_name := bname(bind_num)
	bind_num++
	var cmd []C.tcl_cmds = {
		{func_name,proc},
		{nil,nil}
	}
	C.tcl_add_commands(cmd)
	C.bind_bind_entry(tl, C.CString(flags), C.CString(match), C.CString(func_name))
	append(binds,{flags,match,tl})
	return bind_num-1,nil
}

func Unbind(int num){
	if binds[num] == nil{
		return
	}
	C.unbind_bind_entry(binds[num].list, C.CString(binds[num].flags), C.CString(binds[num].match), C.CString(bname(num)))
}

обертка на Go для Eggdrop API

Запостил: unn4m3d unn4m3d, (Updated )

Комментарии (1) RSS

  • ах да, bname генерирует строку вида "eapi:bind_xxx", где xxx - 1й аргумент
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8