emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] externals/hyperbole 40611fa03b: Fix som complex path, key series


From: ELPA Syncer
Subject: [elpa] externals/hyperbole 40611fa03b: Fix som complex path, key series and windows grid resolutions
Date: Mon, 16 May 2022 03:57:47 -0400 (EDT)

branch: externals/hyperbole
commit 40611fa03b9d4bf54f2ce9e874249e9cf1e539cb
Author: Bob Weiner <rsw@gnu.org>
Commit: Bob Weiner <rsw@gnu.org>

    Fix som complex path, key series and windows grid resolutions
---
 ChangeLog                | 28 ++++++++++++++++++++++++++++
 FAST-DEMO                |  4 ++--
 hbut.el                  | 13 +++++++++++--
 hib-kbd.el               | 10 ++++++----
 hpath.el                 | 35 ++++++++++++++++++++++++++++++-----
 hui-select.el            | 10 +++++-----
 hycontrol.el             |  8 +++++---
 hyrolo.el                |  6 +++---
 test/hmouse-drv-tests.el | 12 ++++--------
 test/hpath-tests.el      | 10 +++-------
 10 files changed, 97 insertions(+), 39 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ecaa36966b..0e8d30ffb2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2022-05-16  Bob Weiner  <rsw@gnu.org>
+
+* FAST-DEMO: Change from /usr/bin/bash to /bin/bash.
+
+* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Fix improper relative 
path
+    resolution when called interactively; force use of full paths.
+
+2022-05-15  Bob Weiner  <rsw@gnu.org>
+
+* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Fix interactive 
pattern
+    to prompt for a string, not a file.
+
+* hpath.el (hpath:resolve): Add to resolve path variables without doing a path 
expand.
+           (hpath:find, hpath:call): Resolve but never expand paths with 
modifier char
+    [-!&] as first char since these might need to be searched in 
exec-directory, not
+    the current path.
+ test/hpath-tests.el 
(hpath:load-modifier-with-plain-file-loads-file-from-load-path):
+ test/hmouse-drv-tests.el 
(hbut-load-modifier-with-plain-file-loads-file-from-load-path):
+    Update to handle non-expansion of relative Lisp library files.
+
+* hui-select.el (hui-select-initialize):
+  hib-kbd.el (kbd-key): Fix close bracket syntax to match open (was close).
+
+* hbut.el (ebut:label-p): Fix handling when point is on final RET and
+    have nested lists as in here with braces:
+    { M-x shell RET M-> (pushd ${hyperb:dir}) RET }
+    by adding a (forward-list) call in the first 'while' construct.
+
 2022-05-14  Bob Weiner  <rsw@gnu.org>
 
 * hsys-org.el (hsys-org-todo-occur): Add.
diff --git a/FAST-DEMO b/FAST-DEMO
index b30c0e524a..1fa2d5b38c 100644
--- a/FAST-DEMO
+++ b/FAST-DEMO
@@ -176,9 +176,9 @@
     with bash.  If you are using another shell you can for this part switch
     to bash,
 
-    { M-x set-variable RET shell-file-name RET "/usr/bin/bash" RET }
+    { M-x set-variable RET shell-file-name RET C-u M-! which SPC bash RET RET }
 
-       Set the name of the inferior shell to /usr/bin/bash. If you do this
+       Set the name of the inferior shell to /bin/bash. If you do this
        don't forget to reset it to your preferred shell when you are ready
        with the demo.
 
diff --git a/hbut.el b/hbut.el
index a475fb5848..849870d2db 100644
--- a/hbut.el
+++ b/hbut.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    18-Sep-91 at 02:57:09
-;; Last-Mod:     24-Apr-22 at 11:01:49 by Bob Weiner
+;; Last-Mod:     15-May-22 at 23:07:36 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2022  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -232,7 +232,16 @@ to two lines."
                                (re-search-forward (concat quoted start-regexp) 
npoint t))
                      (setq start t))
                    start)
-                 (< (point) opoint)
+                 ;; Handle expressions like:
+                 ;; { M-x shell RET M-> (pushd ${hyperb:dir}) RET }
+                 (save-excursion
+                   (when (eq ?\( (char-syntax (preceding-char)))
+                     (condition-case ()
+                         (progn
+                           (forward-char -1)
+                           (forward-list))
+                       (error nil)))
+                   (< (point) opoint))
                  (re-search-forward (concat "[^\\{]" end-regexp) opoint t))
        (setq start nil))
       (when start
diff --git a/hib-kbd.el b/hib-kbd.el
index 5da56e163e..7fe9a3dd97 100644
--- a/hib-kbd.el
+++ b/hib-kbd.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    22-Nov-91 at 01:37:57
-;; Last-Mod:     24-Apr-22 at 17:34:04 by Bob Weiner
+;; Last-Mod:     15-May-22 at 22:26:22 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -97,13 +97,15 @@ Any key sequence within the series must be a string of one 
of the following:
     (let ((open-brace-syntax (hypb:get-raw-syntax-descriptor ?\{))
          (close-brace-syntax (hypb:get-raw-syntax-descriptor ?\})))
       (unwind-protect
-         (progn (modify-syntax-entry ?\{ "(\}" (syntax-table))
-                (modify-syntax-entry ?\} ")\}" (syntax-table))
+         (progn (modify-syntax-entry ?\{ "(}" (syntax-table))
+                (modify-syntax-entry ?\} "){" (syntax-table))
                 ;; Handle long series, e.g. eval-elisp actions
                 (let* ((hbut:max-len (max 3000 (hbut:max-len)))
-                       (seq-and-pos (or ;; (kbd) calls but only if point is 
between double quotes
+                       (seq-and-pos (or
+                                     ;; (kbd) calls but only if point is 
between double quotes
                                      (and (hbut:label-p t "(kbd \"" "\"\)" t)
                                           (hbut:label-p t "\"" "\"\)" t))
+                                     ;; braces delimiters
                                      (hbut:label-p t "{`" "'}" t)
                                      (hbut:label-p t "{" "}" t)
                                      ;; Regular dual single quotes (Texinfo 
smart quotes)
diff --git a/hpath.el b/hpath.el
index 9d25e6361a..7c16178075 100644
--- a/hpath.el
+++ b/hpath.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Nov-91 at 00:44:23
-;; Last-Mod:     14-May-22 at 13:53:16 by Bob Weiner
+;; Last-Mod:     15-May-22 at 23:36:25 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -947,7 +947,9 @@ Make any existing path within a file buffer absolute before 
returning."
     (if (or (null path) (string-empty-p path))
        (setq expanded-path ""
              path "")
-      (setq expanded-path (hpath:expand path)
+      ;; Never expand paths with a prefix character, e.g. program
+      ;; names which need to use exec-directory expansion.
+      (setq expanded-path (if prefix (hpath:resolve path) (hpath:expand path))
            path (funcall func expanded-path non-exist)))
     ;;
     ;; If path is just a local reference that begins with #,
@@ -1106,6 +1108,26 @@ window in which the buffer is displayed."
   "Return the function to display a Hyperbole path using optional symbol 
DISPLAY-WHERE or `hpath:display-where'."
   (hpath:display-where-function display-where hpath:display-where-alist))
 
+(defun hpath:resolve (path)
+  "Resolve any variable in PATH or prepend any path variable from the first 
PATH matching regexp in `hpath:auto-variable-alist'.
+Return any absolute or invalid PATH unchanged."
+  (when (stringp path)
+    (unless (string-match-p hpath:variable-regexp path)
+      (setq path (substitute-in-file-name path)))
+    (let (variable-path
+         substituted-path)
+      (setq variable-path (hpath:expand-with-variable path)
+           substituted-path (hpath:substitute-value variable-path))
+      (cond ((or (null substituted-path) (string-empty-p substituted-path))
+            path)
+           ((and (string-match-p hpath:variable-regexp variable-path)
+                 (string-match-p hpath:variable-regexp substituted-path))
+            ;; If a path is invalid, then a variable may have been prepended 
but
+            ;; it will remain unresolved in `substituted-path', in which case 
we
+            ;; want to return `path' without any further changes.
+            path)
+           (t substituted-path)))))
+
 (defun hpath:expand (path)
   "Expand relative PATH using the path variable from the first file matching 
regexp in `hpath:auto-variable-alist'.
 Return any absolute or invalid PATH unchanged."
@@ -1249,7 +1271,7 @@ If FILENAME does not start with a prefix character:
   location of the link anchor;
 
   if it matches a regular expression in the alist returned by
-  \(hpath:get-external-display-alist), invoke the associated external
+  (hpath:get-external-display-alist), invoke the associated external
   display program
 
   if not, consult `hpath:internal-display-alist' for a specialized internal
@@ -1295,8 +1317,11 @@ buffer but don't display it."
     (if (string-empty-p path)
        (setq path ""
              filename "")
-      (setq path (hpath:expand path)
-           filename (hpath:absolute-to path default-directory)))
+      ;; Never expand filenames with modifier prepended.
+      (if modifier
+         (setq path (hpath:resolve path))
+       (setq path (hpath:expand path)
+             filename (hpath:absolute-to path default-directory))))
     (let ((remote-filename (hpath:remote-p path)))
       (or modifier remote-filename
          (file-exists-p filename)
diff --git a/hui-select.el b/hui-select.el
index 4b56f4958e..75f4254d18 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:    19-Oct-96 at 02:25:27
-;; Last-Mod:      8-May-22 at 11:06:42 by Bob Weiner
+;; Last-Mod:     15-May-22 at 22:30:57 by Bob Weiner
 ;;
 ;; Copyright (C) 1996-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -350,8 +350,8 @@ Also, add language-specific syntax setups to aid in thing 
selection."
   ;; Allow for marking and moving brace delimited groups.
   (var:add-and-run-hook 'lisp-mode-hook
                        (lambda ()
-                         (modify-syntax-entry ?\{ "\(\}" 
lisp-mode-syntax-table)
-                         (modify-syntax-entry ?\} "\)\{" 
lisp-mode-syntax-table)))
+                         (modify-syntax-entry ?\{ "(}" lisp-mode-syntax-table)
+                         (modify-syntax-entry ?\} "){" 
lisp-mode-syntax-table)))
   ;;
   ;; This hook makes tags, comments, sentences and text blocks
   ;; selectable in SGML-related modes.
@@ -368,8 +368,8 @@ Also, add language-specific syntax setups to aid in thing 
selection."
                                  `(lambda ()
                                      (let ((syntax-table (symbol-value 
',syntax-table-sym))
                                            (keymap (symbol-value 
',keymap-sym)))
-                                      (modify-syntax-entry ?<  "(>" 
syntax-table)
-                                      (modify-syntax-entry ?>  ")<" 
syntax-table)
+                                      (modify-syntax-entry ?\< "(>" 
syntax-table)
+                                      (modify-syntax-entry ?\> ")<" 
syntax-table)
                                       (modify-syntax-entry ?\{ "(}" 
syntax-table)
                                       (modify-syntax-entry ?\} "){" 
syntax-table)
                                       (modify-syntax-entry ?\" "\"" 
syntax-table)
diff --git a/hycontrol.el b/hycontrol.el
index aa6ee26915..d817c8f17e 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     1-Jun-16 at 15:35:36
-;; Last-Mod:     27-Feb-22 at 01:11:05 by Bob Weiner
+;; Last-Mod:     16-May-22 at 00:12:56 by Bob Weiner
 ;;
 ;; Copyright (C) 2016-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -1591,8 +1591,10 @@ the second, number of columns of windows."
 ;;;###autoload
 (defun hycontrol-windows-grid-by-file-pattern (pattern &optional full)
   "Display an automatically sized window grid showing files found from glob 
PATTERN.
-Use absolute file paths if optional FULL is non-nil."
-  (interactive "FPattern of files to display in windows grid: \nP")
+Use absolute file paths if called interactively or optional FULL is non-nil."
+  (interactive
+   (list (read-string "Pattern of files to display in windows grid: ")
+        t))
   (let* ((find-file-wildcards t)
         (files (file-expand-wildcards pattern full)))
     (hycontrol-windows-grid-by-file-list files)))
diff --git a/hyrolo.el b/hyrolo.el
index e0b768bd33..ffedaef15c 100644
--- a/hyrolo.el
+++ b/hyrolo.el
@@ -3,7 +3,7 @@
 ;; Author:       Bob Weiner
 ;;
 ;; Orig-Date:     7-Jun-89 at 22:08:29
-;; Last-Mod:     10-Apr-22 at 23:46:44 by Bob Weiner
+;; Last-Mod:     15-May-22 at 22:28:48 by Bob Weiner
 ;;
 ;; Copyright (C) 1991-2021  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -1576,8 +1576,8 @@ String search expressions are converted to regular 
expressions.")
     ()
   (setq hyrolo-mode-syntax-table (make-syntax-table text-mode-syntax-table))
   ;; Support syntactic selection of delimited e-mail addresses.
-  (modify-syntax-entry ?\<  "\(\>" hyrolo-mode-syntax-table)
-  (modify-syntax-entry ?\>  "\)\<" hyrolo-mode-syntax-table))
+  (modify-syntax-entry ?\<  "(>" hyrolo-mode-syntax-table)
+  (modify-syntax-entry ?\>  ")<" hyrolo-mode-syntax-table))
 
 (defvar hyrolo-mode-map nil
   "Keymap for the rolo match buffer.")
diff --git a/test/hmouse-drv-tests.el b/test/hmouse-drv-tests.el
index e06cf3bb00..e83cf7aa9d 100644
--- a/test/hmouse-drv-tests.el
+++ b/test/hmouse-drv-tests.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell <matsl@gnu.org>
 ;;
 ;; Orig-Date:    28-Feb-21 at 22:52:00
-;; Last-Mod:     20-Mar-22 at 20:04:47 by Mats Lidell
+;; Last-Mod:     15-May-22 at 23:42:24 by Bob Weiner
 ;;
 ;; Copyright (C) 2021-2022  Free Software Foundation, Inc.
 ;; See the "HY-COPY" file for license information.
@@ -497,16 +497,12 @@
 
 (ert-deftest hbut-load-modifier-with-plain-file-loads-file-from-load-path ()
   "Path prefix - filename without directory will load from`load-path'."
+  (setq features (delq 'tutorial features))
   (with-temp-buffer
     (insert "\"-tutorial.el\"")
     (goto-char 2)
-    (let ((was-called nil))
-      (cl-letf (((symbol-function 'load)
-                 (lambda (filename)
-                   (setq was-called
-                         (should (string= (locate-library "tutorial.el") 
filename))))))
-        (action-key)
-        (should was-called)))))
+    (action-key)
+    (should (featurep 'tutorial))))
 
 (ert-deftest hbut-key-press-on-hyphen-in-elisp-symbol ()
   "Key press on hyphen in elisp symbol uses smart-lisp-find-tag.
diff --git a/test/hpath-tests.el b/test/hpath-tests.el
index 6ed59eb700..95990011b0 100644
--- a/test/hpath-tests.el
+++ b/test/hpath-tests.el
@@ -150,13 +150,9 @@
 
 (ert-deftest hpath:load-modifier-with-plain-file-loads-file-from-load-path ()
   "Path prefix - with filename without diretory will load from`load-path'."
-  (let ((was-called nil))
-    (cl-letf (((symbol-function 'load)
-               (lambda (filename)
-                 (setq was-called
-                       (should (string= (locate-library "tutorial.el") 
filename))))))
-      (hpath:find "-tutorial.el")
-      (should was-called))))
+  (setq features (delq 'tutorial features))
+  (hpath:find "-tutorial.el")
+  (should (featurep 'tutorial)))
 
 (ert-deftest hpath:substitute-value-test ()
   "Environment and Lisp variables shall be substituted in a path."



reply via email to

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