Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: pws-25: typeset +f, functions +
- X-seq: zsh-workers 6987
- From: Peter Stephenson <pws@xxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx (Zsh hackers list)
- Subject: PATCH: pws-25: typeset +f, functions +
- Date: Tue, 06 Jul 1999 14:53:43 +0200
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
If you do `typeset +x' or `typeset -x +' you get just the names of the
exported parameters. Consequently, `typeset +f' and `functions +'
(functions is claimed to be equivalent to `typeset -f') should just print
the names of the functions.
This is probably a candidate for 3.0.6 if Bart agrees it's a bug fix.
--- Src/builtin.c.pf Tue Jul 6 14:29:18 1999
+++ Src/builtin.c Tue Jul 6 14:47:06 1999
@@ -1942,7 +1942,7 @@
Comp com;
Shfunc shf;
int i, returnval = 0;
- int on = 0, off = 0;
+ int on = 0, off = 0, pflags = 0;
/* Do we have any flags defined? */
if (ops['u'] == 1)
@@ -1963,13 +1963,17 @@
return 1;
}
+ if (ops['f'] == 2 || ops['+'])
+ pflags |= PRINT_NAMEONLY;
+
/* If no arguments given, we will print functions. If flags *
* are given, we will print only functions containing these *
* flags, else we'll print them all. */
if (!*argv) {
if (ops['U'] && !ops['u'])
on &= ~PM_UNDEFINED;
- scanhashtable(shfunctab, 1, on|off, DISABLED, shfunctab->printnode, 0);
+ scanhashtable(shfunctab, 1, on|off, DISABLED, shfunctab->printnode,
+ pflags);
return 0;
}
@@ -1982,7 +1986,8 @@
if ((com = parsereg(*argv))) {
/* with no options, just print all functions matching the glob pattern */
if (!(on|off)) {
- scanmatchtable(shfunctab, com, 0, DISABLED, shfunctab->printnode, 0);
+ scanmatchtable(shfunctab, com, 0, DISABLED,
+ shfunctab->printnode, pflags);
} else {
/* apply the options to all functions matching the glob pattern */
for (i = 0; i < shfunctab->hsize; i++) {
@@ -2009,7 +2014,7 @@
shf->flags = (shf->flags | (on & ~PM_UNDEFINED)) & ~off;
else
/* no flags, so just print */
- shfunctab->printnode((HashNode) shf, 0);
+ shfunctab->printnode((HashNode) shf, pflags);
} else if (on & PM_UNDEFINED) {
/* Add a new undefined (autoloaded) function to the *
* hash table with the corresponding flags set. */
--
Peter Stephenson <pws@xxxxxxxxxxxxxxxxx> Tel: +39 050 844536
WWW: http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy
Messages sorted by:
Reverse Date,
Date,
Thread,
Author