Hello, again.
Sheesh. Its starting to come back to me, this 'c' stuff.
It looks like the recursion is starting *after* all the environment
variables are initially processed, when what looks to my uneducated
eye the elisp list constructed in 'Vprocess_environment' from strings
of variable names/values is being copied to 'Vinitial_environment'.
'Fcopy_sequence' is used to do the copy, which invokes 'Fconcat' (!)
which invokes 'concat' which invokes 'Flength', which bombs with
'wrong_type_argument'.
IIUC, the intent of 'concat' is to assemble a single result string
from inputs that may be strings and/or lists/vectors of integers (all
presumably representing characters).
The comments in the code indicate that the intent is to make a copy of
the environment array rather than one long string, so it does appear
that something is going pretty wrong here.
Not being familiar with Emacs internals, I really can't say for sure,
but is it possible that some sort of type information is getting lost
here, so that 'concat' is invoked by mistake?
===========================================
void
set_initial_environment ()
{
register char **envp;
#ifndef CANNOT_DUMP
if (initialized)
#endif
{
for (envp = environ; *envp; envp++)
Vprocess_environment = Fcons (build_string (*envp),
Vprocess_environment);
/* Ideally, the `copy' shouldn't be necessary, but it seems it's
frequent
to use `delete' and friends on process-environment. */
Vinitial_environment = Fcopy_sequence (Vprocess_environment);
}
}
============================================
Thanks for your time,
Chris Hall
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Emacs-app-dev- mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emacs-app-dev-