diff src/readline-0-009-fix-issue-where-directory-name-.patch @ 7042:142471155843

readline: update to 8.2 patch level 10 Add upstream patches for readline. * dist-files.mk: Update list with new patches.
author Markus Mützel <markus.muetzel@gmx.de>
date Wed, 17 Jan 2024 14:32:33 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/readline-0-009-fix-issue-where-directory-name-.patch	Wed Jan 17 14:32:33 2024 +0100
@@ -0,0 +1,57 @@
+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
+