mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-11-27 02:50:57 +01:00
30351 + 30352: metafy strings on import into zsh variables
This commit is contained in:
parent
afa112474c
commit
a76c8de44c
3 changed files with 47 additions and 17 deletions
|
|
@ -1,3 +1,9 @@
|
||||||
|
2012-03-13 Peter Stephenson <pws@csr.com>
|
||||||
|
|
||||||
|
* 30351 changed as in 30352: Src/params.c, Src/utils.c: metafy
|
||||||
|
scalar and array parameter values as they are imported from
|
||||||
|
strings defined outside zsh.
|
||||||
|
|
||||||
2012-03-07 Peter Stephenson <pws@csr.com>
|
2012-03-07 Peter Stephenson <pws@csr.com>
|
||||||
|
|
||||||
* users/16865: Doc/Zsh/cond.yo: note that -eq and friends are
|
* users/16865: Doc/Zsh/cond.yo: note that -eq and friends are
|
||||||
|
|
@ -16094,5 +16100,5 @@
|
||||||
|
|
||||||
*****************************************************
|
*****************************************************
|
||||||
* This is used by the shell to define $ZSH_PATCHLEVEL
|
* This is used by the shell to define $ZSH_PATCHLEVEL
|
||||||
* $Revision: 1.5607 $
|
* $Revision: 1.5608 $
|
||||||
*****************************************************
|
*****************************************************
|
||||||
|
|
|
||||||
34
Src/params.c
34
Src/params.c
|
|
@ -698,16 +698,18 @@ createparamtable(void)
|
||||||
* So allow the user to set it in the special cases where it's
|
* So allow the user to set it in the special cases where it's
|
||||||
* useful.
|
* useful.
|
||||||
*/
|
*/
|
||||||
setsparam("TMPPREFIX", ztrdup(DEFAULT_TMPPREFIX));
|
setsparam("TMPPREFIX", ztrdup_metafy(DEFAULT_TMPPREFIX));
|
||||||
setsparam("TIMEFMT", ztrdup(DEFAULT_TIMEFMT));
|
setsparam("TIMEFMT", ztrdup_metafy(DEFAULT_TIMEFMT));
|
||||||
setsparam("WATCHFMT", ztrdup(default_watchfmt));
|
setsparam("WATCHFMT", ztrdup_metafy(default_watchfmt));
|
||||||
|
|
||||||
hostnam = (char *)zalloc(256);
|
hostnam = (char *)zalloc(256);
|
||||||
gethostname(hostnam, 256);
|
gethostname(hostnam, 256);
|
||||||
setsparam("HOST", ztrdup(hostnam));
|
setsparam("HOST", ztrdup_metafy(hostnam));
|
||||||
zfree(hostnam, 256);
|
zfree(hostnam, 256);
|
||||||
|
|
||||||
setsparam("LOGNAME", ztrdup((str = getlogin()) && *str ? str : cached_username));
|
setsparam("LOGNAME",
|
||||||
|
ztrdup_metafy((str = getlogin()) && *str ?
|
||||||
|
str : cached_username));
|
||||||
|
|
||||||
#if !defined(HAVE_PUTENV) && !defined(USE_SET_UNSET_ENV)
|
#if !defined(HAVE_PUTENV) && !defined(USE_SET_UNSET_ENV)
|
||||||
/* Copy the environment variables we are inheriting to dynamic *
|
/* Copy the environment variables we are inheriting to dynamic *
|
||||||
|
|
@ -778,22 +780,22 @@ createparamtable(void)
|
||||||
if(uname(&unamebuf)) setsparam("CPUTYPE", ztrdup("unknown"));
|
if(uname(&unamebuf)) setsparam("CPUTYPE", ztrdup("unknown"));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
machinebuf = ztrdup(unamebuf.machine);
|
machinebuf = ztrdup_metafy(unamebuf.machine);
|
||||||
setsparam("CPUTYPE", machinebuf);
|
setsparam("CPUTYPE", machinebuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
setsparam("CPUTYPE", ztrdup("unknown"));
|
setsparam("CPUTYPE", ztrdup_metafy("unknown"));
|
||||||
#endif
|
#endif
|
||||||
setsparam("MACHTYPE", ztrdup(MACHTYPE));
|
setsparam("MACHTYPE", ztrdup_metafy(MACHTYPE));
|
||||||
setsparam("OSTYPE", ztrdup(OSTYPE));
|
setsparam("OSTYPE", ztrdup_metafy(OSTYPE));
|
||||||
setsparam("TTY", ztrdup(ttystrname));
|
setsparam("TTY", ztrdup_metafy(ttystrname));
|
||||||
setsparam("VENDOR", ztrdup(VENDOR));
|
setsparam("VENDOR", ztrdup_metafy(VENDOR));
|
||||||
setsparam("ZSH_NAME", ztrdup(zsh_name));
|
setsparam("ZSH_NAME", ztrdup_metafy(zsh_name));
|
||||||
setsparam("ZSH_VERSION", ztrdup(ZSH_VERSION));
|
setsparam("ZSH_VERSION", ztrdup_metafy(ZSH_VERSION));
|
||||||
setsparam("ZSH_PATCHLEVEL", ztrdup(ZSH_PATCHLEVEL));
|
setsparam("ZSH_PATCHLEVEL", ztrdup_metafy(ZSH_PATCHLEVEL));
|
||||||
setaparam("signals", sigptr = zalloc((SIGCOUNT+4) * sizeof(char *)));
|
setaparam("signals", sigptr = zalloc((SIGCOUNT+4) * sizeof(char *)));
|
||||||
for (t = sigs; (*sigptr++ = ztrdup(*t++)); );
|
for (t = sigs; (*sigptr++ = ztrdup_metafy(*t++)); );
|
||||||
|
|
||||||
noerrs = 0;
|
noerrs = 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
22
Src/utils.c
22
Src/utils.c
|
|
@ -4012,6 +4012,28 @@ metafy(char *buf, int len, int heap)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Duplicate a string, metafying it as we go.
|
||||||
|
*
|
||||||
|
* Typically, this is used only for strings imported from outside
|
||||||
|
* zsh, as strings internally are either already metafied or passed
|
||||||
|
* around with an associated length.
|
||||||
|
*/
|
||||||
|
/**/
|
||||||
|
mod_export char *
|
||||||
|
ztrdup_metafy(const char *s)
|
||||||
|
{
|
||||||
|
/* To mimic ztrdup() behaviour */
|
||||||
|
if (!s)
|
||||||
|
return NULL;
|
||||||
|
/*
|
||||||
|
* metafy() does lots of different things, so the pointer
|
||||||
|
* isn't const. Using it with META_DUP should be safe.
|
||||||
|
*/
|
||||||
|
return metafy((char *)s, -1, META_DUP);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Take a null-terminated, metafied string in s into a literal
|
* Take a null-terminated, metafied string in s into a literal
|
||||||
* representation by converting in place. The length is in *len
|
* representation by converting in place. The length is in *len
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue