summary refs log tree commit diff
path: root/Src/hist.c
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 /Src/hist.c
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.
Diffstat (limited to 'Src/hist.c')
-rw-r--r--Src/hist.c10
1 files changed, 10 insertions, 0 deletions
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);