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

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

[elpa] externals/vdiff 872de4d5aa 1/4: Fix diff opts handling (ignore ca


From: ELPA Syncer
Subject: [elpa] externals/vdiff 872de4d5aa 1/4: Fix diff opts handling (ignore case / whitespace)
Date: Wed, 21 Jun 2023 01:00:51 -0400 (EDT)

branch: externals/vdiff
commit 872de4d5aaf61d62bbe54833f987bb85eeef12e1
Author: wwade <wwade@users.noreply.github.com>
Commit: wwade <wwade@users.noreply.github.com>

    Fix diff opts handling (ignore case / whitespace)
    
    Inside `vdiff-refresh`, when append is used to build up the diff
    command, if one of the intermediate args to append is a string and not
    a list, append will expand it into the string's character values.
    
    So, "-w" becomes 45 119, and this `Wrong type argument: stringp, 45`
    error message is shown.
    
    Added a small helper that converts non-empty strings using
    `ensure-list` to avoid this problem. We only want non-empty strings,
    though, otherwise an empty diff opt would get added as an explicit
    empty string arg which would cause diff to fail, e.g.
    
        diff -w "" -- file1 file2
    
    Where we actually want:
    
        diff -w -- file1 file2
    
    Fixes: #36
---
 vdiff.el | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/vdiff.el b/vdiff.el
index ac07e9c36b..092731d623 100644
--- a/vdiff.el
+++ b/vdiff.el
@@ -506,6 +506,11 @@ non-nil. Ignore folds if NO-FOLD is non-nil."
   (when vdiff-mode
     (vdiff-refresh)))
 
+(defun vdiff--nonempty-str-to-list (str)
+  "Return a list for a non-empty `STR' or else nil."
+  (unless (string-empty-p str)
+    (ensure-list str)))
+
 ;; * Main overlay refresh routine
 
 (defun vdiff-refresh (&optional post-refresh-function)
@@ -524,9 +529,9 @@ POST-REFRESH-FUNCTION is called when the process finishes."
            (ses vdiff--session)
            (cmd (append
                  base-cmd
-                 (vdiff-session-whitespace-args ses)
+                 (vdiff--nonempty-str-to-list (vdiff-session-whitespace-args 
ses))
                  (unless (string= (car base-cmd) "git")
-                   (vdiff-session-case-args ses))
+                   (vdiff--nonempty-str-to-list (vdiff-session-case-args ses)))
                  (list "--" tmp-a tmp-b)
                  (when tmp-c
                    (list tmp-c))))



reply via email to

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