mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-06-15 21:11:25 +00:00
merge master + move changelog and news to readme
This commit is contained in:
commit
b52e2e5598
11 changed files with 325 additions and 88 deletions
|
|
@ -1,2 +1,14 @@
|
|||
-*-org-*-
|
||||
Please see https://github.com/jave/xwidget-aux for documentation.
|
||||
|
||||
* NEWS
|
||||
** Xwidgets : A new feature for embedding native widgets
|
||||
inside Emacs buffers. If you have gtk3 and webkit-devel installed,
|
||||
you can try the embedded webkit browser with m-x xwidget-webkit-browse-url.
|
||||
|
||||
|
||||
* lisp/Changelog
|
||||
|
||||
2015-02-01 Joakim Verona <joakim@verona.se>
|
||||
Support for the new Xwidget feature.
|
||||
* xwidget.el:
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
2015-02-03 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* NEWS: Document package.el's improved dependency-handling.
|
||||
|
||||
2015-01-29 Francesc Rocher <francesc.rocher@gmail.com>
|
||||
|
||||
* images/splash.svg, images/splash.png:
|
||||
|
|
|
|||
24
etc/NEWS
24
etc/NEWS
|
|
@ -65,12 +65,6 @@ so if you want to use it, you can always take a copy from an older Emacs.
|
|||
|
||||
|
||||
* Changes in Emacs 25.1
|
||||
** Xwidgets : A new feature for embedding native widgets
|
||||
inside Emacs buffers. If you have gtk3 and webkit-devel installed,
|
||||
you can try the embedded webkit browser with m-x xwidget-webkit-browse-url.
|
||||
** `package-install-from-buffer' and `package-install-file' work on directories.
|
||||
This follows the same rules as installing from a .tar file, except the
|
||||
-pkg file is optional.
|
||||
|
||||
** New function `custom-prompt-customize-unsaved-options' checks for
|
||||
unsaved customizations and prompts user to customize (if found).
|
||||
|
|
@ -203,6 +197,24 @@ Unicode standards.
|
|||
|
||||
|
||||
* Changes in Specialized Modes and Packages in Emacs 25.1
|
||||
** package.el
|
||||
*** `package-install-from-buffer' and `package-install-file' work on directories.
|
||||
This follows the same rules as installing from a .tar file, except the
|
||||
-pkg file is optional.
|
||||
|
||||
*** Packages which are dependencies of other packages cannot be deleted.
|
||||
The FORCE argument to `package-delete' overrides this.
|
||||
|
||||
*** New custom variable `package-selected-packages' tracks packages
|
||||
which were installed by the user (as opposed to installed as
|
||||
dependencies). This variable can also be manually customized.
|
||||
|
||||
*** New command `package-install-user-selected-packages' installs all
|
||||
packages from `package-selected-packages' which are currently missing.
|
||||
|
||||
*** New command `package-autoremove' removes all packages which were
|
||||
installed strictly as dependencies but are no longer needed.
|
||||
|
||||
** Shell
|
||||
|
||||
When you invoke `shell' interactively, the *shell* buffer will now
|
||||
|
|
|
|||
105
lisp/ChangeLog
105
lisp/ChangeLog
|
|
@ -1,11 +1,102 @@
|
|||
2015-02-01 Joakim Verona <joakim@verona.se>
|
||||
Support for the new Xwidget feature.
|
||||
* xwidget.el:
|
||||
2015-02-03 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
2015-02-01 Grégoire Jadi <daimrod@gmail.com>
|
||||
Support for testing xwidgets
|
||||
* emacs-parallel/parallell-remote.el, emacs-parallel/parallell-xwidget.el:
|
||||
* emacs-parallel/parallell.el:
|
||||
* emacs-lisp/package.el (package-delete): Document NOSAVE.
|
||||
(package--get-deps): delete-dups when ONLY is nil.
|
||||
(package-autoremove): Warn the user if `package-selected-packages'
|
||||
is empty.
|
||||
|
||||
(package--user-selected-p): New function.
|
||||
(package-delete, package-install, package-install-from-buffer):
|
||||
Use it
|
||||
(package-selected-packages): Mention it.
|
||||
|
||||
(package-initialize): Don't populate `package-selected-packages'.
|
||||
(package-install-user-selected-packages, package-autoremove):
|
||||
Special handling for empty `package-selected-packages'.
|
||||
(package-install): Fix when PKG is a package-desc.
|
||||
|
||||
(package-desc-status): Add "dependency" status to the Package
|
||||
Menu.
|
||||
(package-menu--status-predicate, package-menu--print-info)
|
||||
(package-menu-mark-delete, package-menu--find-upgrades)
|
||||
(package-menu--status-predicate, describe-package-1): Use it
|
||||
|
||||
(package--removable-packages): New function.
|
||||
(package-autoremove): Use it.
|
||||
(package-menu-execute): Offer to remove unneeded packages.
|
||||
|
||||
(package--read-pkg-desc, package-tar-file-info): Fix reference to
|
||||
tar-desc.
|
||||
|
||||
2015-02-03 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
* emacs-lisp/package.el (package-reinstall): Don't change package's selected status.
|
||||
(package-delete): New NOSAVE argument.
|
||||
|
||||
2015-02-03 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/tramp-sh.el (tramp-histfile-override): Fix docstring.
|
||||
(tramp-open-shell, tramp-maybe-open-connection): Set also
|
||||
HISTFILESIZE and HISTSIZE when needed. (Bug#19731)
|
||||
|
||||
2015-02-02 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* emacs-lisp/package.el (package--find-non-dependencies): New
|
||||
function.
|
||||
(package-initialize): Use it to populate `package-selected-packages'.
|
||||
(package-menu-execute): Clean unnecessary `and'.
|
||||
(package--get-deps): Fix returning duplicates.
|
||||
|
||||
2015-02-02 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/tramp-sh.el (tramp-histfile-override): Add another choice t.
|
||||
Use it as default.
|
||||
(tramp-open-shell, tramp-maybe-open-connection): Support it.
|
||||
(Bug#19731)
|
||||
|
||||
2015-02-02 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
* emacs-lisp/package.el (package-delete): Remove package from
|
||||
package-selected-packages.
|
||||
(package-autoremove): Remove unneeded variable.
|
||||
|
||||
2015-02-01 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* emacs-lisp/package.el (package-selected-packages): Fix :type
|
||||
(package-install): Rename ARG to MARK-SELECTED.
|
||||
(package--get-deps): Fix for indirect dependencies.
|
||||
(package-used-elsewhere-p): Rename to
|
||||
(package--used-elsewhere-p): New function.
|
||||
(package-reinstall, package-user-selected-packages-install)
|
||||
(package-autoremove): Use sharp-quote.
|
||||
(package-user-selected-packages-install): Reindent and rename to
|
||||
(package-install-user-selected-packages): New function.
|
||||
|
||||
2015-02-01 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
||||
* emacs-lisp/package.el: Don't allow deleting dependencies.
|
||||
|
||||
(package-used-elsewhere-p): New function.
|
||||
(package-delete): Use it, return now an error when trying to
|
||||
delete a package used as dependency by another package.
|
||||
|
||||
Add a reinstall package command.
|
||||
(package-reinstall): New function.
|
||||
|
||||
Add a package-autoremove command.
|
||||
(package-selected-packages): New user var.
|
||||
(package-install): Add an optional arg to notify interactive use.
|
||||
Fix docstring. Save installed package to
|
||||
packages-installed-directly.
|
||||
(package-install-from-buffer): Same.
|
||||
(package-user-selected-packages-install): Allow installing all
|
||||
packages in packages-installed-directly at once.
|
||||
(package--get-deps): New function.
|
||||
(package-autoremove): New function.
|
||||
(package-install-button-action): Call package-install with
|
||||
interactive arg.
|
||||
(package-menu-execute): Same but only for only for not installed
|
||||
packages.
|
||||
|
||||
2015-01-31 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
|
|
|
|||
|
|
@ -340,7 +340,11 @@ when installing a new package.
|
|||
This variable will be used by `package-autoremove' to decide
|
||||
which packages are no more needed.
|
||||
You can use it to (re)install packages on other machines
|
||||
by running `package-user-selected-packages-install'."
|
||||
by running `package-user-selected-packages-install'.
|
||||
|
||||
To check if a package is contained in this list here, use
|
||||
`package--user-selected-p', as it may populate the variable with
|
||||
a sane initial value."
|
||||
:group 'package
|
||||
:type '(repeat symbol))
|
||||
|
||||
|
|
@ -1189,6 +1193,17 @@ number."
|
|||
nil))
|
||||
alist)))
|
||||
|
||||
(defun package--user-selected-p (pkg)
|
||||
"Return non-nil if PKG is a package was installed by the user.
|
||||
PKG is a package name.
|
||||
This looks into `package-selected-packages', populating it first
|
||||
if it is still empty."
|
||||
(unless (consp package-selected-packages)
|
||||
(customize-save-variable
|
||||
'package-selected-packages
|
||||
(setq package-selected-packages (package--find-non-dependencies))))
|
||||
(memq pkg package-selected-packages))
|
||||
|
||||
(defun package-download-transaction (packages)
|
||||
"Download and install all the packages in PACKAGES.
|
||||
PACKAGES should be a list of package-desc.
|
||||
|
|
@ -1222,9 +1237,12 @@ to `package-selected-packages'."
|
|||
package-archive-contents))
|
||||
nil t))
|
||||
t)))
|
||||
(when (and mark-selected (not (memq pkg package-selected-packages)))
|
||||
(customize-save-variable 'package-selected-packages
|
||||
(cons pkg package-selected-packages)))
|
||||
(let ((name (if (package-desc-p pkg)
|
||||
(package-desc-name pkg)
|
||||
pkg)))
|
||||
(when (and mark-selected (not (package--user-selected-p name)))
|
||||
(customize-save-variable 'package-selected-packages
|
||||
(cons name package-selected-packages))))
|
||||
(package-download-transaction
|
||||
(if (package-desc-p pkg)
|
||||
(package-compute-transaction (list pkg)
|
||||
|
|
@ -1239,7 +1257,7 @@ to `package-selected-packages'."
|
|||
"Reinstall package: "
|
||||
(mapcar #'symbol-name
|
||||
(mapcar #'car package-alist))))))
|
||||
(package-delete (cadr (assq pkg package-alist)) t)
|
||||
(package-delete (cadr (assq pkg package-alist)) 'force 'nosave)
|
||||
(package-install pkg))
|
||||
|
||||
(defun package-strip-rcs-id (str)
|
||||
|
|
@ -1327,7 +1345,9 @@ The return result is a `package-desc'."
|
|||
(error "No package descriptor file found"))
|
||||
(with-current-buffer (tar--extract tar-desc)
|
||||
(unwind-protect
|
||||
(package--read-pkg-desc 'tar)
|
||||
(or (package--read-pkg-desc 'tar)
|
||||
(error "Can't find define-package in %s"
|
||||
(tar-header-name tar-desc)))
|
||||
(kill-buffer (current-buffer))))))
|
||||
|
||||
(defun package-dir-info ()
|
||||
|
|
@ -1360,13 +1380,12 @@ Return the pkg-desc, with desc-kind set to KIND."
|
|||
(unwind-protect
|
||||
(let* ((pkg-def-parsed (read (current-buffer)))
|
||||
(pkg-desc
|
||||
(if (not (eq (car pkg-def-parsed) 'define-package))
|
||||
(error "Can't find define-package in %s"
|
||||
(tar-header-name tar-desc))
|
||||
(when (eq (car pkg-def-parsed) 'define-package)
|
||||
(apply #'package-desc-from-define
|
||||
(append (cdr pkg-def-parsed))))))
|
||||
(setf (package-desc-kind pkg-desc) kind)
|
||||
pkg-desc)))
|
||||
(when pkg-desc
|
||||
(setf (package-desc-kind pkg-desc) kind)
|
||||
pkg-desc))))
|
||||
|
||||
|
||||
;;;###autoload
|
||||
|
|
@ -1401,10 +1420,9 @@ Downloads and installs required packages as needed."
|
|||
(package-download-transaction transaction))
|
||||
;; Install the package itself.
|
||||
(package-unpack pkg-desc)
|
||||
(unless (memq name package-selected-packages)
|
||||
(push name package-selected-packages)
|
||||
(unless (package--user-selected-p name)
|
||||
(customize-save-variable 'package-selected-packages
|
||||
package-selected-packages))
|
||||
(cons name package-selected-packages)))
|
||||
pkg-desc))
|
||||
|
||||
;;;###autoload
|
||||
|
|
@ -1435,24 +1453,29 @@ The file can either be a tar file or an Emacs Lisp file."
|
|||
(direct direct-deps)
|
||||
(separate (list direct-deps indirect-deps))
|
||||
(indirect indirect-deps)
|
||||
(t (append direct-deps indirect-deps)))))
|
||||
(t (delete-dups (append direct-deps indirect-deps))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun package-install-user-selected-packages ()
|
||||
"Ensure packages in `package-selected-packages' are installed.
|
||||
If some packages are not installed propose to install them."
|
||||
(interactive)
|
||||
(cl-loop for p in package-selected-packages
|
||||
unless (package-installed-p p)
|
||||
collect p into lst
|
||||
finally
|
||||
(if lst
|
||||
(when (y-or-n-p
|
||||
(format "%s packages will be installed:\n%s, proceed?"
|
||||
(length lst)
|
||||
(mapconcat #'symbol-name lst ", ")))
|
||||
(mapc #'package-install lst))
|
||||
(message "All your packages are already installed"))))
|
||||
;; We don't need to populate `package-selected-packages' before
|
||||
;; using here, because the outcome is the same either way (nothing
|
||||
;; gets installed).
|
||||
(if (not package-selected-packages)
|
||||
(message "`package-selected-packages' is empty, nothing to install")
|
||||
(cl-loop for p in package-selected-packages
|
||||
unless (package-installed-p p)
|
||||
collect p into lst
|
||||
finally
|
||||
(if lst
|
||||
(when (y-or-n-p
|
||||
(format "%s packages will be installed:\n%s, proceed?"
|
||||
(length lst)
|
||||
(mapconcat #'symbol-name lst ", ")))
|
||||
(mapc #'package-install lst))
|
||||
(message "All your packages are already installed")))))
|
||||
|
||||
(defun package--used-elsewhere-p (pkg-desc &optional pkg-list)
|
||||
"Non-nil if PKG-DESC is a dependency of a package in PKG-LIST.
|
||||
|
|
@ -1470,14 +1493,16 @@ with PKG-DESC entry removed."
|
|||
(and (memq pkg (mapcar #'car (package-desc-reqs (cadr p))))
|
||||
(car p))))))
|
||||
|
||||
(defun package-delete (pkg-desc &optional force)
|
||||
(defun package-delete (pkg-desc &optional force nosave)
|
||||
"Delete package PKG-DESC.
|
||||
|
||||
Argument PKG-DESC is a full description of package as vector.
|
||||
When package is used elsewhere as dependency of another package,
|
||||
refuse deleting it and return an error.
|
||||
If FORCE is non--nil package will be deleted even if it is used
|
||||
elsewhere."
|
||||
If FORCE is non-nil package will be deleted even if it is used
|
||||
elsewhere.
|
||||
If NOSAVE is non-nil, the package is not removed from
|
||||
`package-selected-packages'."
|
||||
(let ((dir (package-desc-dir pkg-desc))
|
||||
(name (package-desc-name pkg-desc))
|
||||
pkg-used-elsewhere-by)
|
||||
|
|
@ -1506,11 +1531,24 @@ elsewhere."
|
|||
(unless (cdr pkgs)
|
||||
(setq package-alist (delq pkgs package-alist))))
|
||||
;; Update package-selected-packages.
|
||||
(when (memq name package-selected-packages)
|
||||
(when (and (null nosave)
|
||||
(package--user-selected-p name))
|
||||
(customize-save-variable
|
||||
'package-selected-packages (remove name package-selected-packages)))
|
||||
(message "Package `%s' deleted." (package-desc-full-name pkg-desc))))))
|
||||
|
||||
(defun package--removable-packages ()
|
||||
"Return a list of names of packages no longer needed.
|
||||
These are packages which are neither contained in
|
||||
`package-selected-packages' nor a dependency of one that is."
|
||||
(let ((needed (cl-loop for p in package-selected-packages
|
||||
if (assq p package-alist)
|
||||
;; `p' and its dependencies are needed.
|
||||
append (cons p (package--get-deps p)))))
|
||||
(cl-loop for p in (mapcar #'car package-alist)
|
||||
unless (memq p needed)
|
||||
collect p)))
|
||||
|
||||
;;;###autoload
|
||||
(defun package-autoremove ()
|
||||
"Remove packages that are no more needed.
|
||||
|
|
@ -1519,21 +1557,22 @@ Packages that are no more needed by other packages in
|
|||
`package-selected-packages' and their dependencies
|
||||
will be deleted."
|
||||
(interactive)
|
||||
(let ((needed (cl-loop for p in package-selected-packages
|
||||
if (assq p package-alist)
|
||||
append (package--get-deps p))))
|
||||
(cl-loop for p in (mapcar #'car package-alist)
|
||||
unless (or (memq p needed)
|
||||
(memq p package-selected-packages))
|
||||
collect p into lst
|
||||
finally (if lst
|
||||
(when (y-or-n-p (format "%s packages will be deleted:\n%s, proceed? "
|
||||
(length lst)
|
||||
(mapconcat #'symbol-name lst ", ")))
|
||||
(mapc (lambda (p)
|
||||
(package-delete (cadr (assq p package-alist)) t))
|
||||
lst))
|
||||
(message "Nothing to autoremove")))))
|
||||
;; If `package-selected-packages' is nil, it would make no sense to
|
||||
;; try to populate it here, because then `package-autoremove' will
|
||||
;; do absolutely nothing.
|
||||
(when (or package-selected-packages
|
||||
(yes-or-no-p
|
||||
"`package-selected-packages' is empty! Really remove ALL packages? "))
|
||||
(let ((removable (package--removable-packages)))
|
||||
(if removable
|
||||
(when (y-or-n-p
|
||||
(format "%s packages will be deleted:\n%s, proceed? "
|
||||
(length removable)
|
||||
(mapconcat #'symbol-name removable ", ")))
|
||||
(mapc (lambda (p)
|
||||
(package-delete (cadr (assq p package-alist)) t))
|
||||
removable)
|
||||
(message "Nothing to autoremove"))))))
|
||||
|
||||
(defun package-archive-base (desc)
|
||||
"Return the archive containing the package NAME."
|
||||
|
|
@ -1659,9 +1698,6 @@ If optional arg NO-ACTIVATE is non-nil, don't activate packages."
|
|||
(unless no-activate
|
||||
(dolist (elt package-alist)
|
||||
(package-activate (car elt))))
|
||||
(when (and package-alist (not package-selected-packages))
|
||||
(customize-save-variable 'package-selected-packages
|
||||
(package--find-non-dependencies)))
|
||||
(setq package--initialized t))
|
||||
|
||||
|
||||
|
|
@ -1730,7 +1766,7 @@ If optional arg NO-ACTIVATE is non-nil, don't activate packages."
|
|||
'font-lock-face 'font-lock-builtin-face)
|
||||
"."))
|
||||
(pkg-dir
|
||||
(insert (propertize (if (equal status "unsigned")
|
||||
(insert (propertize (if (member status '("unsigned" "dependency"))
|
||||
"Installed"
|
||||
(capitalize status)) ;FIXME: Why comment-face?
|
||||
'font-lock-face 'font-lock-comment-face))
|
||||
|
|
@ -1996,7 +2032,8 @@ package PKG-DESC, add one. The alist is keyed with PKG-DESC."
|
|||
(lle (assq name package-load-list))
|
||||
(held (cadr lle))
|
||||
(version (package-desc-version pkg-desc))
|
||||
(signed (package-desc-signed pkg-desc)))
|
||||
(signed (or (not package-list-unsigned)
|
||||
(package-desc-signed pkg-desc))))
|
||||
(cond
|
||||
((eq dir 'builtin) "built-in")
|
||||
((and lle (null held)) "disabled")
|
||||
|
|
@ -2011,7 +2048,9 @@ package PKG-DESC, add one. The alist is keyed with PKG-DESC."
|
|||
(cond
|
||||
((not (file-exists-p (package-desc-dir pkg-desc))) "deleted")
|
||||
((eq pkg-desc (cadr (assq name package-alist)))
|
||||
(if (or (not package-list-unsigned) signed) "installed" "unsigned"))
|
||||
(if (not signed) "unsigned"
|
||||
(if (package--user-selected-p name)
|
||||
"installed" "dependency")))
|
||||
(t "obsolete")))
|
||||
(t
|
||||
(let* ((ins (cadr (assq name package-alist)))
|
||||
|
|
@ -2022,8 +2061,9 @@ package PKG-DESC, add one. The alist is keyed with PKG-DESC."
|
|||
"new" "available"))
|
||||
((version-list-< version ins-v) "obsolete")
|
||||
((version-list-= version ins-v)
|
||||
(if (or (not package-list-unsigned) signed)
|
||||
"installed" "unsigned"))))))))
|
||||
(if (not signed) "unsigned"
|
||||
(if (package--user-selected-p name)
|
||||
"installed" "dependency")))))))))
|
||||
|
||||
(defun package-menu--refresh (&optional packages keywords)
|
||||
"Re-populate the `tabulated-list-entries'.
|
||||
|
|
@ -2152,6 +2192,7 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])."
|
|||
(`"held" 'font-lock-constant-face)
|
||||
(`"disabled" 'font-lock-warning-face)
|
||||
(`"installed" 'font-lock-comment-face)
|
||||
(`"dependency" 'font-lock-comment-face)
|
||||
(`"unsigned" 'font-lock-warning-face)
|
||||
(_ 'font-lock-warning-face)))) ; obsolete.
|
||||
(list pkg-desc
|
||||
|
|
@ -2194,7 +2235,8 @@ If optional arg BUTTON is non-nil, describe its associated package."
|
|||
(defun package-menu-mark-delete (&optional _num)
|
||||
"Mark a package for deletion and move to the next line."
|
||||
(interactive "p")
|
||||
(if (member (package-menu-get-status) '("installed" "obsolete" "unsigned"))
|
||||
(if (member (package-menu-get-status)
|
||||
'("installed" "dependency" "obsolete" "unsigned"))
|
||||
(tabulated-list-put-tag "D" t)
|
||||
(forward-line)))
|
||||
|
||||
|
|
@ -2248,7 +2290,7 @@ If optional arg BUTTON is non-nil, describe its associated package."
|
|||
;; ENTRY is (PKG-DESC [NAME VERSION STATUS DOC])
|
||||
(let ((pkg-desc (car entry))
|
||||
(status (aref (cadr entry) 2)))
|
||||
(cond ((member status '("installed" "unsigned"))
|
||||
(cond ((member status '("installed" "dependency" "unsigned"))
|
||||
(push pkg-desc installed))
|
||||
((member status '("available" "new"))
|
||||
(setq available (package--append-to-alist pkg-desc available))))))
|
||||
|
|
@ -2342,9 +2384,18 @@ Optional argument NOQUERY non-nil means do not ask the user to confirm."
|
|||
(package-delete elt)
|
||||
(error (message (cadr err)))))
|
||||
(error "Aborted")))
|
||||
(if (or delete-list install-list)
|
||||
(package-menu--generate t t)
|
||||
(message "No operations specified."))))
|
||||
(if (not (or delete-list install-list))
|
||||
(message "No operations specified.")
|
||||
(when package-selected-packages
|
||||
(let ((removable (package--removable-packages)))
|
||||
(when (and removable
|
||||
(y-or-n-p
|
||||
(format "These %d packages are no longer needed, delete them (%s)? "
|
||||
(length removable)
|
||||
(mapconcat #'symbol-name removable ", "))))
|
||||
(mapc (lambda (p) (package-delete (cadr (assq p package-alist))))
|
||||
removable))))
|
||||
(package-menu--generate t t))))
|
||||
|
||||
(defun package-menu--version-predicate (A B)
|
||||
(let ((vA (or (aref (cadr A) 1) '(0)))
|
||||
|
|
@ -2364,6 +2415,8 @@ Optional argument NOQUERY non-nil means do not ask the user to confirm."
|
|||
((string= sB "available") nil)
|
||||
((string= sA "installed") t)
|
||||
((string= sB "installed") nil)
|
||||
((string= sA "dependency") t)
|
||||
((string= sB "dependency") nil)
|
||||
((string= sA "unsigned") t)
|
||||
((string= sB "unsigned") nil)
|
||||
((string= sA "held") t)
|
||||
|
|
|
|||
|
|
@ -71,10 +71,11 @@ When setting to a string, it redirects the shell history to that
|
|||
file. Be careful when setting to \"/dev/null\"; this might
|
||||
result in undesired results when using \"bash\" as shell.
|
||||
|
||||
The value t, the default value, unsets any setting of HISTFILE.
|
||||
If you set this variable to nil, however, the *override* is
|
||||
disabled, so the history will go to the default storage
|
||||
location, e.g. \"$HOME/.sh_history\"."
|
||||
The value t, the default value, unsets any setting of HISTFILE,
|
||||
and sets both HISTFILESIZE and HISTSIZE to 0. If you set this
|
||||
variable to nil, however, the *override* is disabled, so the
|
||||
history will go to the default storage location,
|
||||
e.g. \"$HOME/.sh_history\"."
|
||||
:group 'tramp
|
||||
:version "25.1"
|
||||
:type '(choice (const :tag "Do not override HISTFILE" nil)
|
||||
|
|
@ -3901,15 +3902,16 @@ file exists and nonzero exit status otherwise."
|
|||
;; when called as sh) on startup; this way, we avoid the startup
|
||||
;; file clobbering $PS1. $PROMPT_COMMAND is another way to set
|
||||
;; the prompt in /bin/bash, it must be discarded as well.
|
||||
;; $HISTFILE is set according to `tramp-histfile-override'.
|
||||
(tramp-send-command
|
||||
vec (format
|
||||
"exec env ENV='' %s PROMPT_COMMAND='' PS1=%s PS2='' PS3='' %s %s"
|
||||
(if tramp-histfile-override
|
||||
(concat
|
||||
"HISTFILE="
|
||||
(if (stringp tramp-histfile-override)
|
||||
(tramp-shell-quote-argument tramp-histfile-override) ""))
|
||||
"")
|
||||
(if (stringp tramp-histfile-override)
|
||||
(format "HISTFILE=%s"
|
||||
(tramp-shell-quote-argument tramp-histfile-override))
|
||||
(if tramp-histfile-override
|
||||
"HISTFILE='' HISTFILESIZE=0 HISTSIZE=0"
|
||||
""))
|
||||
(tramp-shell-quote-argument tramp-end-of-output)
|
||||
shell (or extra-args ""))
|
||||
t))
|
||||
|
|
@ -4631,10 +4633,13 @@ connection if a previous connection has died for some reason."
|
|||
(delete-process p))
|
||||
(setenv "TERM" tramp-terminal-type)
|
||||
(setenv "LC_ALL" "en_US.utf8")
|
||||
(when tramp-histfile-override
|
||||
(setenv "HISTFILE"
|
||||
(and (stringp tramp-histfile-override)
|
||||
tramp-histfile-override)))
|
||||
(if (stringp tramp-histfile-override)
|
||||
(setenv "HISTFILE" tramp-histfile-override)
|
||||
(if tramp-histfile-override
|
||||
(progn
|
||||
(setenv "HISTFILE")
|
||||
(setenv "HISTFILESIZE" "0")
|
||||
(setenv "HISTSIZE" "0"))))
|
||||
(setenv "PROMPT_COMMAND")
|
||||
(setenv "PS1" tramp-initial-end-of-output)
|
||||
(let* ((target-alist (tramp-compute-multi-hops vec))
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
2015-02-03 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Omit unnecessary var if GTK or NS
|
||||
* frame.c, frame.h (frame_default_tool_bar_height) [USE_GTK||HAVE_NS]:
|
||||
Now a constant zero on these platforms.
|
||||
|
||||
2015-02-01 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
|
||||
|
|
|
|||
|
|
@ -68,7 +68,11 @@ static struct frame *last_nonminibuf_frame;
|
|||
bool frame_garbaged;
|
||||
|
||||
/* The default tool bar height for future frames. */
|
||||
#if defined USE_GTK || defined HAVE_NS
|
||||
enum { frame_default_tool_bar_height = 0 };
|
||||
#else
|
||||
int frame_default_tool_bar_height;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_WINDOW_SYSTEM
|
||||
static void x_report_frame_params (struct frame *, Lisp_Object *);
|
||||
|
|
|
|||
|
|
@ -1100,7 +1100,9 @@ SET_FRAME_VISIBLE (struct frame *f, int v)
|
|||
|
||||
extern Lisp_Object selected_frame;
|
||||
|
||||
#if ! (defined USE_GTK || defined HAVE_NS)
|
||||
extern int frame_default_tool_bar_height;
|
||||
#endif
|
||||
|
||||
extern struct frame *decode_window_system_frame (Lisp_Object);
|
||||
extern struct frame *decode_live_frame (Lisp_Object);
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@
|
|||
Support for testing xwidgets
|
||||
* xwidget-test-manual.el:
|
||||
|
||||
2015-02-01 Grégoire Jadi <daimrod@gmail.com>
|
||||
Support for testing xwidgets
|
||||
* automated/xwidget-tests.el:
|
||||
2015-02-03 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* automated/package-test.el (package-test-get-deps): New test.
|
||||
|
||||
|
||||
2015-01-31 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
|
|
|
|||
|
|
@ -73,6 +73,24 @@
|
|||
:kind 'single)
|
||||
"Expected `package-desc' parsed from new-pkg-1.0.el.")
|
||||
|
||||
(defvar simple-depend-desc-1
|
||||
(package-desc-create :name 'simple-depend-1
|
||||
:version '(1 0)
|
||||
:summary "A single-file package with a dependency."
|
||||
:kind 'single
|
||||
:reqs '((simple-depend (1 0))
|
||||
(multi-file (0 1))))
|
||||
"`package-desc' used for testing dependencies.")
|
||||
|
||||
(defvar simple-depend-desc-2
|
||||
(package-desc-create :name 'simple-depend-2
|
||||
:version '(1 0)
|
||||
:summary "A single-file package with a dependency."
|
||||
:kind 'single
|
||||
:reqs '((simple-depend-1 (1 0))
|
||||
(multi-file (0 1))))
|
||||
"`package-desc' used for testing dependencies.")
|
||||
|
||||
(defvar package-test-data-dir (expand-file-name "data/package" package-test-file-dir)
|
||||
"Base directory of package test files.")
|
||||
|
||||
|
|
@ -479,6 +497,35 @@ Must called from within a `tar-mode' buffer."
|
|||
(should (equal archive-contents
|
||||
(list 1 package-x-test--single-archive-entry-1-4))))))
|
||||
|
||||
(ert-deftest package-test-get-deps ()
|
||||
"Test `package-test-get-deps' with complex structures."
|
||||
(let ((package-alist
|
||||
(mapcar (lambda (p) (list (package-desc-name p) p))
|
||||
(list simple-single-desc
|
||||
simple-depend-desc
|
||||
multi-file-desc
|
||||
new-pkg-desc
|
||||
simple-depend-desc-1
|
||||
simple-depend-desc-2))))
|
||||
(should
|
||||
(equal (package--get-deps 'simple-depend)
|
||||
'(simple-single)))
|
||||
(should
|
||||
(equal (package--get-deps 'simple-depend 'indirect)
|
||||
nil))
|
||||
(should
|
||||
(equal (package--get-deps 'simple-depend 'direct)
|
||||
'(simple-single)))
|
||||
(should
|
||||
(equal (package--get-deps 'simple-depend-2)
|
||||
'(simple-depend-1 multi-file simple-depend simple-single)))
|
||||
(should
|
||||
(equal (package--get-deps 'simple-depend-2 'indirect)
|
||||
'(simple-depend multi-file simple-single)))
|
||||
(should
|
||||
(equal (package--get-deps 'simple-depend-2 'direct)
|
||||
'(simple-depend-1 multi-file)))))
|
||||
|
||||
(provide 'package-test)
|
||||
|
||||
;;; package-test.el ends here
|
||||
|
|
|
|||
Loading…
Reference in a new issue