From b06b24dac90e02df9a72a234ce882b7e29c0c1ff Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Wed, 3 Mar 2021 00:18:24 +0000 Subject: [PATCH 3/4] FAQ: 3.31: Move two paragraphs unchanged, reordering them Factored out from the next patch for readability of the diff. The answer, as it stands in this commit, doesn't flow correctly. In order to keep the diffs small and easy to follow, this commit simply adds a TODO to record this issue, a TODO which is fixed by the next commit in this series (the child of this commit). Thus, a request: DEAR PEOPLE FROM THE FUTURE: Please don't create new branches off this commit; create them off the parent commit or off the child commit instead. Thank you. --- Etc/FAQ.yo | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/Etc/FAQ.yo b/Etc/FAQ.yo index f0a50489c..e444c0b77 100644 --- a/Etc/FAQ.yo +++ b/Etc/FAQ.yo @@ -2065,6 +2065,22 @@ label(331) many other pairs of closely-related languages, such as Python 2 and Python 3; C and C++; and even C89 and C11.) + When bash and zsh behave differently on the same input, whether zsh's + behaviour is a bug does not depend on what bash does on the same + input; rather, it depends on what zsh's user manual specifies. + (By way of comparison, it's not a bug in Emacs that mytt(:q!) doesn't + cause it to exit.) + + Since the bash and zsh languages do have a common subset, it is + feasible to write non-trivial plugins that would run under either of + them, if one is sufficiently familiar with both of them. However, + a difference between bash's behaviour and zsh's does not imply that + zsh has a bug. It myem(might) be a bug in zsh, but it might also be + a bug in bash, or simply a difference that isn't a bug in either shell + (see link(3.1)(31) for an example). + + COMMENT(TODO: Move here the paragraph about "That's the answer for..." and reverse it) + So, don't run bash scripts under zsh. If the scripts were written for bash, run them in bash. There's absolutely no problem with having mytt(#!/usr/bin/env bash) scripts even if mytt(zsh) is your shell for @@ -2076,6 +2092,7 @@ label(331) learning curve. Once you're used to zsh, you can decide for each script whether to port it to zsh or keep it as-is. + COMMENT(TODO: That's the paragraph the comment above refers to) That's the answer for myem(scripts), i.e., for external commands that are located in tt($PATH), or located elsewhere and are executed by giving their path explicitly (as in mytt(ls), mytt(/etc/rc.d/sshd), @@ -2085,20 +2102,6 @@ label(331) pasted interactively at the shell prompt emdash() the answer is different. - Since the bash and zsh languages do have a common subset, it is - feasible to write non-trivial plugins that would run under either of - them, if one is sufficiently familiar with both of them. However, - a difference between bash's behaviour and zsh's does not imply that - zsh has a bug. It myem(might) be a bug in zsh, but it might also be - a bug in bash, or simply a difference that isn't a bug in either shell - (see link(3.1)(31) for an example). - - When bash and zsh behave differently on the same input, whether zsh's - behaviour is a bug does not depend on what bash does on the same - input; rather, it depends on what zsh's user manual specifies. - (By way of comparison, it's not a bug in Emacs that mytt(:q!) doesn't - cause it to exit.) - In summary, if you'd like to run a bash script or plugin under zsh, you must port the script or plugin properly, reviewing it line by line for differences between the two