diff options
author | Thijs Schreijer <thijs@thijsschreijer.nl> | 2024-08-28 10:15:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-28 10:15:54 +0200 |
commit | 60b66fce58b64d121b124e64ef78d37512e3a8a2 (patch) | |
tree | 55590869085a2f9954e30cc728a63e6b87ba3ea8 | |
parent | 227743a147967bf1418525770082a5943b3f9f41 (diff) | |
download | luasystem-60b66fce58b64d121b124e64ef78d37512e3a8a2.tar.gz luasystem-60b66fce58b64d121b124e64ef78d37512e3a8a2.tar.bz2 luasystem-60b66fce58b64d121b124e64ef78d37512e3a8a2.zip |
Re-add FreeBSD support (broken since c1a64c1) (#33)
Co-authored-by: cos <cos>
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | doc_topics/02-development.md | 2 | ||||
-rw-r--r-- | spec/04-term_spec.lua | 3 | ||||
-rw-r--r-- | src/term.c | 19 |
4 files changed, 20 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 398f4a0..f1d3aa5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
@@ -31,6 +31,7 @@ The scope of what is covered by the version number excludes: | |||
31 | ### unreleased | 31 | ### unreleased |
32 | 32 | ||
33 | - Chore: add compiler error on Windows if Virtual Terminal Processing is unavailable. | 33 | - Chore: add compiler error on Windows if Virtual Terminal Processing is unavailable. |
34 | - Fix: fix the freebsd build | ||
34 | 35 | ||
35 | ### Version 0.4.2, released 25-Jun-2024 | 36 | ### Version 0.4.2, released 25-Jun-2024 |
36 | 37 | ||
diff --git a/doc_topics/02-development.md b/doc_topics/02-development.md index 8925b83..c145c79 100644 --- a/doc_topics/02-development.md +++ b/doc_topics/02-development.md | |||
@@ -8,5 +8,5 @@ The tests concerned are all labelled with `#manual`. And in CI they will | |||
8 | be skipped because `--exclude-tags=manual` is being passed to the | 8 | be skipped because `--exclude-tags=manual` is being passed to the |
9 | `busted` command line. | 9 | `busted` command line. |
10 | 10 | ||
11 | Hence if tests like this are being added, then please ensure the tests | 11 | Hence if tests like these are being added, then please ensure the tests |
12 | pass locally, and do not rely on CI only. | 12 | pass locally, and do not rely on CI only. |
diff --git a/spec/04-term_spec.lua b/spec/04-term_spec.lua index 57fb4d0..813947a 100644 --- a/spec/04-term_spec.lua +++ b/spec/04-term_spec.lua | |||
@@ -27,7 +27,8 @@ describe("Terminal:", function() | |||
27 | assert(type(serr) == "boolean", "serr must be a boolean") | 27 | assert(type(serr) == "boolean", "serr must be a boolean") |
28 | 28 | ||
29 | local tmpfile = "./spec/04-term_helper.output" | 29 | local tmpfile = "./spec/04-term_helper.output" |
30 | local execcmd = "lua ./spec/04-term_helper.lua -- " .. tmpfile | 30 | local lua_bin = system.getenv("LUA") or "lua" |
31 | local execcmd = lua_bin .. " ./spec/04-term_helper.lua -- " .. tmpfile | ||
31 | 32 | ||
32 | sin = sin and "" or 'echo "hello" | ' | 33 | sin = sin and "" or 'echo "hello" | ' |
33 | if system.windows then | 34 | if system.windows then |
@@ -166,7 +166,7 @@ static const struct ls_RegConst nix_console_i_flags[] = { | |||
166 | {"I_INLCR", CHECK_NIX_FLAG_OR_ZERO(INLCR)}, | 166 | {"I_INLCR", CHECK_NIX_FLAG_OR_ZERO(INLCR)}, |
167 | {"I_IGNCR", CHECK_NIX_FLAG_OR_ZERO(IGNCR)}, | 167 | {"I_IGNCR", CHECK_NIX_FLAG_OR_ZERO(IGNCR)}, |
168 | {"I_ICRNL", CHECK_NIX_FLAG_OR_ZERO(ICRNL)}, | 168 | {"I_ICRNL", CHECK_NIX_FLAG_OR_ZERO(ICRNL)}, |
169 | #ifndef __APPLE__ | 169 | #if !defined(__APPLE__) && !defined(__FreeBSD__) |
170 | {"I_IUCLC", CHECK_NIX_FLAG_OR_ZERO(IUCLC)}, // Might not be available on all systems | 170 | {"I_IUCLC", CHECK_NIX_FLAG_OR_ZERO(IUCLC)}, // Might not be available on all systems |
171 | #else | 171 | #else |
172 | {"I_IUCLC", 0}, | 172 | {"I_IUCLC", 0}, |
@@ -181,7 +181,7 @@ static const struct ls_RegConst nix_console_i_flags[] = { | |||
181 | static const struct ls_RegConst nix_console_o_flags[] = { | 181 | static const struct ls_RegConst nix_console_o_flags[] = { |
182 | // Output flags (c_oflag) | 182 | // Output flags (c_oflag) |
183 | {"O_OPOST", CHECK_NIX_FLAG_OR_ZERO(OPOST)}, | 183 | {"O_OPOST", CHECK_NIX_FLAG_OR_ZERO(OPOST)}, |
184 | #ifndef __APPLE__ | 184 | #if !defined(__APPLE__) && !defined(__FreeBSD__) |
185 | {"O_OLCUC", CHECK_NIX_FLAG_OR_ZERO(OLCUC)}, // Might not be available on all systems | 185 | {"O_OLCUC", CHECK_NIX_FLAG_OR_ZERO(OLCUC)}, // Might not be available on all systems |
186 | #else | 186 | #else |
187 | {"O_OLCUC", 0}, | 187 | {"O_OLCUC", 0}, |
@@ -190,14 +190,27 @@ static const struct ls_RegConst nix_console_o_flags[] = { | |||
190 | {"O_OCRNL", CHECK_NIX_FLAG_OR_ZERO(OCRNL)}, | 190 | {"O_OCRNL", CHECK_NIX_FLAG_OR_ZERO(OCRNL)}, |
191 | {"O_ONOCR", CHECK_NIX_FLAG_OR_ZERO(ONOCR)}, | 191 | {"O_ONOCR", CHECK_NIX_FLAG_OR_ZERO(ONOCR)}, |
192 | {"O_ONLRET", CHECK_NIX_FLAG_OR_ZERO(ONLRET)}, | 192 | {"O_ONLRET", CHECK_NIX_FLAG_OR_ZERO(ONLRET)}, |
193 | #ifndef __FreeBSD__ | ||
193 | {"O_OFILL", CHECK_NIX_FLAG_OR_ZERO(OFILL)}, | 194 | {"O_OFILL", CHECK_NIX_FLAG_OR_ZERO(OFILL)}, |
194 | {"O_OFDEL", CHECK_NIX_FLAG_OR_ZERO(OFDEL)}, | 195 | {"O_OFDEL", CHECK_NIX_FLAG_OR_ZERO(OFDEL)}, |
195 | {"O_NLDLY", CHECK_NIX_FLAG_OR_ZERO(NLDLY)}, | 196 | {"O_NLDLY", CHECK_NIX_FLAG_OR_ZERO(NLDLY)}, |
196 | {"O_CRDLY", CHECK_NIX_FLAG_OR_ZERO(CRDLY)}, | 197 | {"O_CRDLY", CHECK_NIX_FLAG_OR_ZERO(CRDLY)}, |
198 | #else | ||
199 | {"O_OFILL", 0}, | ||
200 | {"O_OFDEL", 0}, | ||
201 | {"O_NLDLY", 0}, | ||
202 | {"O_CRDLY", 0}, | ||
203 | #endif | ||
197 | {"O_TABDLY", CHECK_NIX_FLAG_OR_ZERO(TABDLY)}, | 204 | {"O_TABDLY", CHECK_NIX_FLAG_OR_ZERO(TABDLY)}, |
205 | #ifndef __FreeBSD__ | ||
198 | {"O_BSDLY", CHECK_NIX_FLAG_OR_ZERO(BSDLY)}, | 206 | {"O_BSDLY", CHECK_NIX_FLAG_OR_ZERO(BSDLY)}, |
199 | {"O_VTDLY", CHECK_NIX_FLAG_OR_ZERO(VTDLY)}, | 207 | {"O_VTDLY", CHECK_NIX_FLAG_OR_ZERO(VTDLY)}, |
200 | {"O_FFDLY", CHECK_NIX_FLAG_OR_ZERO(FFDLY)}, | 208 | {"O_FFDLY", CHECK_NIX_FLAG_OR_ZERO(FFDLY)}, |
209 | #else | ||
210 | {"O_BSDLY", 0}, | ||
211 | {"O_VTDLY", 0}, | ||
212 | {"O_FFDLY", 0}, | ||
213 | #endif | ||
201 | {NULL, 0} | 214 | {NULL, 0} |
202 | }; | 215 | }; |
203 | 216 | ||
@@ -205,7 +218,7 @@ static const struct ls_RegConst nix_console_l_flags[] = { | |||
205 | // Local flags (c_lflag) | 218 | // Local flags (c_lflag) |
206 | {"L_ISIG", CHECK_NIX_FLAG_OR_ZERO(ISIG)}, | 219 | {"L_ISIG", CHECK_NIX_FLAG_OR_ZERO(ISIG)}, |
207 | {"L_ICANON", CHECK_NIX_FLAG_OR_ZERO(ICANON)}, | 220 | {"L_ICANON", CHECK_NIX_FLAG_OR_ZERO(ICANON)}, |
208 | #ifndef __APPLE__ | 221 | #if !defined(__APPLE__) && !defined(__FreeBSD__) |
209 | {"L_XCASE", CHECK_NIX_FLAG_OR_ZERO(XCASE)}, // Might not be available on all systems | 222 | {"L_XCASE", CHECK_NIX_FLAG_OR_ZERO(XCASE)}, // Might not be available on all systems |
210 | #else | 223 | #else |
211 | {"L_XCASE", 0}, | 224 | {"L_XCASE", 0}, |