blob: 78665390546da1ba46b0a1fe23627cea9e5e9867 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
/* SPDX-License-Identifier: MIT
*
* Copyright (C) 2019-2021 WireGuard LLC. All Rights Reserved.
*/
package syntax
// #include "highlighter.h"
// #include <stdlib.h>
import "C"
import (
"unsafe"
)
func highlightConfigC(config string) []highlightSpan {
b := append([]byte(config), 0)
highlights := C.highlight_config((*C.char)(unsafe.Pointer(&b[0])))
if highlights == nil {
return nil
}
var ret []highlightSpan
for i := highlights; i._type != C.HighlightEnd; i = (*C.struct_highlight_span)(unsafe.Add(unsafe.Pointer(i), unsafe.Sizeof(*i))) {
ret = append(ret, highlightSpan{highlight(i._type), int(i.start), int(i.len)})
}
C.free(unsafe.Pointer(highlights))
return ret
}
|