emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] xwidget b52e2e5 1/2: merge master + move changelog and new


From: Joakim Verona
Subject: [Emacs-diffs] xwidget b52e2e5 1/2: merge master + move changelog and news to readme
Date: Wed, 04 Feb 2015 15:53:05 +0000

branch: xwidget
commit b52e2e5598aeb6dcc9bae5032ce4fa3da9bf40e9
Merge: aa89676 200a47d
Author: Joakim Verona <address@hidden>
Commit: Joakim Verona <address@hidden>

    merge master + move changelog and news to readme
---
 README.xwidget                 |   12 +++
 etc/ChangeLog                  |    4 +
 etc/NEWS                       |   24 ++++--
 lisp/ChangeLog                 |  107 +++++++++++++++++++++++--
 lisp/emacs-lisp/package.el     |  169 ++++++++++++++++++++++++++--------------
 lisp/net/tramp-sh.el           |   33 +++++----
 src/ChangeLog                  |    6 ++
 src/frame.c                    |    4 +
 src/frame.h                    |    2 +
 test/ChangeLog                 |    7 +-
 test/automated/package-test.el |   47 +++++++++++
 11 files changed, 326 insertions(+), 89 deletions(-)

diff --git a/README.xwidget b/README.xwidget
index cfde411..b8ba6b8 100644
--- a/README.xwidget
+++ b/README.xwidget
@@ -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  <address@hidden>
+       Support for the new Xwidget feature.
+       * xwidget.el:
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 8bc1afb..3703189 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
+2015-02-03  Artur Malabarba  <address@hidden>
+
+       * NEWS: Document package.el's improved dependency-handling.
+
 2015-01-29  Francesc Rocher  <address@hidden>
 
        * images/splash.svg, images/splash.png:
diff --git a/etc/NEWS b/etc/NEWS
index 4371a01..72e2356 100644
--- a/etc/NEWS
+++ b/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
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b9570ba..c18a8ff 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,11 +1,102 @@
-2015-02-01  Joakim Verona  <address@hidden>
-       Support for the new Xwidget feature.
-       * xwidget.el:
-
-2015-02-01  Grégoire Jadi  <address@hidden>
-       Support for testing xwidgets
-       * emacs-parallel/parallell-remote.el, 
emacs-parallel/parallell-xwidget.el:
-       * emacs-parallel/parallell.el:
+2015-02-03  Artur Malabarba  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * emacs-lisp/package.el (package-reinstall): Don't change package's 
selected status.
+       (package-delete): New NOSAVE argument.
+
+2015-02-03  Michael Albinus  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * emacs-lisp/package.el (package-delete): Remove package from
+       package-selected-packages.
+       (package-autoremove): Remove unneeded variable.
+
+2015-02-01  Artur Malabarba  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * 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  <address@hidden>
 
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 1627106..fa620eb 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -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)
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 8e519b1..9c8a222 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -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))
diff --git a/src/ChangeLog b/src/ChangeLog
index d45b4e3..9365641 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
+2015-02-03  Paul Eggert  <address@hidden>
+
+       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  <address@hidden>
 
        * xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
diff --git a/src/frame.c b/src/frame.c
index e4adfe8..890e897 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -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 *);
diff --git a/src/frame.h b/src/frame.h
index cb0044c..0c08d12 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -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);
diff --git a/test/ChangeLog b/test/ChangeLog
index 2817881..60b3ed3 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -2,9 +2,10 @@
        Support for testing xwidgets
        * xwidget-test-manual.el:
 
-2015-02-01  Grégoire Jadi  <address@hidden>
-       Support for testing xwidgets
-       * automated/xwidget-tests.el:
+2015-02-03  Artur Malabarba  <address@hidden>
+
+       * automated/package-test.el (package-test-get-deps): New test.
+
 
 2015-01-31  Stefan Monnier  <address@hidden>
 
diff --git a/test/automated/package-test.el b/test/automated/package-test.el
index a848865..004e2e8 100644
--- a/test/automated/package-test.el
+++ b/test/automated/package-test.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]