diff options
| author | Thijs Schreijer <thijs@thijsschreijer.nl> | 2025-04-10 10:29:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-10 10:29:39 +0200 |
| commit | 06691764e87c2979f4a00ed386e237150f055d5a (patch) | |
| tree | d9b5448e8a319236277d2afab4264af7ee67538b | |
| parent | 98ca844bc6170ee332353abdeaac0be0e4a43af0 (diff) | |
| download | luasystem-0.6.0.tar.gz luasystem-0.6.0.tar.bz2 luasystem-0.6.0.zip | |
Release v0.6.0 (#61)v0.6.0
| -rw-r--r-- | CHANGELOG.md | 2 | ||||
| -rw-r--r-- | docs/classes/bitflags.html | 2 | ||||
| -rw-r--r-- | docs/examples/compat.lua.html | 2 | ||||
| -rw-r--r-- | docs/examples/flag_debugging.lua.html | 2 | ||||
| -rw-r--r-- | docs/examples/password_input.lua.html | 2 | ||||
| -rw-r--r-- | docs/examples/read.lua.html | 2 | ||||
| -rw-r--r-- | docs/examples/readline.lua.html | 2 | ||||
| -rw-r--r-- | docs/examples/spinner.lua.html | 2 | ||||
| -rw-r--r-- | docs/examples/spiral_snake.lua.html | 2 | ||||
| -rw-r--r-- | docs/examples/terminalsize.lua.html | 2 | ||||
| -rw-r--r-- | docs/index.html | 2 | ||||
| -rw-r--r-- | docs/modules/system.html | 55 | ||||
| -rw-r--r-- | docs/topics/01-introduction.md.html | 2 | ||||
| -rw-r--r-- | docs/topics/02-development.md.html | 2 | ||||
| -rw-r--r-- | docs/topics/03-terminal.md.html | 4 | ||||
| -rw-r--r-- | docs/topics/CHANGELOG.md.html | 15 | ||||
| -rw-r--r-- | docs/topics/LICENSE.md.html | 2 | ||||
| -rw-r--r-- | rockspecs/luasystem-0.6.0-1.rockspec | 85 | ||||
| -rw-r--r-- | src/core.c | 2 |
19 files changed, 165 insertions, 24 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index c617db5..28e7272 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
| @@ -27,7 +27,7 @@ The scope of what is covered by the version number excludes: | |||
| 27 | 27 | ||
| 28 | ## Version history | 28 | ## Version history |
| 29 | 29 | ||
| 30 | ### version 0.6.0, unreleased | 30 | ### version 0.6.0, released 10-Apr-2025 |
| 31 | 31 | ||
| 32 | - Fix: when sleep returns an error, pass that on in `readkey`. | 32 | - Fix: when sleep returns an error, pass that on in `readkey`. |
| 33 | - Feat: added `detachfds` which will create separate file descriptions for `stdout` | 33 | - Feat: added `detachfds` which will create separate file descriptions for `stdout` |
diff --git a/docs/classes/bitflags.html b/docs/classes/bitflags.html index 647cc62..f7d2114 100644 --- a/docs/classes/bitflags.html +++ b/docs/classes/bitflags.html | |||
| @@ -298,7 +298,7 @@ return <code>false</code> if the flags are checked. | |||
| 298 | </div> <!-- id="main" --> | 298 | </div> <!-- id="main" --> |
| 299 | <div id="about"> | 299 | <div id="about"> |
| 300 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 300 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 301 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 301 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 302 | </div> <!-- id="about" --> | 302 | </div> <!-- id="about" --> |
| 303 | </div> <!-- id="container" --> | 303 | </div> <!-- id="container" --> |
| 304 | </body> | 304 | </body> |
diff --git a/docs/examples/compat.lua.html b/docs/examples/compat.lua.html index e421044..dc42560 100644 --- a/docs/examples/compat.lua.html +++ b/docs/examples/compat.lua.html | |||
| @@ -112,7 +112,7 @@ | |||
| 112 | </div> <!-- id="main" --> | 112 | </div> <!-- id="main" --> |
| 113 | <div id="about"> | 113 | <div id="about"> |
| 114 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 114 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 115 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 115 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 116 | </div> <!-- id="about" --> | 116 | </div> <!-- id="about" --> |
| 117 | </div> <!-- id="container" --> | 117 | </div> <!-- id="container" --> |
| 118 | </body> | 118 | </body> |
diff --git a/docs/examples/flag_debugging.lua.html b/docs/examples/flag_debugging.lua.html index e8a75e3..65614c6 100644 --- a/docs/examples/flag_debugging.lua.html +++ b/docs/examples/flag_debugging.lua.html | |||
| @@ -80,7 +80,7 @@ | |||
| 80 | </div> <!-- id="main" --> | 80 | </div> <!-- id="main" --> |
| 81 | <div id="about"> | 81 | <div id="about"> |
| 82 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 82 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 83 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 83 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 84 | </div> <!-- id="about" --> | 84 | </div> <!-- id="about" --> |
| 85 | </div> <!-- id="container" --> | 85 | </div> <!-- id="container" --> |
| 86 | </body> | 86 | </body> |
diff --git a/docs/examples/password_input.lua.html b/docs/examples/password_input.lua.html index a5eac4d..283c4f0 100644 --- a/docs/examples/password_input.lua.html +++ b/docs/examples/password_input.lua.html | |||
| @@ -132,7 +132,7 @@ useful for reading secrets from the user. | |||
| 132 | </div> <!-- id="main" --> | 132 | </div> <!-- id="main" --> |
| 133 | <div id="about"> | 133 | <div id="about"> |
| 134 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 134 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 135 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 135 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 136 | </div> <!-- id="about" --> | 136 | </div> <!-- id="about" --> |
| 137 | </div> <!-- id="container" --> | 137 | </div> <!-- id="container" --> |
| 138 | </body> | 138 | </body> |
diff --git a/docs/examples/read.lua.html b/docs/examples/read.lua.html index 3b53a8b..7dd8087 100644 --- a/docs/examples/read.lua.html +++ b/docs/examples/read.lua.html | |||
| @@ -143,7 +143,7 @@ sys.<span class="function-name">setnonblock</span>(<span class="global">io</span | |||
| 143 | </div> <!-- id="main" --> | 143 | </div> <!-- id="main" --> |
| 144 | <div id="about"> | 144 | <div id="about"> |
| 145 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 145 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 146 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 146 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 147 | </div> <!-- id="about" --> | 147 | </div> <!-- id="about" --> |
| 148 | </div> <!-- id="container" --> | 148 | </div> <!-- id="container" --> |
| 149 | </body> | 149 | </body> |
diff --git a/docs/examples/readline.lua.html b/docs/examples/readline.lua.html index dd63721..45a9d9b 100644 --- a/docs/examples/readline.lua.html +++ b/docs/examples/readline.lua.html | |||
| @@ -549,7 +549,7 @@ sys.<span class="function-name">setconsoleflags</span>(<span class="global">io</ | |||
| 549 | </div> <!-- id="main" --> | 549 | </div> <!-- id="main" --> |
| 550 | <div id="about"> | 550 | <div id="about"> |
| 551 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 551 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 552 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 552 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 553 | </div> <!-- id="about" --> | 553 | </div> <!-- id="about" --> |
| 554 | </div> <!-- id="container" --> | 554 | </div> <!-- id="container" --> |
| 555 | </body> | 555 | </body> |
diff --git a/docs/examples/spinner.lua.html b/docs/examples/spinner.lua.html index 99a1c91..ffa4ac9 100644 --- a/docs/examples/spinner.lua.html +++ b/docs/examples/spinner.lua.html | |||
| @@ -137,7 +137,7 @@ sys.<span class="function-name">setnonblock</span>(<span class="global">io</span | |||
| 137 | </div> <!-- id="main" --> | 137 | </div> <!-- id="main" --> |
| 138 | <div id="about"> | 138 | <div id="about"> |
| 139 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 139 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 140 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 140 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 141 | </div> <!-- id="about" --> | 141 | </div> <!-- id="about" --> |
| 142 | </div> <!-- id="container" --> | 142 | </div> <!-- id="container" --> |
| 143 | </body> | 143 | </body> |
diff --git a/docs/examples/spiral_snake.lua.html b/docs/examples/spiral_snake.lua.html index 7be16e8..e250f99 100644 --- a/docs/examples/spiral_snake.lua.html +++ b/docs/examples/spiral_snake.lua.html | |||
| @@ -145,7 +145,7 @@ codes for moving the cursor around. | |||
| 145 | </div> <!-- id="main" --> | 145 | </div> <!-- id="main" --> |
| 146 | <div id="about"> | 146 | <div id="about"> |
| 147 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 147 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 148 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 148 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 149 | </div> <!-- id="about" --> | 149 | </div> <!-- id="about" --> |
| 150 | </div> <!-- id="container" --> | 150 | </div> <!-- id="container" --> |
| 151 | </body> | 151 | </body> |
diff --git a/docs/examples/terminalsize.lua.html b/docs/examples/terminalsize.lua.html index 6a6a93e..9aa4cc5 100644 --- a/docs/examples/terminalsize.lua.html +++ b/docs/examples/terminalsize.lua.html | |||
| @@ -110,7 +110,7 @@ sys.<span class="function-name">tcsetattr</span>(<span class="global">io</span>. | |||
| 110 | </div> <!-- id="main" --> | 110 | </div> <!-- id="main" --> |
| 111 | <div id="about"> | 111 | <div id="about"> |
| 112 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 112 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 113 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 113 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 114 | </div> <!-- id="about" --> | 114 | </div> <!-- id="about" --> |
| 115 | </div> <!-- id="container" --> | 115 | </div> <!-- id="container" --> |
| 116 | </body> | 116 | </body> |
diff --git a/docs/index.html b/docs/index.html index 5d7b02f..bd3ad5c 100644 --- a/docs/index.html +++ b/docs/index.html | |||
| @@ -142,7 +142,7 @@ | |||
| 142 | </div> <!-- id="main" --> | 142 | </div> <!-- id="main" --> |
| 143 | <div id="about"> | 143 | <div id="about"> |
| 144 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 144 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 145 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 145 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 146 | </div> <!-- id="about" --> | 146 | </div> <!-- id="about" --> |
| 147 | </div> <!-- id="container" --> | 147 | </div> <!-- id="container" --> |
| 148 | </body> | 148 | </body> |
diff --git a/docs/modules/system.html b/docs/modules/system.html index fa41458..28ccf5a 100644 --- a/docs/modules/system.html +++ b/docs/modules/system.html | |||
| @@ -124,6 +124,10 @@ | |||
| 124 | <td class="summary">Backs up terminal settings and restores them on application exit.</td> | 124 | <td class="summary">Backs up terminal settings and restores them on application exit.</td> |
| 125 | </tr> | 125 | </tr> |
| 126 | <tr> | 126 | <tr> |
| 127 | <td class="name" nowrap><a href="#detachfds">detachfds ()</a></td> | ||
| 128 | <td class="summary">Creates new file descriptions for <code>stdout</code> and <code>stderr</code>.</td> | ||
| 129 | </tr> | ||
| 130 | <tr> | ||
| 127 | <td class="name" nowrap><a href="#getconsolecp">getconsolecp ()</a></td> | 131 | <td class="name" nowrap><a href="#getconsolecp">getconsolecp ()</a></td> |
| 128 | <td class="summary">Gets the current console code page (Windows).</td> | 132 | <td class="summary">Gets the current console code page (Windows).</td> |
| 129 | </tr> | 133 | </tr> |
| @@ -498,6 +502,40 @@ sequences will be buffered internally and returned one byte at a time. | |||
| 498 | 502 | ||
| 499 | </dd> | 503 | </dd> |
| 500 | <dt> | 504 | <dt> |
| 505 | <a name = "detachfds"></a> | ||
| 506 | <strong>detachfds ()</strong> | ||
| 507 | </dt> | ||
| 508 | <dd> | ||
| 509 | Creates new file descriptions for <code>stdout</code> and <code>stderr</code>. | ||
| 510 | Even if the file descriptors are unique, they still might point to the same | ||
| 511 | file description, and hence share settings like <code>O_NONBLOCK</code>. This means that | ||
| 512 | if one of them is set to non-blocking, the other will be as well. This can | ||
| 513 | lead to unexpected behavior.</p> | ||
| 514 | |||
| 515 | <p>This function is used to detach <code>stdout</code> and <code>stderr</code> from the original | ||
| 516 | file descriptions, and create new file descriptions for them. This allows | ||
| 517 | independent control of flags (e.g., <code>O_NONBLOCK</code>) on <code>stdout</code> and <code>stderr</code>, | ||
| 518 | avoiding shared side effects.</p> | ||
| 519 | |||
| 520 | <p>Does not modify <code>stdin</code> (fd 0), and does nothing on Windows. | ||
| 521 | |||
| 522 | |||
| 523 | |||
| 524 | <h3>Returns:</h3> | ||
| 525 | <ol> | ||
| 526 | |||
| 527 | boolean <code>true</code> on success, or throws an error on failure. | ||
| 528 | </ol> | ||
| 529 | |||
| 530 | |||
| 531 | <h3>See also:</h3> | ||
| 532 | <ul> | ||
| 533 | <a href="../modules/system.html#setnonblock">setnonblock</a> | ||
| 534 | </ul> | ||
| 535 | |||
| 536 | |||
| 537 | </dd> | ||
| 538 | <dt> | ||
| 501 | <a name = "getconsolecp"></a> | 539 | <a name = "getconsolecp"></a> |
| 502 | <strong>getconsolecp ()</strong> | 540 | <strong>getconsolecp ()</strong> |
| 503 | </dt> | 541 | </dt> |
| @@ -632,6 +670,10 @@ for more information on the flags. | |||
| 632 | </ol> | 670 | </ol> |
| 633 | 671 | ||
| 634 | 672 | ||
| 673 | <h3>See also:</h3> | ||
| 674 | <ul> | ||
| 675 | <a href="../modules/system.html#setnonblock">setnonblock</a> | ||
| 676 | </ul> | ||
| 635 | 677 | ||
| 636 | 678 | ||
| 637 | </dd> | 679 | </dd> |
| @@ -801,7 +843,7 @@ system.<span class="function-name">listconsoleflags</span>(<span class="global"> | |||
| 801 | </li> | 843 | </li> |
| 802 | <li><span class="parameter">fsleep</span> | 844 | <li><span class="parameter">fsleep</span> |
| 803 | <span class="types"><span class="type">function</span></span> | 845 | <span class="types"><span class="type">function</span></span> |
| 804 | the function to call for sleeping. | 846 | the function to call for sleeping; <code>ok, err = fsleep(secs)</code> |
| 805 | (<em>default</em> system.sleep) | 847 | (<em>default</em> system.sleep) |
| 806 | </li> | 848 | </li> |
| 807 | </ul> | 849 | </ul> |
| @@ -819,7 +861,7 @@ system.<span class="function-name">listconsoleflags</span>(<span class="global"> | |||
| 819 | if no key was read</li> | 861 | if no key was read</li> |
| 820 | <li> | 862 | <li> |
| 821 | <span class="types"><a class="type" href="https://www.lua.org/manual/5.4/manual.html#6.4">string</a></span> | 863 | <span class="types"><a class="type" href="https://www.lua.org/manual/5.4/manual.html#6.4">string</a></span> |
| 822 | error message; <code>"timeout"</code> if the timeout was reached.</li> | 864 | error message when the timeout was reached (<code>"timeout"</code>), or if <a href="../modules/system.html#sleep">sleep</a> failed.</li> |
| 823 | </ol> | 865 | </ol> |
| 824 | 866 | ||
| 825 | 867 | ||
| @@ -947,6 +989,7 @@ system.<span class="function-name">listconsoleflags</span>(<span class="global"> | |||
| 947 | </dt> | 989 | </dt> |
| 948 | <dd> | 990 | <dd> |
| 949 | Enables or disables non-blocking mode for a file (Posix). | 991 | Enables or disables non-blocking mode for a file (Posix). |
| 992 | Check <a href="../modules/system.html#detachfds">detachfds</a> in case there are shared file descriptions. | ||
| 950 | 993 | ||
| 951 | 994 | ||
| 952 | <h3>Parameters:</h3> | 995 | <h3>Parameters:</h3> |
| @@ -985,13 +1028,15 @@ system.<span class="function-name">listconsoleflags</span>(<span class="global"> | |||
| 985 | 1028 | ||
| 986 | <h3>See also:</h3> | 1029 | <h3>See also:</h3> |
| 987 | <ul> | 1030 | <ul> |
| 988 | <a href="../modules/system.html#getnonblock">getnonblock</a> | 1031 | <li><a href="../modules/system.html#getnonblock">getnonblock</a></li> |
| 1032 | <li><a href="../modules/system.html#detachfds">detachfds</a></li> | ||
| 989 | </ul> | 1033 | </ul> |
| 990 | 1034 | ||
| 991 | <h3>Usage:</h3> | 1035 | <h3>Usage:</h3> |
| 992 | <ul> | 1036 | <ul> |
| 993 | <pre class="example"><span class="keyword">local</span> sys = <span class="global">require</span>(<span class="string">'system'</span>) | 1037 | <pre class="example"><span class="keyword">local</span> sys = <span class="global">require</span>(<span class="string">'system'</span>) |
| 994 | 1038 | sys.<span class="function-name">detachfds</span>() <span class="comment">-- detach stdout and stderr, so only stdin becomes non-blocking | |
| 1039 | </span> | ||
| 995 | <span class="comment">-- set io.stdin to non-blocking mode | 1040 | <span class="comment">-- set io.stdin to non-blocking mode |
| 996 | </span><span class="keyword">local</span> old_setting = sys.<span class="function-name">getnonblock</span>(<span class="global">io</span>.stdin) | 1041 | </span><span class="keyword">local</span> old_setting = sys.<span class="function-name">getnonblock</span>(<span class="global">io</span>.stdin) |
| 997 | sys.<span class="function-name">setnonblock</span>(<span class="global">io</span>.stdin, <span class="keyword">true</span>) | 1042 | sys.<span class="function-name">setnonblock</span>(<span class="global">io</span>.stdin, <span class="keyword">true</span>) |
| @@ -1422,7 +1467,7 @@ This function will sleep, without doing a busy-loop and wasting CPU cycles. | |||
| 1422 | </div> <!-- id="main" --> | 1467 | </div> <!-- id="main" --> |
| 1423 | <div id="about"> | 1468 | <div id="about"> |
| 1424 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 1469 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 1425 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 1470 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 1426 | </div> <!-- id="about" --> | 1471 | </div> <!-- id="about" --> |
| 1427 | </div> <!-- id="container" --> | 1472 | </div> <!-- id="container" --> |
| 1428 | </body> | 1473 | </body> |
diff --git a/docs/topics/01-introduction.md.html b/docs/topics/01-introduction.md.html index f0f627d..f16d354 100644 --- a/docs/topics/01-introduction.md.html +++ b/docs/topics/01-introduction.md.html | |||
| @@ -84,7 +84,7 @@ independence.</p> | |||
| 84 | </div> <!-- id="main" --> | 84 | </div> <!-- id="main" --> |
| 85 | <div id="about"> | 85 | <div id="about"> |
| 86 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 86 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 87 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 87 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 88 | </div> <!-- id="about" --> | 88 | </div> <!-- id="about" --> |
| 89 | </div> <!-- id="container" --> | 89 | </div> <!-- id="container" --> |
| 90 | </body> | 90 | </body> |
diff --git a/docs/topics/02-development.md.html b/docs/topics/02-development.md.html index 315fa37..b83969b 100644 --- a/docs/topics/02-development.md.html +++ b/docs/topics/02-development.md.html | |||
| @@ -84,7 +84,7 @@ pass locally, and do not rely on CI only.</p> | |||
| 84 | </div> <!-- id="main" --> | 84 | </div> <!-- id="main" --> |
| 85 | <div id="about"> | 85 | <div id="about"> |
| 86 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 86 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 87 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 87 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 88 | </div> <!-- id="about" --> | 88 | </div> <!-- id="about" --> |
| 89 | </div> <!-- id="container" --> | 89 | </div> <!-- id="container" --> |
| 90 | </body> | 90 | </body> |
diff --git a/docs/topics/03-terminal.md.html b/docs/topics/03-terminal.md.html index 7ce28af..ebaa8bb 100644 --- a/docs/topics/03-terminal.md.html +++ b/docs/topics/03-terminal.md.html | |||
| @@ -93,6 +93,7 @@ up both platforms to make it work.</p> | |||
| 93 | <li><a href="../modules/system.html#setconsoleflags">system.setconsoleflags</a> (Windows)</li> | 93 | <li><a href="../modules/system.html#setconsoleflags">system.setconsoleflags</a> (Windows)</li> |
| 94 | <li><a href="../modules/system.html#setconsolecp">system.setconsolecp</a> (Windows)</li> | 94 | <li><a href="../modules/system.html#setconsolecp">system.setconsolecp</a> (Windows)</li> |
| 95 | <li><a href="../modules/system.html#setconsoleoutputcp">system.setconsoleoutputcp</a> (Windows)</li> | 95 | <li><a href="../modules/system.html#setconsoleoutputcp">system.setconsoleoutputcp</a> (Windows)</li> |
| 96 | <li><a href="../modules/system.html#detachfds">system.detachfds</a> (Posix)</li> | ||
| 96 | <li><a href="../modules/system.html#setnonblock">system.setnonblock</a> (Posix)</li> | 97 | <li><a href="../modules/system.html#setnonblock">system.setnonblock</a> (Posix)</li> |
| 97 | <li><a href="../modules/system.html#tcsetattr">system.tcsetattr</a> (Posix)</li> | 98 | <li><a href="../modules/system.html#tcsetattr">system.tcsetattr</a> (Posix)</li> |
| 98 | </ul> | 99 | </ul> |
| @@ -195,6 +196,7 @@ also not being echoed to the terminal (independent of the echo settings used wit | |||
| 195 | </span>sys.<span class="function-name">setconsoleflags</span>(<span class="global">io</span>.stdin, sys.<span class="function-name">getconsoleflags</span>(<span class="global">io</span>.stdin) - sys.CIF_ECHO_INPUT - sys.CIF_LINE_INPUT) | 196 | </span>sys.<span class="function-name">setconsoleflags</span>(<span class="global">io</span>.stdin, sys.<span class="function-name">getconsoleflags</span>(<span class="global">io</span>.stdin) - sys.CIF_ECHO_INPUT - sys.CIF_LINE_INPUT) |
| 196 | 197 | ||
| 197 | <span class="comment">-- setup Posix by disabling echo, canonical mode, and making non-blocking | 198 | <span class="comment">-- setup Posix by disabling echo, canonical mode, and making non-blocking |
| 199 | </span>sys.<span class="function-name">detachfds</span>() <span class="comment">-- ensure stdin/out/err have their own file descriptions | ||
| 198 | </span><span class="keyword">local</span> of_attr = sys.<span class="function-name">tcgetattr</span>(<span class="global">io</span>.stdin) | 200 | </span><span class="keyword">local</span> of_attr = sys.<span class="function-name">tcgetattr</span>(<span class="global">io</span>.stdin) |
| 199 | sys.<span class="function-name">tcsetattr</span>(<span class="global">io</span>.stdin, sys.TCSANOW, { | 201 | sys.<span class="function-name">tcsetattr</span>(<span class="global">io</span>.stdin, sys.TCSANOW, { |
| 200 | lflag = of_attr.lflag - sys.L_ICANON - sys.L_ECHO, | 202 | lflag = of_attr.lflag - sys.L_ICANON - sys.L_ECHO, |
| @@ -218,7 +220,7 @@ For an example see <a href="../examples/password_input.lua.html"><code>examples/ | |||
| 218 | </div> <!-- id="main" --> | 220 | </div> <!-- id="main" --> |
| 219 | <div id="about"> | 221 | <div id="about"> |
| 220 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 222 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 221 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 223 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 222 | </div> <!-- id="about" --> | 224 | </div> <!-- id="about" --> |
| 223 | </div> <!-- id="container" --> | 225 | </div> <!-- id="container" --> |
| 224 | </body> | 226 | </body> |
diff --git a/docs/topics/CHANGELOG.md.html b/docs/topics/CHANGELOG.md.html index fa2d706..796ae20 100644 --- a/docs/topics/CHANGELOG.md.html +++ b/docs/topics/CHANGELOG.md.html | |||
| @@ -106,6 +106,15 @@ | |||
| 106 | <p><a name="Version_history"></a></p> | 106 | <p><a name="Version_history"></a></p> |
| 107 | <h2>Version history</h2> | 107 | <h2>Version history</h2> |
| 108 | 108 | ||
| 109 | <h3>version 0.6.0, released 10-Apr-2025</h3> | ||
| 110 | |||
| 111 | <ul> | ||
| 112 | <li>Fix: when sleep returns an error, pass that on in <code>readkey</code>.</li> | ||
| 113 | <li>Feat: added <code>detachfds</code> which will create separate file descriptions for <code>stdout</code> | ||
| 114 | and <code>stderr</code> to ensure that related settings (eg. non-blocking flag) will not be shared | ||
| 115 | amongst those streams and <code>stdin</code>.</li> | ||
| 116 | </ul> | ||
| 117 | |||
| 109 | <h3>version 0.5.1, released 12-Mar-2025</h3> | 118 | <h3>version 0.5.1, released 12-Mar-2025</h3> |
| 110 | 119 | ||
| 111 | <ul> | 120 | <ul> |
| @@ -120,14 +129,14 @@ | |||
| 120 | <li>Feat: allow passing in a sleep function to <code>readkey</code> and <code>readansi</code></li> | 129 | <li>Feat: allow passing in a sleep function to <code>readkey</code> and <code>readansi</code></li> |
| 121 | <li>Fix: NetBSD fix compilation, undeclared directives</li> | 130 | <li>Fix: NetBSD fix compilation, undeclared directives</li> |
| 122 | <li>Refactor: random bytes; remove deprecated API usage on Windows, move to | 131 | <li>Refactor: random bytes; remove deprecated API usage on Windows, move to |
| 123 | binary api instead of /dev/urandom file on linux and bsd</li> | 132 | binary api instead of <code>/dev/urandom</code> file on linux and bsd</li> |
| 124 | </ul> | 133 | </ul> |
| 125 | 134 | ||
| 126 | <h3>version 0.4.5, released 18-Dec-2024</h3> | 135 | <h3>version 0.4.5, released 18-Dec-2024</h3> |
| 127 | 136 | ||
| 128 | <ul> | 137 | <ul> |
| 129 | <li>Fix: suppress a warning when building with clang</li> | 138 | <li>Fix: suppress a warning when building with clang</li> |
| 130 | <li>Fix: do not rely on luaconf.h to include limits.h, fixes builds with latest LuaJIT (#38).</li> | 139 | <li>Fix: do not rely on <code>luaconf.h</code> to include <code>limits.h</code>, fixes builds with latest LuaJIT (#38).</li> |
| 131 | </ul> | 140 | </ul> |
| 132 | 141 | ||
| 133 | <h3>version 0.4.4, released 03-Sep-2024</h3> | 142 | <h3>version 0.4.4, released 03-Sep-2024</h3> |
| @@ -199,7 +208,7 @@ | |||
| 199 | </div> <!-- id="main" --> | 208 | </div> <!-- id="main" --> |
| 200 | <div id="about"> | 209 | <div id="about"> |
| 201 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 210 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 202 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 211 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 203 | </div> <!-- id="about" --> | 212 | </div> <!-- id="about" --> |
| 204 | </div> <!-- id="container" --> | 213 | </div> <!-- id="container" --> |
| 205 | </body> | 214 | </body> |
diff --git a/docs/topics/LICENSE.md.html b/docs/topics/LICENSE.md.html index 612cdb9..b7f5ac1 100644 --- a/docs/topics/LICENSE.md.html +++ b/docs/topics/LICENSE.md.html | |||
| @@ -94,7 +94,7 @@ SOFTWARE.</p> | |||
| 94 | </div> <!-- id="main" --> | 94 | </div> <!-- id="main" --> |
| 95 | <div id="about"> | 95 | <div id="about"> |
| 96 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> | 96 | <i>generated by <a href="http://github.com/lunarmodules/LDoc">LDoc 1.5.0</a></i> |
| 97 | <i style="float:right;">Last updated 2025-03-12 15:17:50 </i> | 97 | <i style="float:right;">Last updated 2025-04-10 10:12:11 </i> |
| 98 | </div> <!-- id="about" --> | 98 | </div> <!-- id="about" --> |
| 99 | </div> <!-- id="container" --> | 99 | </div> <!-- id="container" --> |
| 100 | </body> | 100 | </body> |
diff --git a/rockspecs/luasystem-0.6.0-1.rockspec b/rockspecs/luasystem-0.6.0-1.rockspec new file mode 100644 index 0000000..21c2dc0 --- /dev/null +++ b/rockspecs/luasystem-0.6.0-1.rockspec | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | local package_name = "luasystem" | ||
| 2 | local package_version = "0.6.0" | ||
| 3 | local rockspec_revision = "1" | ||
| 4 | local github_account_name = "lunarmodules" | ||
| 5 | local github_repo_name = "luasystem" | ||
| 6 | |||
| 7 | |||
| 8 | package = package_name | ||
| 9 | version = package_version.."-"..rockspec_revision | ||
| 10 | |||
| 11 | source = { | ||
| 12 | url = "git+https://github.com/"..github_account_name.."/"..github_repo_name..".git", | ||
| 13 | branch = (package_version == "scm") and "master" or nil, | ||
| 14 | tag = (package_version ~= "scm") and "v"..package_version or nil, | ||
| 15 | } | ||
| 16 | |||
| 17 | description = { | ||
| 18 | summary = 'Platform independent system calls for Lua.', | ||
| 19 | detailed = [[ | ||
| 20 | Adds a Lua API for making platform independent system calls. | ||
| 21 | ]], | ||
| 22 | license = 'MIT <http://opensource.org/licenses/MIT>', | ||
| 23 | homepage = "https://github.com/"..github_account_name.."/"..github_repo_name, | ||
| 24 | } | ||
| 25 | |||
| 26 | dependencies = { | ||
| 27 | 'lua >= 5.1', | ||
| 28 | } | ||
| 29 | |||
| 30 | local function make_platform(plat) | ||
| 31 | local defines = { | ||
| 32 | linux = { }, | ||
| 33 | unix = { }, | ||
| 34 | macosx = { }, | ||
| 35 | win32 = { "WINVER=0x0600", "_WIN32_WINNT=0x0600" }, | ||
| 36 | mingw32 = { "WINVER=0x0600", "_WIN32_WINNT=0x0600" }, | ||
| 37 | } | ||
| 38 | local libraries = { | ||
| 39 | linux = { "rt" }, | ||
| 40 | unix = { }, | ||
| 41 | macosx = { }, | ||
| 42 | win32 = { "advapi32", "winmm", "bcrypt" }, | ||
| 43 | mingw32 = { }, | ||
| 44 | } | ||
| 45 | local libdirs = { | ||
| 46 | linux = nil, | ||
| 47 | unix = nil, | ||
| 48 | macosx = nil, | ||
| 49 | win32 = nil, | ||
| 50 | mingw32 = { }, | ||
| 51 | } | ||
| 52 | return { | ||
| 53 | modules = { | ||
| 54 | ['system.core'] = { | ||
| 55 | sources = { | ||
| 56 | 'src/core.c', | ||
| 57 | 'src/compat.c', | ||
| 58 | 'src/time.c', | ||
| 59 | 'src/environment.c', | ||
| 60 | 'src/random.c', | ||
| 61 | 'src/term.c', | ||
| 62 | 'src/bitflags.c', | ||
| 63 | 'src/wcwidth.c', | ||
| 64 | }, | ||
| 65 | defines = defines[plat], | ||
| 66 | libraries = libraries[plat], | ||
| 67 | libdirs = libdirs[plat], | ||
| 68 | }, | ||
| 69 | }, | ||
| 70 | } | ||
| 71 | end | ||
| 72 | |||
| 73 | build = { | ||
| 74 | type = 'builtin', | ||
| 75 | platforms = { | ||
| 76 | linux = make_platform('linux'), | ||
| 77 | unix = make_platform('unix'), | ||
| 78 | macosx = make_platform('macosx'), | ||
| 79 | win32 = make_platform('win32'), | ||
| 80 | mingw32 = make_platform('mingw32'), | ||
| 81 | }, | ||
| 82 | modules = { | ||
| 83 | ['system.init'] = 'system/init.lua', | ||
| 84 | }, | ||
| 85 | } | ||
| @@ -4,7 +4,7 @@ | |||
| 4 | #include <lua.h> | 4 | #include <lua.h> |
| 5 | #include <lauxlib.h> | 5 | #include <lauxlib.h> |
| 6 | 6 | ||
| 7 | #define LUASYSTEM_VERSION "LuaSystem 0.5.1" | 7 | #define LUASYSTEM_VERSION "LuaSystem 0.6.0" |
| 8 | 8 | ||
| 9 | #ifdef _WIN32 | 9 | #ifdef _WIN32 |
| 10 | #define LUAEXPORT __declspec(dllexport) | 10 | #define LUAEXPORT __declspec(dllexport) |
