Windows' CreateProcess() function does weird things when given quoted
args, therefore avoid quoting when possible.
* el-get-core.el (el-get-no-shell-quote): New constant.
(el-get-shell-quote-program): Don't quote if program-name matches
el-get-no-shell-quote.
(el-get-maybe-shell-quote-argument): New function.
(el-get-start-process-list): Use it.
Avoid the temptation to handle missing exes specially in the win32 case.
* el-get-core.el (el-get-shell-quote-program): If we can't executable-find
the program, just shell-quote-argument it (as in non-Windows case).
instead of package. This way we can work with non el-get packages
too (provided we can find their direectory).
* el-get-core.el (el-get-package-files, el-get-package-features): Take
a directory instead of el-get package symbol.
* el-get.el (el-get-reload): Pass package directory instead of package
symbol.
* el-get-core.el (el-get-shell-quote-program): Call `executable-find' on
`program-name' before passing it to `w32-short-file-name'; otherwise
we could get nil.
Github: fixes#1979
Quoting bat filenames doesn't work if arguments are also quoted.
* el-get-core.el (el-get-shell-quote-program): new function.
(el-get-start-process-list): use it.
el-get-build should use :shell t to support "./configure" commands,
but el-get-start-process-list should shell-quote-argument the :program
argument to avoid problems with executables in funny paths.
Conflicts:
el-get-build.el
el-get-core.el
Move more variables to el-get-custom.el, add requires or
declare-functions as needed.
There were a few places that appeared to be actual bugs: wrong or
missing variable names.
New definition is more canonical elisp, and uses two new el-get-core
functions "el-get-plist-keys" and "el-get-keyword-name".
Intended to improve #1412.
`package-desc-vers' is obsolete (replaced by `package-desc-version')
and `package-alist' has a different layout.
el-get-elpa also calls `el-get-rmdir' in some cases with
post-remove-fun as nil.
* methods/el-get-elpa.el (el-get-elpa-update-available-p): Use
`package-desc-version' if available.
* el-get-core.el (el-get-rmdir): Only call post-remove-fun if non-nil.
Signed-off-by: Rüdiger Sonderfeld <ruediger@c-plusplus.de>
In "el-get-start-process-list", increase "max-specpdl-size" by 100 for
each command in in the list. This allows
"el-get-start-process-list" (but not other functions) to recurse
indefinitely.
This is needed for the emacs-goodies-el recipe, which generates many
build commands and will overflow the default of max-specpdl-size
during the build.
This prevents Emacs from inserting "..." in place of very deep or long
data structures, which could corrupt the status file in some cases.
This is done by defining a wrapper function "el-get-print-to-string",
which el-get should use for all "critical" stringification tasks.
As noted in #689.
It encapsulates the following common pattern, used several times in
el-get to allow recipe properties to override defaults if present:
(if (plist-member plist prop)
(plist-get plist prop)
default)
The new implementation no longer depends on the :type property of the
package, meaning that you can actually `el-get-remove' a package whose type
changed in its recipe.
That cleans up the code and allow not to depend on the :reload property, and
cater with some edge cases like features currently loaded but no longer
present in the updated package.
Conflicts:
el-get.el
Build commands are supposed to be either strings or lists of strings.
But the code for deciding whether to eval the :build property only
checks for a string, not a list. This commit fixes this, so that a
build property whose commands are all lists of strings should no
longer cause an error. Evaluation of the :build property now only
happens when the car is a symbol, since that is the only time that
evaluation would not result in an error.
Also in this commit:
* Ensure build commands are all strings or lists of strings and raise
an error otherwise. The check happens after flattening, so nested
lists of strings should also pass.
* A few syntax fixes
* Add a function "el-get-list-of-strings-p"