view src/readline-0-009-fix-issue-where-directory-name-.patch @ 7186:19a46de50b18 default tip @

* src/jasper.mk: update to v4.2.4
author John Donoghue <john.donoghue@ieee.org>
date Thu, 02 May 2024 09:22:30 -0400
parents 142471155843
children
line wrap: on
line source

From 3853739c28a9777d30ff65e8448e8f1a2898f3f2 Mon Sep 17 00:00:00 2001
From: Chet Ramey <chet.ramey@case.edu>
Date: Sun, 14 Jan 2024 15:20:44 -0500
Subject: [PATCH 09/10] Readline-8.2 patch 9: fix issue where directory name
 being completed needs both tilde expansion and dequoting

---
 complete.c | 14 ++++++++++----
 patchlevel |  2 +-
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/complete.c b/complete.c
index e5d224e..c9e0098 100644
--- a/complete.c
+++ b/complete.c
@@ -2526,7 +2526,8 @@ rl_filename_completion_function (const char *text, int state)
 	  temp = tilde_expand (dirname);
 	  xfree (dirname);
 	  dirname = temp;
-	  tilde_dirname = 1;
+	  if (*dirname != '~')
+	    tilde_dirname = 1;	/* indicate successful tilde expansion */
 	}
 
       /* We have saved the possibly-dequoted version of the directory name
@@ -2545,11 +2546,16 @@ rl_filename_completion_function (const char *text, int state)
 	  xfree (users_dirname);
 	  users_dirname = savestring (dirname);
 	}
-      else if (tilde_dirname == 0 && rl_completion_found_quote && rl_filename_dequoting_function)
+      else if (rl_completion_found_quote && rl_filename_dequoting_function)
 	{
-	  /* delete single and double quotes */
+	  /* We already ran users_dirname through the dequoting function.
+	     If tilde_dirname == 1, we successfully performed tilde expansion
+	     on dirname. Now we need to reconcile those results. We either
+	     just copy the already-dequoted users_dirname or tilde expand it
+	     if we tilde-expanded dirname. */
+	  temp = tilde_dirname ? tilde_expand (users_dirname) : savestring (users_dirname);
 	  xfree (dirname);
-	  dirname = savestring (users_dirname);
+	  dirname = temp;
 	}
       directory = opendir (dirname);
 
diff --git a/patchlevel b/patchlevel
index 6c10f12..c0ac809 100644
--- a/patchlevel
+++ b/patchlevel
@@ -1,3 +1,3 @@
 # Do not edit -- exists only for use by patch
 
-8
+9
-- 
2.38.0.windows.1