zsh: Add pwd -W option
This commit is contained in:
parent
91fde11d84
commit
bb2a107a8a
11
zsh/PKGBUILD
11
zsh/PKGBUILD
@ -3,7 +3,7 @@
|
||||
pkgbase=zsh
|
||||
pkgname=('zsh' 'zsh-doc')
|
||||
pkgver=5.0.6
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
arch=('i686' 'x86_64')
|
||||
url='http://www.zsh.org/'
|
||||
license=('custom')
|
||||
@ -14,19 +14,22 @@ source=("http://sourceforge.net/projects/zsh/files/zsh/${pkgver}/zsh-${pkgver}.t
|
||||
'zprofile::https://projects.archlinux.org/svntogit/packages.git/plain/trunk/zprofile?h=packages/zsh'
|
||||
zsh-doc.install
|
||||
zsh.install
|
||||
Makefile.in.patch)
|
||||
Makefile.in.patch
|
||||
add-pwd-W-option.patch)
|
||||
md5sums=('7150a6abc2aa1a79d81ed9a282594225'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'SKIP'
|
||||
'2a719c1ff8d61db68164e8a0a57d83c8'
|
||||
'92625ebc2c387157c5d05bfe4b04c8b5'
|
||||
'ca9d481e1aa03e864734734d2267afb0')
|
||||
'ca9d481e1aa03e864734734d2267afb0'
|
||||
'df6860fd5b5b46d59ad03220e9125c9d')
|
||||
|
||||
prepare() {
|
||||
cd ${srcdir}/${pkgname}-${pkgver}
|
||||
|
||||
patch -p0 -i ${srcdir}/Makefile.in.patch
|
||||
patch -p0 -i "${srcdir}/Makefile.in.patch"
|
||||
patch -p1 -i "${srcdir}/add-pwd-W-option.patch"
|
||||
mv -f ${srcdir}/config.guess ${srcdir}/config.sub ${srcdir}/${pkgname}-${pkgver}/
|
||||
|
||||
# Set correct keymap path
|
||||
|
||||
35
zsh/add-pwd-W-option.patch
Normal file
35
zsh/add-pwd-W-option.patch
Normal file
@ -0,0 +1,35 @@
|
||||
diff -rupN zsh-5.0.6/Src/builtin.c zsh-5.0.6-patch/Src/builtin.c
|
||||
--- zsh-5.0.6/Src/builtin.c 2014-08-01 04:41:49.000000000 +1000
|
||||
+++ zsh-5.0.6-patch/Src/builtin.c 2014-09-26 22:48:35.215974400 +1000
|
||||
@@ -103,7 +103,7 @@ static struct builtin builtins[] =
|
||||
BUILTIN("printf", 0, bin_print, 1, -1, BIN_PRINTF, NULL, NULL),
|
||||
BUILTIN("pushd", BINF_SKIPINVALID | BINF_SKIPDASH | BINF_DASHDASHVALID, bin_cd, 0, 2, BIN_PUSHD, "qsPL", NULL),
|
||||
BUILTIN("pushln", 0, bin_print, 0, -1, BIN_PRINT, NULL, "-nz"),
|
||||
- BUILTIN("pwd", 0, bin_pwd, 0, 0, 0, "rLP", NULL),
|
||||
+ BUILTIN("pwd", 0, bin_pwd, 0, 0, 0, "rLPW", NULL),
|
||||
BUILTIN("r", 0, bin_fc, 0, -1, BIN_R, "nrl", NULL),
|
||||
BUILTIN("read", 0, bin_read, 0, -1, 0, "cd:ek:%lnpqrst:%zu:AE", NULL),
|
||||
BUILTIN("readonly", BINF_PLUSOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AE:%F:%HL:%R:%TUZ:%afghi:%lptux", "r"),
|
||||
@@ -672,7 +672,21 @@ int doprintdir = 0; /* set in exec.c (f
|
||||
int
|
||||
bin_pwd(UNUSED(char *name), UNUSED(char **argv), Options ops, UNUSED(int func))
|
||||
{
|
||||
- if (OPT_ISSET(ops,'r') || OPT_ISSET(ops,'P') ||
|
||||
+ if (OPT_ISSET(ops,'W')) {
|
||||
+ char *wpath = zalloc(PATH_MAX);
|
||||
+ if (cygwin_conv_path(CCP_POSIX_TO_WIN_A, zgetcwd(), wpath, PATH_MAX) < 0) {
|
||||
+ free(wpath);
|
||||
+ perror("cygwin_conv_path");
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ char *c = wpath;
|
||||
+ while ((c = strchr(c, '\\')))
|
||||
+ *c = '/';
|
||||
+
|
||||
+ printf("%s\n", wpath);
|
||||
+ free(wpath);
|
||||
+ } else if (OPT_ISSET(ops,'r') || OPT_ISSET(ops,'P') ||
|
||||
(isset(CHASELINKS) && !OPT_ISSET(ops,'L')))
|
||||
printf("%s\n", zgetcwd());
|
||||
else {
|
||||
Loading…
x
Reference in New Issue
Block a user