tcsh/tcsh-6.19.00-026-quote-backslashes-properly.patch

105 lines
2.8 KiB
Diff
Raw Normal View History

From 9a763dd9b9b88f9c8cd235fddfda839c6b7971cb Mon Sep 17 00:00:00 2001
From: christos <christos>
Date: Tue, 8 Mar 2016 15:45:26 +0000
Subject: [PATCH 1/3] PR/526: David Kaspar: Quote backslashes properly so that they
can be preserved in `` expansions.
---
Fixes | 2 ++
sh.glob.c | 4 +++-
sh.lex.c | 2 +-
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/Fixes b/Fixes
index 1fe33e8..b182f1a 100644
--- a/Fixes
+++ b/Fixes
@@ -1,3 +1,5 @@
+ 10. PR/526: Quote backslashes properly so they can be preserved in ``
+ expansions
9. Fix memory leak for paraml
8. Add notempty and ask values for the noclobber setting (Martin Tournoij)
7. more correct $wordchars for vimode (Luke Mewburn)
diff --git a/sh.glob.c b/sh.glob.c
index dce0217..895a603 100644
--- a/sh.glob.c
+++ b/sh.glob.c
@@ -878,7 +878,9 @@ backeval(struct blk_buf *bb, struct Strbuf *word, Char *cp, int literal)
if (!quoted && (c == ' ' || c == '\t'))
break;
cnt++;
- Strbuf_append1(word, c | quoted);
+ if (c == '\\' || quoted)
+ c |= QUOTE;
+ Strbuf_append1(word, c);
}
/*
* Unless at end-of-file, we will form a new word here if there were
diff --git a/sh.lex.c b/sh.lex.c
index 8a6d1b0..eae8a03 100644
--- a/sh.lex.c
+++ b/sh.lex.c
@@ -386,7 +386,7 @@ loop:
*/
c |= QUOTE;
ungetC(c);
- c = '\\';
+ c = '\\' | QUOTE;
}
}
}
--
2.5.5
From d52d669405da2fce61bd04bf80915e2e6ac5e842 Mon Sep 17 00:00:00 2001
From: christos <christos>
Date: Fri, 13 May 2016 15:08:12 +0000
Subject: [PATCH 2/3] PR/526: Now that backslashes are quoted, we don't need to
handle them specially here. Fixes echo '\n'<enter><ctrl-p> displaying echo
'\\n'.
---
tc.func.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tc.func.c b/tc.func.c
index f2b1a97..97eda4e 100644
--- a/tc.func.c
+++ b/tc.func.c
@@ -120,8 +120,7 @@ expand_lex(const struct wordent *sp0, int from, int to)
if ((*s & QUOTE)
&& (((*s & TRIM) == HIST && HIST != '\0') ||
(((*s & TRIM) == '\'') && (prev_c != '\\')) ||
- (((*s & TRIM) == '\"') && (prev_c != '\\')) ||
- (((*s & TRIM) == '\\') && (prev_c != '\\')))) {
+ (((*s & TRIM) == '\"') && (prev_c != '\\')))) {
Strbuf_append1(&buf, '\\');
}
#if INVALID_BYTE != 0
--
2.5.5
From b1534dd442e5c1c6d662ea73d3324e10708790ff Mon Sep 17 00:00:00 2001
From: christos <christos>
Date: Fri, 13 May 2016 15:08:54 +0000
Subject: [PATCH 3/3] History expansion fix.
---
Fixes | 1 +
1 file changed, 1 insertion(+)
diff --git a/Fixes b/Fixes
index 8962302..ac899dd 100644
--- a/Fixes
+++ b/Fixes
@@ -1,3 +1,4 @@
+ 12. PR/526: Fix double \\ printing from previous fix in history expansion.
10. PR/526: Quote backslashes properly so they can be preserved in ``
expansions
9. Fix memory leak for paraml
--
2.5.5