Yeah, this was needed in the *header*.
God I hate headers.
Fixes#6604, for real this time
(cherry picked from commit f79ff7209627cc12e55cadf8b275a00ed4a378e7)
This was lost in 35671dd9f094cf8c643c9cf224c27a2b55578937.
Even tho we plan to drop caret redirection, while it's there it should
fully work.
Fixes#6591.
(cherry picked from commit 13b470af0756dcdacaeee8a69426e1ac8c26ebbb)
Glob ordering is used in a variety of places, including figuring out
conf.d and really needs to be stable.
Other ordering, like completions, is really just cosmetic and can
change if it makes for a nicer experience.
So we uncouple it by copying the wcsfilecmp from 3.0.2, which will
return the ordering to what it was in that release.
Fixes#6593
(cherry picked from commit f053cd27c61c687c19b80b18dd0ee9331effb890)
Everything seems to be working, so instead of crashing just print an
error and return.
Fixes#6597
(cherry picked from commit ceba851d44dea68b9e1b2b551e37fd6834767357)
Perform an ad-hoc code signing with the hardened runtime.
This ensures that these executables can pass notarization.
The code signing ID is controlled by the MAC_CODESIGN_ID CMake
cache variable.
The `function --on-job-exit caller` feature allows a command substitution
to observe when the parent job exits. This has never worked very well - in
particular it is based on job IDs, so a function that observes this will
run multiple times. Implement it properly.
Do this by having a not-recycled "internal job id".
This is only used by psub, but ensure it works properly none-the-less.
faho:
Backport of 6bf9ae9aeb654985384426872998707bb6851298
Fixes#6613
- Define it before the headers so they can pick the variadic tparm
prototype.
- We need a TPARM_VARARGS define, add it to config_cmake.h.
- Move & adjust comment - put it near the code, and mentiont that
NetBSD curses doesn't need the kludge.
Now variadic tparm is used on NetBSD instead of the Solaris kludge.
Prior to this commit, when executing a builtin, we mark the job as not
foreground. After this commit we no longer modify the foreground state
of the job just for the builtin.
There was the following comment:
// Since this may be the foreground job, and since a builtin may execute another
// foreground job, we need to pretend to suspend this job while running the
// builtin, in order to avoid a situation where two jobs are running at once.
The concern seemed to be in the `bg` and `fg` builtins, which might attempt
to foreground or background the jobs associated with `bg` and `fg` themselves.
But the builtins run before the job is marked constructed, so it cannot
actually happen.
Bravely remove this code.