koffi 2.1.0-beta.1 → 2.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CMakeLists.txt +1 -1
- package/ChangeLog.md +17 -0
- package/build/qemu/2.1.0-beta.2/koffi_darwin_arm64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_linux_arm32hf.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_openbsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_openbsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_win32_arm64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.2/koffi_win32_x64.tar.gz +0 -0
- package/doc/functions.md +67 -1
- package/doc/templates/badges.html +1 -2
- package/doc/types.md +100 -147
- package/package.json +1 -1
- package/src/abi_arm32.cc +166 -2
- package/src/abi_arm64.cc +195 -2
- package/src/abi_riscv64.cc +106 -2
- package/src/abi_x64_sysv.cc +113 -3
- package/src/abi_x64_win.cc +112 -2
- package/src/abi_x86.cc +155 -4
- package/src/call.cc +199 -0
- package/src/ffi.cc +50 -18
- package/src/ffi.hh +12 -0
- package/build/qemu/2.1.0-beta.1/koffi_darwin_arm64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_darwin_x64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_freebsd_arm64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_freebsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_freebsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_linux_arm32hf.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_linux_arm64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_linux_ia32.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_linux_riscv64hf64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_linux_x64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_openbsd_ia32.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_openbsd_x64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_win32_arm64.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_win32_ia32.tar.gz +0 -0
- package/build/qemu/2.1.0-beta.1/koffi_win32_x64.tar.gz +0 -0
- package/doc/dist/html/.buildinfo +0 -4
- package/doc/dist/html/_sources/benchmarks.md.txt +0 -137
- package/doc/dist/html/_sources/changes.md.txt +0 -161
- package/doc/dist/html/_sources/contribute.md.txt +0 -127
- package/doc/dist/html/_sources/functions.md.txt +0 -355
- package/doc/dist/html/_sources/index.rst.txt +0 -39
- package/doc/dist/html/_sources/memory.md.txt +0 -32
- package/doc/dist/html/_sources/platforms.md.txt +0 -31
- package/doc/dist/html/_sources/start.md.txt +0 -100
- package/doc/dist/html/_sources/types.md.txt +0 -588
- package/doc/dist/html/_static/_sphinx_javascript_frameworks_compat.js +0 -134
- package/doc/dist/html/_static/basic.css +0 -932
- package/doc/dist/html/_static/bench_linux.png +0 -0
- package/doc/dist/html/_static/bench_windows.png +0 -0
- package/doc/dist/html/_static/custom.css +0 -22
- package/doc/dist/html/_static/debug.css +0 -69
- package/doc/dist/html/_static/doctools.js +0 -264
- package/doc/dist/html/_static/documentation_options.js +0 -14
- package/doc/dist/html/_static/file.png +0 -0
- package/doc/dist/html/_static/jquery-3.6.0.js +0 -10881
- package/doc/dist/html/_static/jquery.js +0 -2
- package/doc/dist/html/_static/language_data.js +0 -199
- package/doc/dist/html/_static/minus.png +0 -0
- package/doc/dist/html/_static/perf_linux_20220623.png +0 -0
- package/doc/dist/html/_static/perf_linux_20220623_2.png +0 -0
- package/doc/dist/html/_static/perf_windows_20220623.png +0 -0
- package/doc/dist/html/_static/perf_windows_20220623_2.png +0 -0
- package/doc/dist/html/_static/plus.png +0 -0
- package/doc/dist/html/_static/pygments.css +0 -252
- package/doc/dist/html/_static/scripts/furo-extensions.js +0 -0
- package/doc/dist/html/_static/scripts/furo.js +0 -3
- package/doc/dist/html/_static/scripts/furo.js.LICENSE.txt +0 -7
- package/doc/dist/html/_static/scripts/furo.js.map +0 -1
- package/doc/dist/html/_static/searchtools.js +0 -531
- package/doc/dist/html/_static/skeleton.css +0 -296
- package/doc/dist/html/_static/styles/furo-extensions.css +0 -2
- package/doc/dist/html/_static/styles/furo-extensions.css.map +0 -1
- package/doc/dist/html/_static/styles/furo.css +0 -2
- package/doc/dist/html/_static/styles/furo.css.map +0 -1
- package/doc/dist/html/_static/underscore-1.13.1.js +0 -2042
- package/doc/dist/html/_static/underscore.js +0 -6
- package/doc/dist/html/benchmarks.html +0 -572
- package/doc/dist/html/changes.html +0 -668
- package/doc/dist/html/contribute.html +0 -404
- package/doc/dist/html/functions.html +0 -657
- package/doc/dist/html/genindex.html +0 -254
- package/doc/dist/html/index.html +0 -360
- package/doc/dist/html/memory.html +0 -347
- package/doc/dist/html/objects.inv +0 -0
- package/doc/dist/html/platforms.html +0 -372
- package/doc/dist/html/search.html +0 -262
- package/doc/dist/html/searchindex.js +0 -1
- package/doc/dist/html/start.html +0 -385
- package/doc/dist/html/types.html +0 -1097
|
Binary file
|
|
Binary file
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* This program is free software: you can redistribute it and/or modify
|
|
2
|
-
it under the terms of the GNU Affero General Public License as published by
|
|
3
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
4
|
-
(at your option) any later version.
|
|
5
|
-
|
|
6
|
-
This program is distributed in the hope that it will be useful,
|
|
7
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
8
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
9
|
-
GNU Affero General Public License for more details.
|
|
10
|
-
|
|
11
|
-
You should have received a copy of the GNU Affero General Public License
|
|
12
|
-
along with this program. If not, see https://www.gnu.org/licenses/. */
|
|
13
|
-
|
|
14
|
-
aside.footnote {
|
|
15
|
-
display: flex;
|
|
16
|
-
margin-top: 6px;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
aside.footnote > p {
|
|
20
|
-
margin: 0;
|
|
21
|
-
margin-left: 1rem;
|
|
22
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
This CSS file should be overridden by the theme authors. It's
|
|
3
|
-
meant for debugging and developing the skeleton that this theme provides.
|
|
4
|
-
*/
|
|
5
|
-
body {
|
|
6
|
-
font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
|
|
7
|
-
"Apple Color Emoji", "Segoe UI Emoji";
|
|
8
|
-
background: lavender;
|
|
9
|
-
}
|
|
10
|
-
.sb-announcement {
|
|
11
|
-
background: rgb(131, 131, 131);
|
|
12
|
-
}
|
|
13
|
-
.sb-announcement__inner {
|
|
14
|
-
background: black;
|
|
15
|
-
color: white;
|
|
16
|
-
}
|
|
17
|
-
.sb-header {
|
|
18
|
-
background: lightskyblue;
|
|
19
|
-
}
|
|
20
|
-
.sb-header__inner {
|
|
21
|
-
background: royalblue;
|
|
22
|
-
color: white;
|
|
23
|
-
}
|
|
24
|
-
.sb-header-secondary {
|
|
25
|
-
background: lightcyan;
|
|
26
|
-
}
|
|
27
|
-
.sb-header-secondary__inner {
|
|
28
|
-
background: cornflowerblue;
|
|
29
|
-
color: white;
|
|
30
|
-
}
|
|
31
|
-
.sb-sidebar-primary {
|
|
32
|
-
background: lightgreen;
|
|
33
|
-
}
|
|
34
|
-
.sb-main {
|
|
35
|
-
background: blanchedalmond;
|
|
36
|
-
}
|
|
37
|
-
.sb-main__inner {
|
|
38
|
-
background: antiquewhite;
|
|
39
|
-
}
|
|
40
|
-
.sb-header-article {
|
|
41
|
-
background: lightsteelblue;
|
|
42
|
-
}
|
|
43
|
-
.sb-article-container {
|
|
44
|
-
background: snow;
|
|
45
|
-
}
|
|
46
|
-
.sb-article-main {
|
|
47
|
-
background: white;
|
|
48
|
-
}
|
|
49
|
-
.sb-footer-article {
|
|
50
|
-
background: lightpink;
|
|
51
|
-
}
|
|
52
|
-
.sb-sidebar-secondary {
|
|
53
|
-
background: lightgoldenrodyellow;
|
|
54
|
-
}
|
|
55
|
-
.sb-footer-content {
|
|
56
|
-
background: plum;
|
|
57
|
-
}
|
|
58
|
-
.sb-footer-content__inner {
|
|
59
|
-
background: palevioletred;
|
|
60
|
-
}
|
|
61
|
-
.sb-footer {
|
|
62
|
-
background: pink;
|
|
63
|
-
}
|
|
64
|
-
.sb-footer__inner {
|
|
65
|
-
background: salmon;
|
|
66
|
-
}
|
|
67
|
-
[role="main"] {
|
|
68
|
-
background: white;
|
|
69
|
-
}
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* doctools.js
|
|
3
|
-
* ~~~~~~~~~~~
|
|
4
|
-
*
|
|
5
|
-
* Base JavaScript utilities for all Sphinx HTML documentation.
|
|
6
|
-
*
|
|
7
|
-
* :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS.
|
|
8
|
-
* :license: BSD, see LICENSE for details.
|
|
9
|
-
*
|
|
10
|
-
*/
|
|
11
|
-
"use strict";
|
|
12
|
-
|
|
13
|
-
const _ready = (callback) => {
|
|
14
|
-
if (document.readyState !== "loading") {
|
|
15
|
-
callback();
|
|
16
|
-
} else {
|
|
17
|
-
document.addEventListener("DOMContentLoaded", callback);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* highlight a given string on a node by wrapping it in
|
|
23
|
-
* span elements with the given class name.
|
|
24
|
-
*/
|
|
25
|
-
const _highlight = (node, addItems, text, className) => {
|
|
26
|
-
if (node.nodeType === Node.TEXT_NODE) {
|
|
27
|
-
const val = node.nodeValue;
|
|
28
|
-
const parent = node.parentNode;
|
|
29
|
-
const pos = val.toLowerCase().indexOf(text);
|
|
30
|
-
if (
|
|
31
|
-
pos >= 0 &&
|
|
32
|
-
!parent.classList.contains(className) &&
|
|
33
|
-
!parent.classList.contains("nohighlight")
|
|
34
|
-
) {
|
|
35
|
-
let span;
|
|
36
|
-
|
|
37
|
-
const closestNode = parent.closest("body, svg, foreignObject");
|
|
38
|
-
const isInSVG = closestNode && closestNode.matches("svg");
|
|
39
|
-
if (isInSVG) {
|
|
40
|
-
span = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
|
|
41
|
-
} else {
|
|
42
|
-
span = document.createElement("span");
|
|
43
|
-
span.classList.add(className);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
span.appendChild(document.createTextNode(val.substr(pos, text.length)));
|
|
47
|
-
parent.insertBefore(
|
|
48
|
-
span,
|
|
49
|
-
parent.insertBefore(
|
|
50
|
-
document.createTextNode(val.substr(pos + text.length)),
|
|
51
|
-
node.nextSibling
|
|
52
|
-
)
|
|
53
|
-
);
|
|
54
|
-
node.nodeValue = val.substr(0, pos);
|
|
55
|
-
|
|
56
|
-
if (isInSVG) {
|
|
57
|
-
const rect = document.createElementNS(
|
|
58
|
-
"http://www.w3.org/2000/svg",
|
|
59
|
-
"rect"
|
|
60
|
-
);
|
|
61
|
-
const bbox = parent.getBBox();
|
|
62
|
-
rect.x.baseVal.value = bbox.x;
|
|
63
|
-
rect.y.baseVal.value = bbox.y;
|
|
64
|
-
rect.width.baseVal.value = bbox.width;
|
|
65
|
-
rect.height.baseVal.value = bbox.height;
|
|
66
|
-
rect.setAttribute("class", className);
|
|
67
|
-
addItems.push({ parent: parent, target: rect });
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
} else if (node.matches && !node.matches("button, select, textarea")) {
|
|
71
|
-
node.childNodes.forEach((el) => _highlight(el, addItems, text, className));
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
const _highlightText = (thisNode, text, className) => {
|
|
75
|
-
let addItems = [];
|
|
76
|
-
_highlight(thisNode, addItems, text, className);
|
|
77
|
-
addItems.forEach((obj) =>
|
|
78
|
-
obj.parent.insertAdjacentElement("beforebegin", obj.target)
|
|
79
|
-
);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Small JavaScript module for the documentation.
|
|
84
|
-
*/
|
|
85
|
-
const Documentation = {
|
|
86
|
-
init: () => {
|
|
87
|
-
Documentation.highlightSearchWords();
|
|
88
|
-
Documentation.initDomainIndexTable();
|
|
89
|
-
Documentation.initOnKeyListeners();
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* i18n support
|
|
94
|
-
*/
|
|
95
|
-
TRANSLATIONS: {},
|
|
96
|
-
PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
|
|
97
|
-
LOCALE: "unknown",
|
|
98
|
-
|
|
99
|
-
// gettext and ngettext don't access this so that the functions
|
|
100
|
-
// can safely bound to a different name (_ = Documentation.gettext)
|
|
101
|
-
gettext: (string) => {
|
|
102
|
-
const translated = Documentation.TRANSLATIONS[string];
|
|
103
|
-
switch (typeof translated) {
|
|
104
|
-
case "undefined":
|
|
105
|
-
return string; // no translation
|
|
106
|
-
case "string":
|
|
107
|
-
return translated; // translation exists
|
|
108
|
-
default:
|
|
109
|
-
return translated[0]; // (singular, plural) translation tuple exists
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
|
|
113
|
-
ngettext: (singular, plural, n) => {
|
|
114
|
-
const translated = Documentation.TRANSLATIONS[singular];
|
|
115
|
-
if (typeof translated !== "undefined")
|
|
116
|
-
return translated[Documentation.PLURAL_EXPR(n)];
|
|
117
|
-
return n === 1 ? singular : plural;
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
addTranslations: (catalog) => {
|
|
121
|
-
Object.assign(Documentation.TRANSLATIONS, catalog.messages);
|
|
122
|
-
Documentation.PLURAL_EXPR = new Function(
|
|
123
|
-
"n",
|
|
124
|
-
`return (${catalog.plural_expr})`
|
|
125
|
-
);
|
|
126
|
-
Documentation.LOCALE = catalog.locale;
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* highlight the search words provided in the url in the text
|
|
131
|
-
*/
|
|
132
|
-
highlightSearchWords: () => {
|
|
133
|
-
const highlight =
|
|
134
|
-
new URLSearchParams(window.location.search).get("highlight") || "";
|
|
135
|
-
const terms = highlight.toLowerCase().split(/\s+/).filter(x => x);
|
|
136
|
-
if (terms.length === 0) return; // nothing to do
|
|
137
|
-
|
|
138
|
-
// There should never be more than one element matching "div.body"
|
|
139
|
-
const divBody = document.querySelectorAll("div.body");
|
|
140
|
-
const body = divBody.length ? divBody[0] : document.querySelector("body");
|
|
141
|
-
window.setTimeout(() => {
|
|
142
|
-
terms.forEach((term) => _highlightText(body, term, "highlighted"));
|
|
143
|
-
}, 10);
|
|
144
|
-
|
|
145
|
-
const searchBox = document.getElementById("searchbox");
|
|
146
|
-
if (searchBox === null) return;
|
|
147
|
-
searchBox.appendChild(
|
|
148
|
-
document
|
|
149
|
-
.createRange()
|
|
150
|
-
.createContextualFragment(
|
|
151
|
-
'<p class="highlight-link">' +
|
|
152
|
-
'<a href="javascript:Documentation.hideSearchWords()">' +
|
|
153
|
-
Documentation.gettext("Hide Search Matches") +
|
|
154
|
-
"</a></p>"
|
|
155
|
-
)
|
|
156
|
-
);
|
|
157
|
-
},
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* helper function to hide the search marks again
|
|
161
|
-
*/
|
|
162
|
-
hideSearchWords: () => {
|
|
163
|
-
document
|
|
164
|
-
.querySelectorAll("#searchbox .highlight-link")
|
|
165
|
-
.forEach((el) => el.remove());
|
|
166
|
-
document
|
|
167
|
-
.querySelectorAll("span.highlighted")
|
|
168
|
-
.forEach((el) => el.classList.remove("highlighted"));
|
|
169
|
-
const url = new URL(window.location);
|
|
170
|
-
url.searchParams.delete("highlight");
|
|
171
|
-
window.history.replaceState({}, "", url);
|
|
172
|
-
},
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* helper function to focus on search bar
|
|
176
|
-
*/
|
|
177
|
-
focusSearchBar: () => {
|
|
178
|
-
document.querySelectorAll("input[name=q]")[0]?.focus();
|
|
179
|
-
},
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Initialise the domain index toggle buttons
|
|
183
|
-
*/
|
|
184
|
-
initDomainIndexTable: () => {
|
|
185
|
-
const toggler = (el) => {
|
|
186
|
-
const idNumber = el.id.substr(7);
|
|
187
|
-
const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
|
|
188
|
-
if (el.src.substr(-9) === "minus.png") {
|
|
189
|
-
el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
|
|
190
|
-
toggledRows.forEach((el) => (el.style.display = "none"));
|
|
191
|
-
} else {
|
|
192
|
-
el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
|
|
193
|
-
toggledRows.forEach((el) => (el.style.display = ""));
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
const togglerElements = document.querySelectorAll("img.toggler");
|
|
198
|
-
togglerElements.forEach((el) =>
|
|
199
|
-
el.addEventListener("click", (event) => toggler(event.currentTarget))
|
|
200
|
-
);
|
|
201
|
-
togglerElements.forEach((el) => (el.style.display = ""));
|
|
202
|
-
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
|
|
203
|
-
},
|
|
204
|
-
|
|
205
|
-
initOnKeyListeners: () => {
|
|
206
|
-
// only install a listener if it is really needed
|
|
207
|
-
if (
|
|
208
|
-
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
|
|
209
|
-
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
|
|
210
|
-
)
|
|
211
|
-
return;
|
|
212
|
-
|
|
213
|
-
const blacklistedElements = new Set([
|
|
214
|
-
"TEXTAREA",
|
|
215
|
-
"INPUT",
|
|
216
|
-
"SELECT",
|
|
217
|
-
"BUTTON",
|
|
218
|
-
]);
|
|
219
|
-
document.addEventListener("keydown", (event) => {
|
|
220
|
-
if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements
|
|
221
|
-
if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys
|
|
222
|
-
|
|
223
|
-
if (!event.shiftKey) {
|
|
224
|
-
switch (event.key) {
|
|
225
|
-
case "ArrowLeft":
|
|
226
|
-
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
|
|
227
|
-
|
|
228
|
-
const prevLink = document.querySelector('link[rel="prev"]');
|
|
229
|
-
if (prevLink && prevLink.href) {
|
|
230
|
-
window.location.href = prevLink.href;
|
|
231
|
-
event.preventDefault();
|
|
232
|
-
}
|
|
233
|
-
break;
|
|
234
|
-
case "ArrowRight":
|
|
235
|
-
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
|
|
236
|
-
|
|
237
|
-
const nextLink = document.querySelector('link[rel="next"]');
|
|
238
|
-
if (nextLink && nextLink.href) {
|
|
239
|
-
window.location.href = nextLink.href;
|
|
240
|
-
event.preventDefault();
|
|
241
|
-
}
|
|
242
|
-
break;
|
|
243
|
-
case "Escape":
|
|
244
|
-
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
|
|
245
|
-
Documentation.hideSearchWords();
|
|
246
|
-
event.preventDefault();
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
// some keyboard layouts may need Shift to get /
|
|
251
|
-
switch (event.key) {
|
|
252
|
-
case "/":
|
|
253
|
-
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
|
|
254
|
-
Documentation.focusSearchBar();
|
|
255
|
-
event.preventDefault();
|
|
256
|
-
}
|
|
257
|
-
});
|
|
258
|
-
},
|
|
259
|
-
};
|
|
260
|
-
|
|
261
|
-
// quick alias for translations
|
|
262
|
-
const _ = Documentation.gettext;
|
|
263
|
-
|
|
264
|
-
_ready(Documentation.init);
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
var DOCUMENTATION_OPTIONS = {
|
|
2
|
-
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
|
3
|
-
VERSION: '',
|
|
4
|
-
LANGUAGE: 'en',
|
|
5
|
-
COLLAPSE_INDEX: false,
|
|
6
|
-
BUILDER: 'html',
|
|
7
|
-
FILE_SUFFIX: '.html',
|
|
8
|
-
LINK_SUFFIX: '',
|
|
9
|
-
HAS_SOURCE: true,
|
|
10
|
-
SOURCELINK_SUFFIX: '.txt',
|
|
11
|
-
NAVIGATION_WITH_KEYS: false,
|
|
12
|
-
SHOW_SEARCH_SUMMARY: true,
|
|
13
|
-
ENABLE_SEARCH_SHORTCUTS: false,
|
|
14
|
-
};
|
|
Binary file
|