diff options
Diffstat (limited to 'Src')
-rw-r--r-- | Src/Builtins/rlimits.mdd | 1 | ||||
-rw-r--r-- | Src/builtin.c | 11 | ||||
-rw-r--r-- | Src/init.c | 1 | ||||
-rw-r--r-- | Src/mkbltnmlst.sh | 40 |
4 files changed, 43 insertions, 10 deletions
diff --git a/Src/Builtins/rlimits.mdd b/Src/Builtins/rlimits.mdd index 63ca7f9f3..ca9fa8b84 100644 --- a/Src/Builtins/rlimits.mdd +++ b/Src/Builtins/rlimits.mdd @@ -3,6 +3,7 @@ link=either load=yes autofeatures="b:limit b:ulimit b:unlimit" +autofeatures_emu="b:ulimit" objects="rlimits.o" diff --git a/Src/builtin.c b/Src/builtin.c index 0ce3aef56..1eca82099 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -206,6 +206,17 @@ freebuiltinnode(HashNode hn) } } +/**/ +void +init_builtins(void) +{ + if (!EMULATION(EMULATE_ZSH)) { + HashNode hn = reswdtab->getnode2(reswdtab, "repeat"); + if (hn) + reswdtab->disablenode(hn, 0); + } +} + /* Make sure we have space for a new option and increment. */ #define OPT_ALLOC_CHUNK 16 diff --git a/Src/init.c b/Src/init.c index 812cd8409..02129ddbb 100644 --- a/Src/init.c +++ b/Src/init.c @@ -1443,6 +1443,7 @@ zsh_main(UNUSED(int argc), char **argv) setupvals(); init_signals(); init_bltinmods(); + init_builtins(); run_init_scripts(); init_misc(); diff --git a/Src/mkbltnmlst.sh b/Src/mkbltnmlst.sh index d9c5b13e9..c4611d8b3 100644 --- a/Src/mkbltnmlst.sh +++ b/Src/mkbltnmlst.sh @@ -37,18 +37,38 @@ for x_mod in $x_mods; do echo "/* non-linked-in known module \`$x_mod' */" linked=no esac - unset moddeps autofeatures + unset moddeps autofeatures autofeatures_emu . $srcdir/../$modfile if test "x$autofeatures" != x; then - echo " if (EMULATION(EMULATE_ZSH)) {" - echo " char *features[] = { " - for feature in $autofeatures; do - echo " \"$feature\"," - done - echo " NULL" - echo " }; " - echo " autofeatures(\"zsh\", \"$x_mod\", features, 0, 1);" - echo " }" + if test "x$autofeatures_emu" != x; then + echo " {" + echo " char *zsh_features[] = { " + for feature in $autofeatures; do + echo " \"$feature\"," + done + echo " NULL" + echo " }; " + echo " char *emu_features[] = { " + for feature in $autofeatures_emu; do + echo " \"$feature\"," + done + echo " NULL" + echo " }; " + echo " autofeatures(\"zsh\", \"$x_mod\"," + echo " EMULATION(EMULATE_ZSH) ? zsh_features : emu_features," + echo " 0, 1);" + echo " }" + else + echo " if (EMULATION(EMULATE_ZSH)) {" + echo " char *features[] = { " + for feature in $autofeatures; do + echo " \"$feature\"," + done + echo " NULL" + echo " }; " + echo " autofeatures(\"zsh\", \"$x_mod\", features, 0, 1);" + echo " }" + fi fi for dep in $moddeps; do echo " add_dep(\"$x_mod\", \"$dep\");" |