summaryrefslogtreecommitdiff
path: root/Src/Modules/parameter.c
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2013-10-09 17:57:03 +0200
committerMikael Magnusson <mikachu@gmail.com>2013-10-11 14:57:57 +0200
commitfa033326357218652310c4510898be622b871c4f (patch)
treeb9a1e5a61bbdadaac6db1c3315ee02b5a227f03e /Src/Modules/parameter.c
parentd0fe73c5fb87ff8388837a508b903f7e93b0b2c0 (diff)
downloadzsh-fa033326357218652310c4510898be622b871c4f.tar.gz
zsh-fa033326357218652310c4510898be622b871c4f.zip
31805: Add $patchars and $dis_patchars to zsh/parameter module
Diffstat (limited to 'Src/Modules/parameter.c')
-rw-r--r--Src/Modules/parameter.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c
index a029c9cb4..22148f991 100644
--- a/Src/Modules/parameter.c
+++ b/Src/Modules/parameter.c
@@ -759,6 +759,38 @@ disreswordsgetfn(UNUSED(Param pm))
return getreswords(DISABLED);
}
+/* Functions for the patchars special parameter. */
+
+/**/
+static char **
+getpatchars(int dis)
+{
+ int i;
+ char **ret, **p;
+
+ p = ret = (char **) zhalloc(ZPC_COUNT * sizeof(char *));
+
+ for (i = 0; i < ZPC_COUNT; i++)
+ if (zpc_strings[i] && !dis == !zpc_disables[i])
+ *p++ = dupstring(zpc_strings[i]);
+
+ *p = NULL;
+
+ return ret;
+}
+
+static char **
+patcharsgetfn(UNUSED(Param pm))
+{
+ return getpatchars(0);
+}
+
+static char **
+dispatcharsgetfn(UNUSED(Param pm))
+{
+ return getpatchars(1);
+}
+
/* Functions for the options special parameter. */
/**/
@@ -2018,6 +2050,10 @@ static const struct gsu_array reswords_gsu =
{ reswordsgetfn, arrsetfn, stdunsetfn };
static const struct gsu_array disreswords_gsu =
{ disreswordsgetfn, arrsetfn, stdunsetfn };
+static const struct gsu_array patchars_gsu =
+{ patcharsgetfn, arrsetfn, stdunsetfn };
+static const struct gsu_array dispatchars_gsu =
+{ dispatcharsgetfn, arrsetfn, stdunsetfn };
static const struct gsu_array dirs_gsu =
{ dirsgetfn, dirssetfn, stdunsetfn };
static const struct gsu_array historywords_gsu =
@@ -2038,6 +2074,8 @@ static struct paramdef partab[] = {
&pmdisfunctions_gsu, getpmdisfunction, scanpmdisfunctions),
SPECIALPMDEF("dis_galiases", 0,
&pmdisgaliases_gsu, getpmdisgalias, scanpmdisgaliases),
+ SPECIALPMDEF("dis_patchars", PM_ARRAY|PM_READONLY,
+ &dispatchars_gsu, NULL, NULL),
SPECIALPMDEF("dis_reswords", PM_ARRAY|PM_READONLY,
&disreswords_gsu, NULL, NULL),
SPECIALPMDEF("dis_saliases", 0,
@@ -2072,6 +2110,8 @@ static struct paramdef partab[] = {
&pmoptions_gsu, getpmoption, scanpmoptions),
SPECIALPMDEF("parameters", PM_READONLY,
NULL, getpmparameter, scanpmparameters),
+ SPECIALPMDEF("patchars", PM_ARRAY|PM_READONLY,
+ &patchars_gsu, NULL, NULL),
SPECIALPMDEF("reswords", PM_ARRAY|PM_READONLY,
&reswords_gsu, NULL, NULL),
SPECIALPMDEF("saliases", 0,