diff options
author | Daniel Shahaf <d.s@daniel.shahaf.name> | 2020-03-19 21:16:12 +0000 |
---|---|---|
committer | Daniel Shahaf <d.s@daniel.shahaf.name> | 2020-03-22 02:23:52 +0000 |
commit | e37df255c166efdda25d87b9d23f5c492cc02a68 (patch) | |
tree | 14f05151687dc082eaf771624f32f20b3487fcf3 /Src | |
parent | 338a4a299ad9b5c2e925a5c7ec38d1a6c811c4ed (diff) | |
download | zsh-e37df255c166efdda25d87b9d23f5c492cc02a68.tar.gz zsh-e37df255c166efdda25d87b9d23f5c492cc02a68.tar.xz zsh-e37df255c166efdda25d87b9d23f5c492cc02a68.zip |
45583/0005: internal: Document the WC_FUNCDEF data layout for anonymous functions with arguments (follow-up to 29492)
Diffstat (limited to 'Src')
-rw-r--r-- | Src/parse.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Src/parse.c b/Src/parse.c index a4f83b573..6e79f6c4b 100644 --- a/Src/parse.c +++ b/Src/parse.c @@ -175,6 +175,10 @@ struct heredocs *hdocs; * - followed by number of patterns for body * - followed by codes for body * - followed by strings for body + * - if number of names is 0, followed by: + * - the offset to the end of the funcdef + * - the number of arguments to the function + * - the arguments to the function * * WC_FOR * - data contains type (list, ...) and offset to after body @@ -1734,8 +1738,9 @@ par_funcdef(int *cmplx) ecbuf[p] = WCB_FUNCDEF(ecused - 1 - p); + /* If it's an anonymous function... */ if (num == 0) { - /* Unnamed function */ + /* ... look for arguments to it. */ int parg = ecadd(0); ecadd(0); while (tok == STRING) { @@ -2110,8 +2115,9 @@ par_simple(int *cmplx, int nr) ecbuf[p] = WCB_FUNCDEF(ecused - 1 - p); + /* If it's an anonymous function... */ if (argc == 0) { - /* Unnamed function */ + /* ... look for arguments to it. */ int parg = ecadd(0); ecadd(0); while (tok == STRING || IS_REDIROP(tok)) { |