summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Stephenson <p.stephenson@samsung.com>2019-11-18 15:26:14 +0000
committerPeter Stephenson <p.stephenson@samsung.com>2019-11-18 15:26:17 +0000
commit88d14451b093cf2f07049ebb264a29eefc790825 (patch)
tree5db09fcb9c360e8d5d0f0e1be82e5c770ae75f95
parenta8b0d399e5ccb4becb3699fad7e553a39963ebda (diff)
downloadzsh-88d14451b093cf2f07049ebb264a29eefc790825.tar.gz
zsh-88d14451b093cf2f07049ebb264a29eefc790825.tar.xz
zsh-88d14451b093cf2f07049ebb264a29eefc790825.zip
users/24445: Add :P modifier to history code.
This was in the glob qualifier and variable code but got missed out
of the separate history modifier function.
-rw-r--r--ChangeLog5
-rw-r--r--Src/hist.c10
2 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c62c20af..43d880c24 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-11-18  Peter Stephenson  <p.stephenson@samsung.com>
+
+	* users/24445: Src/hist.c: Add missing support for :P to history
+	code (was already present in glob qualifiers and variables).
+
 2019-11-11  skirit  <skirit@dump.cz>
 
 	* unposted (salsa.debian.org MR!1): Completion/Unix/Command/_ip:
diff --git a/Src/hist.c b/Src/hist.c
index fd5606dc3..e47be8e15 100644
--- a/Src/hist.c
+++ b/Src/hist.c
@@ -920,6 +920,16 @@ histsubchar(int c)
 	    case 'u':
 		sline = casemodify(sline, CASMOD_UPPER);
 		break;
+	    case 'P':
+		if (*sline != '/') {
+		    char *here = zgetcwd();
+		    if (here[strlen(here)-1] != '/')
+			sline = zhtricat(metafy(here, -1, META_HEAPDUP), "/", sline);
+		    else
+			sline = dyncat(here, sline);
+		}
+		sline = xsymlink(sline, 1);
+		break;
 	    default:
 		herrflush();
 		zerr("illegal modifier: %c", c);