- Attach permission checks to the first argument (so the literal
command name) rather than the last argument. This fixes commands
showing up when they shouldn't.
- HelpingArgumentBuilder now inherits permissions of its leaf nodes.
This only really impacts the "track" subcommand.
- Don't autocomplete the computer selector for the "queue" subcommand.
As everyone has permission for this command, it's possible to find
all computer ids and labels in the world.
I'm in mixed minds about this, but don't think this is an exploit -
computer ids/labels are sent to in-range players so shouldn't be
considered secret - but worth patching none-the-less.
- Improve REPL's handling of expressions
(655d5aeca80d1b0a91fb346296447c861f01b7b1)
- Some tiny optimisations to the window API
(4accda6b8ef75d0c2e9ff0d1cc2c23bb3a21465e)
- Be lazy in reporting errors in the lexer
(54ab98473f92f85dda8249f4b74ea6a1d3a839a2)
- Update lua.lua require logic.
(88f0c441525d11b194fd432df910e163b0887f9d)
- Fix GPS returning nan on duplicate positions.
- Distinguish between all parsers passing and failing.
- Improve several comma related parse errors.
- Ignore metatables in textutils.serialize.
- Detect common audio containers in "speaker".
Co-authored-by: Wojbie <Wojbie@gmail.com>
Given an input like f(x), which is both a valid statement and
expression, both parsers would accept the whole input. However, this was
treated the same as both parsers rejecting the input, resulting in a
crash when trying to print the error.
We now return immediately when any parser accepts the input.
Fixes#1354
The main purpose of this is to backport the improved parse/runtime
errors to older versions. I think they're sufficiently useful that we
should try to make it as widely available as possible.
We've been running them for a week now on SC3 and the released version
and not seen any issues, so I think it's probably stable enough.
This is a pretty lazy commit: I ended up copying the whole ROM over and
then picking up a few other related changes along the way.
- Trim spaces from file paths (b8fce1eecccae652d1128fcf50b57a09eda69dca)
- Correctly format 12AM/PM with
%I (9f48395596131a932fbc37644fe1e4b15ffb6a61)
- Fix http.request and htpt.websocketAsync not handling a few failure
edge-cases correctly (3b42f22a4f36dad0c53bb238e64aada352a063cf).
- Move the internal modules into the main package path, hidden under
cc.internal (34a31abd9ce9106b84549ade2cc30524016107c9).
- Gather code coverage in Java instead of
Lua (28a55349a961c0739adc9d52fc3761c463678be9).
- Make error messages in edit more
obvious (8cfbfe7ceb35e87579b4f6fe8c892e6bce9ed0eb).
- Make mcfly's test methods global. This means we don't need to pass
stub everywhere (7335a892b5742f7879a4ca07f059cd7b8136aa3a).
- Improve runtime and parse errors. This comes from numerous commits,
but chiefly a12b405acfb63d58d6a895e8a8a139ef5c42fbfc, and
55024121817bb112ea68d30e7cb5511a16ccfc94.
- Hide the internal redirect methods in
multishell (33b6f383397d51074bd504a4067253ae65f5b77c).
Note this does /not/ include the shebang changes (sorry Emma!). I've
tried to avoid adding any user-controllable features, mostly because I
don't know how to handle the versioning otherwise :).
- Switch to using OptionalInt/OptionalLong instead of @Nullable
Long/Integers. I know IntelliJ complains, but it avoids the risk of
implicit unboxing.
- Instead of mutating PartialOptions, we now define a merge() function
which returns the new options. This simplifies the logic in
AddressRule a whole bunch.