Sync from SUSE:SLFO:Main zsh revision 13eb460c052e620c54bd6565584d4b5b
This commit is contained in:
commit
a77752dfcc
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
34
dotzshrc.rh
Normal file
34
dotzshrc.rh
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
#
|
||||||
|
# .zshrc is sourced in interactive shells.
|
||||||
|
# It should contain commands to set up aliases,
|
||||||
|
# functions, options, key bindings, etc.
|
||||||
|
#
|
||||||
|
|
||||||
|
autoload -U compinit
|
||||||
|
compinit
|
||||||
|
|
||||||
|
#allow tab completion in the middle of a word
|
||||||
|
setopt COMPLETE_IN_WORD
|
||||||
|
|
||||||
|
## keep background processes at full speed
|
||||||
|
#setopt NOBGNICE
|
||||||
|
## restart running processes on exit
|
||||||
|
#setopt HUP
|
||||||
|
|
||||||
|
## history
|
||||||
|
#setopt APPEND_HISTORY
|
||||||
|
## for sharing history between zsh processes
|
||||||
|
#setopt INC_APPEND_HISTORY
|
||||||
|
#setopt SHARE_HISTORY
|
||||||
|
|
||||||
|
## never ever beep ever
|
||||||
|
#setopt NO_BEEP
|
||||||
|
|
||||||
|
## automatically decide when to page a list of completions
|
||||||
|
#LISTMAX=0
|
||||||
|
|
||||||
|
## disable mail checking
|
||||||
|
#MAILCHECK=0
|
||||||
|
|
||||||
|
# autoload -U colors
|
||||||
|
#colors
|
26
egrep-deprecation.patch
Normal file
26
egrep-deprecation.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
Index: zsh-5.9/Test/D07multibyte.ztst
|
||||||
|
===================================================================
|
||||||
|
--- zsh-5.9.orig/Test/D07multibyte.ztst
|
||||||
|
+++ zsh-5.9/Test/D07multibyte.ztst
|
||||||
|
@@ -6,7 +6,7 @@
|
||||||
|
unset -m LC_\*
|
||||||
|
mb_ok=
|
||||||
|
langs=(en_{US,GB}.{UTF-,utf}8 en.UTF-8
|
||||||
|
- $(locale -a 2>/dev/null | egrep 'utf8|UTF-8'))
|
||||||
|
+ ${(M)$(locale -a 2>/dev/null):#*.(utf8|UTF-8)} )
|
||||||
|
for LANG in $langs; do
|
||||||
|
if [[ é = ? ]]; then
|
||||||
|
mb_ok=1
|
||||||
|
Index: zsh-5.9/Test/E01options.ztst
|
||||||
|
===================================================================
|
||||||
|
--- zsh-5.9.orig/Test/E01options.ztst
|
||||||
|
+++ zsh-5.9/Test/E01options.ztst
|
||||||
|
@@ -651,7 +651,7 @@
|
||||||
|
>noktarg1
|
||||||
|
>0 1
|
||||||
|
|
||||||
|
- showopt() { setopt | egrep 'localoptions|ksharrays'; }
|
||||||
|
+ showopt() { setopt | grep -E 'localoptions|ksharrays'; }
|
||||||
|
f1() { setopt localoptions ksharrays; showopt }
|
||||||
|
f2() { setopt ksharrays; showopt }
|
||||||
|
setopt kshoptionprint
|
104
pipe-less-and-signals-handling.patch
Normal file
104
pipe-less-and-signals-handling.patch
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
diff --git a/Src/jobs.c b/Src/jobs.c
|
||||||
|
index 707374297..76c762ee5 100644
|
||||||
|
--- a/Src/jobs.c
|
||||||
|
+++ b/Src/jobs.c
|
||||||
|
@@ -544,16 +544,14 @@ update_job(Job jn)
|
||||||
|
|
||||||
|
if (isset(MONITOR)) {
|
||||||
|
pid_t pgrp = gettygrp(); /* get process group of tty */
|
||||||
|
+ int deadpgrp = (mypgrp != pgrp && inforeground && pgrp > 1 &&
|
||||||
|
+ kill(-pgrp, 0) == -1 && errno == ESRCH);
|
||||||
|
|
||||||
|
/* is this job in the foreground of an interactive shell? */
|
||||||
|
if (mypgrp != pgrp && inforeground &&
|
||||||
|
- (jn->gleader == pgrp ||
|
||||||
|
- (pgrp > 1 &&
|
||||||
|
- (kill(-pgrp, 0) == -1 && errno == ESRCH)))) {
|
||||||
|
+ ((jn->gleader == pgrp && signalled) || deadpgrp)) {
|
||||||
|
if (list_pipe) {
|
||||||
|
- if (somestopped || (pgrp > 1 &&
|
||||||
|
- kill(-pgrp, 0) == -1 &&
|
||||||
|
- errno == ESRCH)) {
|
||||||
|
+ if (somestopped || deadpgrp) {
|
||||||
|
attachtty(mypgrp);
|
||||||
|
/* check window size and adjust if necessary */
|
||||||
|
adjustwinsize(0);
|
||||||
|
@@ -566,6 +564,12 @@ update_job(Job jn)
|
||||||
|
* when the job is finally deleted.
|
||||||
|
*/
|
||||||
|
jn->stat |= STAT_ATTACH;
|
||||||
|
+ /*
|
||||||
|
+ * If we're in shell jobs on the right side of a pipeline
|
||||||
|
+ * we should treat it like a job in the current shell.
|
||||||
|
+ */
|
||||||
|
+ if (inforeground == 2)
|
||||||
|
+ inforeground = 1;
|
||||||
|
}
|
||||||
|
/* If we have `foo|while true; (( x++ )); done', and hit
|
||||||
|
* ^C, we have to stop the loop, too. */
|
||||||
|
@@ -1488,10 +1492,7 @@ addproc(pid_t pid, char *text, int aux, struct timeval *bgtime,
|
||||||
|
* set it for that, too.
|
||||||
|
*/
|
||||||
|
if (gleader != -1) {
|
||||||
|
- if (jobtab[thisjob].stat & STAT_CURSH)
|
||||||
|
- jobtab[thisjob].gleader = gleader;
|
||||||
|
- else
|
||||||
|
- jobtab[thisjob].gleader = pid;
|
||||||
|
+ jobtab[thisjob].gleader = gleader;
|
||||||
|
if (list_pipe_job_used != -1)
|
||||||
|
jobtab[list_pipe_job_used].gleader = gleader;
|
||||||
|
/*
|
||||||
|
@@ -1500,7 +1501,7 @@ addproc(pid_t pid, char *text, int aux, struct timeval *bgtime,
|
||||||
|
*/
|
||||||
|
last_attached_pgrp = gleader;
|
||||||
|
} else if (!jobtab[thisjob].gleader)
|
||||||
|
- jobtab[thisjob].gleader = pid;
|
||||||
|
+ jobtab[thisjob].gleader = pid;
|
||||||
|
/* attach this process to end of process list of current job */
|
||||||
|
pnlist = &jobtab[thisjob].procs;
|
||||||
|
}
|
||||||
|
@@ -2506,6 +2507,7 @@ bin_fg(char *name, char **argv, Options ops, int func)
|
||||||
|
jobtab[job].stat &= ~STAT_CURSH;
|
||||||
|
}
|
||||||
|
if ((stopped = (jobtab[job].stat & STAT_STOPPED))) {
|
||||||
|
+ /* WIFCONTINUED will makerunning() again at killjb() */
|
||||||
|
makerunning(jobtab + job);
|
||||||
|
if (func == BIN_BG) {
|
||||||
|
/* Set $! to indicate this was backgrounded */
|
||||||
|
|
||||||
|
diff --git a/Src/exec.c b/Src/exec.c
|
||||||
|
index 2422dae91..d4e681887 100644
|
||||||
|
--- a/Src/exec.c
|
||||||
|
+++ b/Src/exec.c
|
||||||
|
@@ -1899,8 +1899,12 @@ execpline(Estate state, wordcode slcode, int how, int last1)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- else if (subsh && jn->stat & STAT_STOPPED)
|
||||||
|
- thisjob = newjob;
|
||||||
|
+ else if (subsh && jn->stat & STAT_STOPPED) {
|
||||||
|
+ if (thisjob == newjob)
|
||||||
|
+ makerunning(jn);
|
||||||
|
+ else
|
||||||
|
+ thisjob = newjob;
|
||||||
|
+ }
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
diff --git a/Src/jobs.c b/Src/jobs.c
|
||||||
|
index 76c762ee5..4863962b9 100644
|
||||||
|
--- a/Src/jobs.c
|
||||||
|
+++ b/Src/jobs.c
|
||||||
|
@@ -564,12 +564,6 @@ update_job(Job jn)
|
||||||
|
* when the job is finally deleted.
|
||||||
|
*/
|
||||||
|
jn->stat |= STAT_ATTACH;
|
||||||
|
- /*
|
||||||
|
- * If we're in shell jobs on the right side of a pipeline
|
||||||
|
- * we should treat it like a job in the current shell.
|
||||||
|
- */
|
||||||
|
- if (inforeground == 2)
|
||||||
|
- inforeground = 1;
|
||||||
|
}
|
||||||
|
/* If we have `foo|while true; (( x++ )); done', and hit
|
||||||
|
* ^C, we have to stop the loop, too. */
|
13
trim-unneeded-completions.patch
Normal file
13
trim-unneeded-completions.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: zsh-5.0.2/Src/Zle/complete.mdd
|
||||||
|
===================================================================
|
||||||
|
--- zsh-5.0.2.orig/Src/Zle/complete.mdd
|
||||||
|
+++ zsh-5.0.2/Src/Zle/complete.mdd
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
name=zsh/complete
|
||||||
|
link=either
|
||||||
|
load=yes
|
||||||
|
-functions='Completion/*comp* Completion/AIX/*/* Completion/BSD/*/* Completion/Base/*/* Completion/Cygwin/*/* Completion/Darwin/*/* Completion/Debian/*/* Completion/Linux/*/* Completion/Mandriva/*/* Completion/Redhat/*/* Completion/Solaris/*/* Completion/openSUSE/*/* Completion/Unix/*/* Completion/X/*/* Completion/Zsh/*/*'
|
||||||
|
+functions='Completion/*comp* Completion/Base/*/* Completion/Linux/*/* Completion/openSUSE/*/* Completion/Unix/*/* Completion/X/*/* Completion/Zsh/*/*'
|
||||||
|
|
||||||
|
moddeps="zsh/zle"
|
||||||
|
|
8
zlogin.rhs
Normal file
8
zlogin.rhs
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#
|
||||||
|
# /etc/zlogin and .zlogin are sourced in login shells. It should
|
||||||
|
# contain commands that should be executed only in
|
||||||
|
# login shells. It should be used to set the terminal
|
||||||
|
# type and run a series of external commands (fortune,
|
||||||
|
# msgs, from, etc).
|
||||||
|
#
|
||||||
|
|
7
zlogout.rhs
Normal file
7
zlogout.rhs
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
#
|
||||||
|
# /etc/zlogout and ~/.zlogout are run when an interactive session ends
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
clear
|
7
zprofile
Normal file
7
zprofile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# we source the general profile here so we dont have to
|
||||||
|
# reimplement it
|
||||||
|
setopt nonomatch
|
||||||
|
source /etc/profile
|
||||||
|
unsetopt nonomatch
|
||||||
|
# put your own login shell specific configuration below
|
||||||
|
# this line
|
22
zprofile.rhs
Normal file
22
zprofile.rhs
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# /etc/zprofile and ~/.zprofile are run for login shells
|
||||||
|
#
|
||||||
|
|
||||||
|
PATH="$PATH:$HOME/bin"
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
_src_etc_profile()
|
||||||
|
{
|
||||||
|
# Make /etc/profile happier, and have possible ~/.zshenv options like
|
||||||
|
# NOMATCH ignored.
|
||||||
|
#
|
||||||
|
emulate -L ksh
|
||||||
|
|
||||||
|
# source profile
|
||||||
|
if [ -f /etc/profile ]; then
|
||||||
|
source /etc/profile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
_src_etc_profile
|
||||||
|
|
||||||
|
unset -f _src_etc_profile
|
BIN
zsh-5.9.tar.xz
(Stored with Git LFS)
Normal file
BIN
zsh-5.9.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
11
zsh-5.9.tar.xz.asc
Normal file
11
zsh-5.9.tar.xz.asc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQEzBAABCAAdFiEEfKfsqvBiFrkPiUFGrPgUbK6Mu8QFAmJ///QACgkQrPgUbK6M
|
||||||
|
u8RgPgf+N/yJ+ltJouICaa8fYiYxN0uuYhCeBDVmHuPdwFBPl/Fa5npXkuvo2s/0
|
||||||
|
1ho5VfuU08B856GcBpraeuNqN74WNaaZ1E2P8ZFFg1Uw3xjxyg1lqjvkJZrrYURm
|
||||||
|
tZNoov33jeyKbyTaNxTHgIujyBE3Uu40wpLoIOL3jO4PV0useJyw1jj5CsnvhN1b
|
||||||
|
3S4X99gre3J0SahNDTGltmCwtO/nL3uZh0+FYNagJMF9ZTV9/BQEjBlozBWU+sPa
|
||||||
|
rBpbr9A4p/AY2GQti03EmP/HXicaX397aRlBqgfjSRkMJpvaDnVnuXY53uLVOKdW
|
||||||
|
sg6FYiIrO54Q6bEzJV9JfhdvqQtU4A==
|
||||||
|
=BNV9
|
||||||
|
-----END PGP SIGNATURE-----
|
15
zsh-osc-completion.patch
Normal file
15
zsh-osc-completion.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Index: zsh-5.0.7/Completion/openSUSE/Command/_osc
|
||||||
|
===================================================================
|
||||||
|
--- zsh-5.0.7.orig/Completion/openSUSE/Command/_osc
|
||||||
|
+++ zsh-5.0.7/Completion/openSUSE/Command/_osc
|
||||||
|
@@ -16,8 +16,8 @@
|
||||||
|
# version 0.2
|
||||||
|
#
|
||||||
|
|
||||||
|
-OSC_BUILD_TARGETS="openSUSE_12.1 openSUSE_12.2 openSUSE_12.3 openSUSE_Tumbleweed openSUSE_Factory SLE_11_SP2"
|
||||||
|
-OSC_PROJECTS="openSUSE:Factory openSUSE:Tumbleweed openSUSE:12.3 openSUSE:12.2 openSUSE:12.1"
|
||||||
|
+OSC_BUILD_TARGETS="openSUSE_13.1 openSUSE_13.2 openSUSE_Tumbleweed openSUSE_Factory SLE_11_SP3 SLE_12"
|
||||||
|
+OSC_PROJECTS="openSUSE:Factory openSUSE:Tumbleweed openSUSE:13.2 openSUSE:13.1"
|
||||||
|
|
||||||
|
# user defined variables $OSC_BUILD_TARGETS_EXTRA and
|
||||||
|
# $OSC_PROJECTS_EXTRA can add to the project/build target list
|
1306
zsh.changes
Normal file
1306
zsh.changes
Normal file
File diff suppressed because it is too large
Load Diff
30
zsh.keyring
Normal file
30
zsh.keyring
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQENBFwswugBCADdkzua9HwC8Ip5zh7Z0/nJGKbMyq+cobXArhHos40taeidn0+v
|
||||||
|
HRES5y6PHR+h56c9TpmJEp/bLCHP5pLvcSz/ETz7+Kk82pld63pOHejSxAQCu7Wv
|
||||||
|
1NwrTu6TyKlZsNG1oZBxx2LkEN6k8Wy+88DlQqZoXOXafmhF+Sms6gv9DXa029sv
|
||||||
|
B07EehAx02T+b02QwVVG/Pq9austmsTd9EcNcVNRDneD2LcdxCllbS5IamjVa+NW
|
||||||
|
oeKZVqbsO71uUolwBvshFSBLPsSY8EZdGApjazQcY0lgkaRA/QlMOisyq2mjV6FY
|
||||||
|
JXHrlI3WWWK2vROjb35AHiHEE/EVgb5RVpxxABEBAAG0E2RhbmEgPGRhbmFAZGFu
|
||||||
|
YS5pcz6JAU4EEwEIADgWIQR8p+yq8GIWuQ+JQUas+BRsroy7xAUCXCzC6AIbAwUL
|
||||||
|
CQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCs+BRsroy7xA5XB/93EQqzs0as07U+
|
||||||
|
gmPDpvE7JwIY4TrcvAS7RHgJ4sE+arR5uTziHixiHBQQMedbfV51Jxgws6WL0Ko8
|
||||||
|
7K8h9sN2UGnXIc1lWuQ2FDshrcpSHZvLxL4Z7WC3Rj/Dq3/nuZZyljWQNHxg4BlO
|
||||||
|
EJqe67F5kT2OI591oxB6L1E6F8sVsgxD7gBCPVl/8CsyZ7wkyW/gMRqrlYolJhpS
|
||||||
|
B5C1zKJzvULQJKXDCh9DUyi7cKFtPyYfYtRWfWhKGz5Dhtt9qvBlxJzZufZ9QNQt
|
||||||
|
oPhNGF34QaLWTCLRbtoVbNq2NlxalZ5Byhg/0pBcQc2w4C70jSxF3c+2oMEGQIbc
|
||||||
|
5GJFgLpZuQENBFwswugBCAD5rIYdlLWHOMw+stWTRNquu3SZr+v7RRzreV9fOKN+
|
||||||
|
lUiqwicU2uCX39s/q+2wtF536r+IS/53DrMAW8sxf8eroK+MBnJYtP3U8BnB3mag
|
||||||
|
bTJXMjng2ZqZXvxzetXLyXR+38f+6WbJtV0ByDeFQQJYsFxOag3r6etxrzpwRFm0
|
||||||
|
PL440fc0nxOxhxWWJcR0RKTMX87ymipi9mETYeZi7h9B3cDw8aIUz2O3s45TtNlA
|
||||||
|
NI1MNMU4sAsc5i+w0zJON9gT+rWDYFj6BiEqnRoSK2XDm+WaJa3FwgW1WnHPTe+E
|
||||||
|
RJFGT58DICU3ta6cCQPavZz/KALyj8GBJ+PydelIAv2rABEBAAGJATYEGAEIACAW
|
||||||
|
IQR8p+yq8GIWuQ+JQUas+BRsroy7xAUCXCzC6AIbDAAKCRCs+BRsroy7xOgxB/40
|
||||||
|
sp9xFq8L/59yRTeXSskOsGk3aUlSnACofcRCGgDSXV5GwWJ/G0O8krhHOISJKuxc
|
||||||
|
vA0wLFq0WB/EafrKAPTSkrnxmq8noT3c8MpnFRSXHq3sOXkB4nqVEmUu/AAA0TbC
|
||||||
|
HcwhFQExvK7O+funxIGU5vqHFeQGJ0VcgC/KZUEMNtVV8aZGvn7JzSxEIwHVXGLu
|
||||||
|
5H7TnNWzLzkzIDVY9IJpTutsc6RMvv6BV8ooWBHSgzmh0MTqEjwNarHAMuffrAjE
|
||||||
|
zIO3qi0YCaxSDVf2jrWyYpB2QntplmUoubB9s/ngCqVb4A3B7JxPmJuL/0XMUThn
|
||||||
|
WZLWFpbLimyoUCfHoehZ
|
||||||
|
=dR/Y
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
303
zsh.spec
Normal file
303
zsh.spec
Normal file
@ -0,0 +1,303 @@
|
|||||||
|
#
|
||||||
|
# spec file for package zsh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora_version}
|
||||||
|
%if 0%{?rhel_version} >= 700 || 0%{?centos_version} >= 700
|
||||||
|
%global __requires_exclude ^/bin/zsh$
|
||||||
|
%endif
|
||||||
|
BuildRequires: libtermcap-devel
|
||||||
|
BuildRequires: texi2html
|
||||||
|
BuildRequires: texinfo
|
||||||
|
%endif
|
||||||
|
Name: zsh
|
||||||
|
Version: 5.9
|
||||||
|
Release: 0%{?dist}
|
||||||
|
Summary: Shell with comprehensive completion
|
||||||
|
License: MIT
|
||||||
|
Group: System/Shells
|
||||||
|
URL: https://www.zsh.org
|
||||||
|
Source0: https://downloads.sourceforge.net/project/zsh/zsh/%{version}/zsh-%{version}.tar.xz
|
||||||
|
Source1: https://downloads.sourceforge.net/project/zsh/zsh/%{version}/zsh-%{version}.tar.xz.asc
|
||||||
|
Source2: %{name}.keyring
|
||||||
|
Source3: zshrc
|
||||||
|
Source4: zshenv
|
||||||
|
Source5: zprofile
|
||||||
|
Patch1: trim-unneeded-completions.patch
|
||||||
|
# PATCH-FIX-OPENSUSE zsh-osc-completion.patch -- Fix openSUSE versions in osc completion
|
||||||
|
Patch2: zsh-osc-completion.patch
|
||||||
|
# PATCH-FIX-OPENSUSE: taken from https://www.zsh.org/mla/workers/2022/msg00956.html
|
||||||
|
Patch3: egrep-deprecation.patch
|
||||||
|
Patch4: pipe-less-and-signals-handling.patch
|
||||||
|
|
||||||
|
BuildRequires: groff
|
||||||
|
BuildRequires: libcap-devel
|
||||||
|
BuildRequires: ncurses-devel
|
||||||
|
BuildRequires: pcre-devel
|
||||||
|
%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora_version}
|
||||||
|
Source11: zlogin.rhs
|
||||||
|
Source12: zlogout.rhs
|
||||||
|
Source13: zprofile.rhs
|
||||||
|
Source14: zshrc.rhs
|
||||||
|
Source15: zshenv.rhs
|
||||||
|
Source16: dotzshrc.rh
|
||||||
|
%endif
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
BuildRequires: fdupes
|
||||||
|
Requires(pre): %{install_info_prereq}
|
||||||
|
%if 0%{?suse_version} >= 1210
|
||||||
|
BuildRequires: makeinfo
|
||||||
|
BuildRequires: texi2html
|
||||||
|
%endif
|
||||||
|
%else
|
||||||
|
Requires(pre): /sbin/install-info
|
||||||
|
Requires(pre): fileutils
|
||||||
|
Requires(pre): grep
|
||||||
|
%endif
|
||||||
|
%if 0%{?suse_version} >= 1550
|
||||||
|
Provides: /bin/zsh
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
Zsh is a UNIX command interpreter (shell) that resembles the Korn shell
|
||||||
|
(ksh). It is not completely compatible. It includes many enhancements,
|
||||||
|
notably in the command-line editor, options for customizing its
|
||||||
|
behavior, file name globbing, features to make C-shell (csh) users feel
|
||||||
|
at home, and extra features drawn from tcsh (another `custom' shell).
|
||||||
|
Zsh is well known for its command line completion.
|
||||||
|
|
||||||
|
%package htmldoc
|
||||||
|
Summary: Zsh shell manual in HTML format
|
||||||
|
Group: Documentation/HTML
|
||||||
|
Provides: %{name}-html = %{version}
|
||||||
|
Obsoletes: %{name}-html < %{version}
|
||||||
|
|
||||||
|
%description htmldoc
|
||||||
|
The zsh shell is a command interpreter usable as an interactive login
|
||||||
|
shell and as a shell script command processor. Zsh resembles the ksh
|
||||||
|
shell (the Korn shell), but includes many enhancements. Zsh supports
|
||||||
|
command line editing, built-in spelling correction, programmable
|
||||||
|
command completion, shell functions (with autoloading), a history
|
||||||
|
mechanism, and more.
|
||||||
|
|
||||||
|
This package contains the Zsh manual in HTML format.
|
||||||
|
|
||||||
|
%if 0%{?suse_version} >= 1550
|
||||||
|
%package sh
|
||||||
|
Summary: Handle behaviour of /bin/sh
|
||||||
|
Group: System/Shells
|
||||||
|
Requires: zsh = %{version}
|
||||||
|
Conflicts: alternative(sh)
|
||||||
|
Provides: alternative(sh)
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description sh
|
||||||
|
Use zsh as /bin/sh implementation.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
%patch1 -p1
|
||||||
|
%endif
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
# Remove executable bit
|
||||||
|
chmod 0644 Etc/changelog2html.pl
|
||||||
|
|
||||||
|
# Fix bindir path in some files
|
||||||
|
perl -p -i -e 's|%{_prefix}/local/bin|%{_bindir}|' \
|
||||||
|
Doc/intro.ms Misc/globtests.ksh Misc/globtests \
|
||||||
|
Misc/lete2ctl Util/check_exports Util/helpfiles \
|
||||||
|
Util/reporter Functions/VCS_Info/test-repo-git-rebase-*
|
||||||
|
|
||||||
|
%build
|
||||||
|
|
||||||
|
%configure \
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
--with-term-lib="ncursesw" \
|
||||||
|
--enable-cflags="%{optflags} -fPIE %(ncursesw6-config --cflags)" \
|
||||||
|
--enable-ldflags="%(ncursesw6-config --libs) -pie -Wl,-z,relro" \
|
||||||
|
%endif
|
||||||
|
--enable-fndir=%{_datadir}/%{name}/${version}/functions \
|
||||||
|
--enable-site-fndir=%{_datadir}/%{name}/site-functions \
|
||||||
|
--enable-function-subdirs \
|
||||||
|
--enable-maildir-support \
|
||||||
|
--with-tcsetpgrp \
|
||||||
|
--enable-cap \
|
||||||
|
--enable-multibyte \
|
||||||
|
--enable-pcre \
|
||||||
|
--enable-unicode9
|
||||||
|
|
||||||
|
# Copy _rpm completion from Redhat (bnc#900424)
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
cp Completion/Redhat/Command/_rpm Completion/openSUSE/Command/_rpm
|
||||||
|
%endif
|
||||||
|
|
||||||
|
make %{?_smp_mflags} all info html
|
||||||
|
|
||||||
|
# generate intro.ps
|
||||||
|
groff -Tps -ms Doc/intro.ms > intro.ps
|
||||||
|
|
||||||
|
# better name for html documentation
|
||||||
|
install -d -m 0755 Doc/htmldoc/
|
||||||
|
mv Doc/*.html Doc/htmldoc
|
||||||
|
|
||||||
|
# remove some unwanted files in Etc/
|
||||||
|
rm -f Etc/Makefile* Etc/*.yo
|
||||||
|
|
||||||
|
%install
|
||||||
|
%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora_version}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
%make_install install.info
|
||||||
|
%else
|
||||||
|
make DESTDIR=%{buildroot} install install.info
|
||||||
|
%endif
|
||||||
|
|
||||||
|
install -m 0755 -Dd %{buildroot}/{etc,bin}
|
||||||
|
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
# install SUSE configuration
|
||||||
|
install -m 0644 %{SOURCE3} %{SOURCE4} %{SOURCE5} %{buildroot}%{_sysconfdir}
|
||||||
|
|
||||||
|
# Create custom completion directory
|
||||||
|
mkdir %{buildroot}%{_sysconfdir}/zsh_completion.d
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora_version}
|
||||||
|
# install RHEL || CentOS || Fedora configuration
|
||||||
|
for i in zlogin zlogout zprofile zshrc zshenv; do
|
||||||
|
install -m 0644 $RPM_SOURCE_DIR/${i}.rhs %{buildroot}%{_sysconfdir}/$i
|
||||||
|
done
|
||||||
|
install -D -m 0644 %{SOURCE16} %{buildroot}%{_sysconfdir}/skel/.zshrc
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?suse_version} < 1550
|
||||||
|
# link zsh binary
|
||||||
|
%if 0%{?suse_version} || 0%{?rhel} <= 6
|
||||||
|
ln -sf %{_bindir}/zsh %{buildroot}/bin/zsh
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Remove versioned zsh binary
|
||||||
|
rm -f %{buildroot}%{_bindir}/zsh-*
|
||||||
|
%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora_version}
|
||||||
|
rm -f %{buildroot}/%{_infodir}/dir
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?suse_version} >= 1110
|
||||||
|
%fdupes %{buildroot}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create the symlink required for zsh-sh to handle /bin/sh
|
||||||
|
#
|
||||||
|
%if 0%{?suse_version} >= 1550
|
||||||
|
ln -s %{_bindir}/zsh %{buildroot}%{_bindir}/sh
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%check
|
||||||
|
%if ! 0%{?qemu_user_space_build}
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
make %{?_smp_mflags} check
|
||||||
|
%else
|
||||||
|
# FixMe: sometimes failing Test
|
||||||
|
#+ fn:echo:2: write error: broken pipe
|
||||||
|
#+ fn:2: write error: inappropriate ioctl for device
|
||||||
|
mv Test/E01options.ztst Test/E01options.ztst.mvd
|
||||||
|
%ifarch s390 s390x ppc ppc64
|
||||||
|
( cd Test
|
||||||
|
mkdir skipped
|
||||||
|
mv Y*.ztst skipped )
|
||||||
|
%endif
|
||||||
|
ZTST_verbose=0 make test
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%preun
|
||||||
|
%if ! 0%{?suse_version}
|
||||||
|
if [ "$1" = 0 ] ; then
|
||||||
|
/sbin/install-info --delete %{_infodir}/zsh.info.gz %{_infodir}/dir \
|
||||||
|
--entry="* zsh: (zsh). An enhanced bourne shell."
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%post
|
||||||
|
%if ! 0%{?suse_version}
|
||||||
|
if [ ! -f %{_sysconfdir}/shells ]; then
|
||||||
|
echo "%{_bindir}/zsh" > %{_sysconfdir}/shells
|
||||||
|
else
|
||||||
|
grep -q "^%{_bindir}/zsh$" %{_sysconfdir}/shells \
|
||||||
|
|| echo "%{_bindir}/zsh" >> %{_sysconfdir}/shells
|
||||||
|
fi
|
||||||
|
|
||||||
|
/sbin/install-info %{_infodir}/zsh.info.gz %{_infodir}/dir \
|
||||||
|
--entry="* zsh: (zsh). An enhanced bourne shell."
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%if ! 0%{?suse_version}
|
||||||
|
if [ "$1" = 0 ] ; then
|
||||||
|
if [ -f %{_sysconfdir}/shells ] ; then
|
||||||
|
TmpFile=`%{_bindir}/mktemp /tmp/.zshrpmXXXXXX`
|
||||||
|
grep -v '^%{_bindir}/zsh$' %{_sysconfdir}/shells > $TmpFile
|
||||||
|
cp -f $TmpFile %{_sysconfdir}/shells
|
||||||
|
rm -f $TmpFile
|
||||||
|
chmod 644 %{_sysconfdir}/shells
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%files
|
||||||
|
%doc ChangeLog FEATURES LICENCE MACHINES META-FAQ NEWS README
|
||||||
|
%doc Etc/* intro.ps Misc/compctl-examples
|
||||||
|
%config(noreplace) %{_sysconfdir}/zshrc
|
||||||
|
%config(noreplace) %{_sysconfdir}/zshenv
|
||||||
|
%config(noreplace) %{_sysconfdir}/zprofile
|
||||||
|
%if 0%{?rhel_version} || 0%{?centos_version} || 0%{?fedora_version}
|
||||||
|
%config(noreplace) %{_sysconfdir}/zlogin
|
||||||
|
%config(noreplace) %{_sysconfdir}/zlogout
|
||||||
|
%config(noreplace) %{_sysconfdir}/skel/.zshrc
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if 0%{?suse_version}
|
||||||
|
%dir %{_sysconfdir}/zsh_completion.d
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%{_bindir}/zsh
|
||||||
|
%if 0%{?suse_version} < 1550
|
||||||
|
%if 0%{?suse_version} || 0%{?rhel} <= 6
|
||||||
|
/bin/zsh
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
%{_libdir}/zsh/
|
||||||
|
%{_datadir}/zsh/
|
||||||
|
%{_infodir}/zsh.info*%{ext_info}
|
||||||
|
%{_mandir}/man1/zsh*.1%{ext_man}
|
||||||
|
|
||||||
|
%files htmldoc
|
||||||
|
%doc Doc/htmldoc/*
|
||||||
|
|
||||||
|
%if 0%{?suse_version} >= 1550
|
||||||
|
%files sh
|
||||||
|
%{_bindir}/sh
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
9
zshenv.rhs
Normal file
9
zshenv.rhs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#
|
||||||
|
# /etc/zshenv is sourced on all invocations of the
|
||||||
|
# shell, unless the -f option is set. It should
|
||||||
|
# contain commands to set the command search path,
|
||||||
|
# plus other important environment variables.
|
||||||
|
# .zshenv should not contain commands that produce
|
||||||
|
# output or assume the shell is attached to a tty.
|
||||||
|
#
|
||||||
|
|
315
zshrc
Normal file
315
zshrc
Normal file
@ -0,0 +1,315 @@
|
|||||||
|
# Custom completion support via /etc/zsh_completion.d
|
||||||
|
fpath=( $fpath /etc/zsh_completion.d )
|
||||||
|
|
||||||
|
# zsh line editing
|
||||||
|
: ${ZSHEDIT:="emacs"}
|
||||||
|
: ${TERM:=linux}
|
||||||
|
|
||||||
|
if [[ "$ZSHEDIT" == "vi" ]] then
|
||||||
|
bindkey -v
|
||||||
|
else
|
||||||
|
bindkey -e
|
||||||
|
bindkey "^[ " magic-space
|
||||||
|
bindkey "^[!" expand-history
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
HISTSIZE=1000
|
||||||
|
HISTFILE=${HOME}/.zsh_history
|
||||||
|
SAVEHIST=500
|
||||||
|
|
||||||
|
# Prompt on the right side. zsh feature
|
||||||
|
#RPROMPT="[%T]"
|
||||||
|
|
||||||
|
# Set/unset shell options
|
||||||
|
setopt nocorrect
|
||||||
|
setopt pushdtohome
|
||||||
|
setopt autolist
|
||||||
|
setopt nopromptcr
|
||||||
|
setopt nocorrectall
|
||||||
|
setopt autocd
|
||||||
|
setopt recexact
|
||||||
|
setopt longlistjobs
|
||||||
|
setopt histignoredups
|
||||||
|
setopt pushdsilent
|
||||||
|
setopt appendhistory
|
||||||
|
setopt histexpiredupsfirst
|
||||||
|
setopt autopushd
|
||||||
|
setopt pushdminus
|
||||||
|
setopt extendedglob
|
||||||
|
setopt rcquotes
|
||||||
|
unsetopt bgnice
|
||||||
|
unsetopt autoparamslash
|
||||||
|
unsetopt hup
|
||||||
|
|
||||||
|
# Setup some basic programmable completions. To see more examples
|
||||||
|
# of these, check out /usr/doc/packages/zsh/compctl-examples.
|
||||||
|
# You you have a slow machine, you might want to comment the lines below
|
||||||
|
# with compctl in, and comment the below two lines out.
|
||||||
|
#
|
||||||
|
# compctl -g '*(-/)' cd pushd
|
||||||
|
# compctl -g '*(/)' rmdir dircmp
|
||||||
|
# compctl -j -P % -x 's[-] p[1]' -k signals -- kill
|
||||||
|
# compctl -j -P % fg bg wait jobs disown
|
||||||
|
# compctl -A shift
|
||||||
|
# compctl -caF type whence which
|
||||||
|
# compctl -F unfunction
|
||||||
|
# compctl -a unalias
|
||||||
|
# compctl -v unset typeset declare vared readonly export integer
|
||||||
|
# compctl -e disable
|
||||||
|
# compctl -d enable
|
||||||
|
#
|
||||||
|
# The default way is the usage of the zsh built-in completer
|
||||||
|
# Comment the two below lines out, if you are on a slow machine, and
|
||||||
|
# comment the above compctl lines in.
|
||||||
|
|
||||||
|
autoload -U compinit
|
||||||
|
compinit
|
||||||
|
|
||||||
|
# Completion so "cd ..<TAB>" -> "cd ../"
|
||||||
|
# zstyle ':completion:*' special-dirs ..
|
||||||
|
|
||||||
|
# Online help
|
||||||
|
unalias run-help 2>/dev/null || true
|
||||||
|
autoload run-help
|
||||||
|
|
||||||
|
# Don't use zsh builtin which
|
||||||
|
alias which >/dev/null && unalias which
|
||||||
|
|
||||||
|
# Common standard keypad and cursor
|
||||||
|
bindkey "^[[2~" yank
|
||||||
|
bindkey "^[[3~" delete-char
|
||||||
|
|
||||||
|
# History completion on pgup and pgdown
|
||||||
|
autoload -U history-search-end
|
||||||
|
zle -N history-beginning-search-backward-end history-search-end
|
||||||
|
zle -N history-beginning-search-forward-end history-search-end
|
||||||
|
bindkey "^[[5~" history-beginning-search-backward-end
|
||||||
|
bindkey "^[[6~" history-beginning-search-forward-end
|
||||||
|
|
||||||
|
if [[ "$TERM" == "xterm" || "$TERM" == "xterm-256color" ]] then
|
||||||
|
bindkey "^[2;5~" yank
|
||||||
|
bindkey "^[3;5~" delete-char
|
||||||
|
bindkey "^[5;5~" up-history
|
||||||
|
bindkey "^[6;5~" down-history
|
||||||
|
fi
|
||||||
|
bindkey "^[[C" forward-char
|
||||||
|
bindkey "^[[D" backward-char
|
||||||
|
bindkey "^[[A" up-history
|
||||||
|
bindkey "^[[B" down-history
|
||||||
|
|
||||||
|
# Avoid network problems
|
||||||
|
# ... \177 (ASCII-DEL) and \010 (ASCII-BS)
|
||||||
|
# do `backward-delete-char'
|
||||||
|
# Note: `delete-char' is maped to \033[3~
|
||||||
|
# Therefore xterm's responce on pressing
|
||||||
|
# key Delete or KP-Delete should be
|
||||||
|
# \033[3~ ... NOT \177
|
||||||
|
bindkey "^?" backward-delete-char
|
||||||
|
bindkey "^H" backward-delete-char
|
||||||
|
|
||||||
|
# Home and End
|
||||||
|
if [[ "$TERM" == "xterm" || "$TERM" == "xterm-256color" ]] then
|
||||||
|
# Normal keypad and cursor of xterm
|
||||||
|
bindkey "^[[1~" history-search-backward
|
||||||
|
bindkey "^[[4~" set-mark-command
|
||||||
|
bindkey "^[[H" beginning-of-line
|
||||||
|
bindkey "^[[F" end-of-line
|
||||||
|
# Home and End of application keypad and cursor of xterm
|
||||||
|
bindkey "^[OH" beginning-of-line
|
||||||
|
bindkey "^[OF" end-of-line
|
||||||
|
bindkey "^[O5H" beginning-of-line
|
||||||
|
bindkey "^[O5F" end-of-line
|
||||||
|
else
|
||||||
|
if [[ "$TERM" == "kvt" ]] then
|
||||||
|
bindkey "^[[1~" history-search-backward
|
||||||
|
bindkey "^[[4~" set-mark-command
|
||||||
|
bindkey "^[OH" beginning-of-line
|
||||||
|
bindkey "^[OF" end-of-line
|
||||||
|
else
|
||||||
|
# TERM=linux or console
|
||||||
|
bindkey "^[[1~" beginning-of-line
|
||||||
|
bindkey "^[[4~" end-of-line
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Application keypad and cursor of xterm
|
||||||
|
if [[ "$TERM" == "xterm" || "$TERM" == "xterm-256color" ]] then
|
||||||
|
bindkey "^[OD" backward-char
|
||||||
|
bindkey "^[OC" forward-char
|
||||||
|
bindkey "^[OA" up-history
|
||||||
|
bindkey "^[OB" down-history
|
||||||
|
# DEC keyboard KP_F1 - KP_F4
|
||||||
|
bindkey -s "^[OP" "^["
|
||||||
|
bindkey "^[OQ" undo
|
||||||
|
bindkey "^[OR" undefined-key
|
||||||
|
bindkey "^[OS" kill-line
|
||||||
|
fi
|
||||||
|
if [[ "$TERM" == "gnome" ]] then
|
||||||
|
# or gnome terminal F1 - F4
|
||||||
|
bindkey -s "^[OP" "^["
|
||||||
|
bindkey "^[OQ" undo
|
||||||
|
bindkey "^[OR" undefined-key
|
||||||
|
bindkey "^[OS" kill-line
|
||||||
|
fi
|
||||||
|
# Function keys F1 - F12
|
||||||
|
if [[ "$TERM" == "linux" ]] then
|
||||||
|
# On console the first five function keys
|
||||||
|
bindkey "^[[[A" undefined-key
|
||||||
|
bindkey "^[[[B" undefined-key
|
||||||
|
bindkey "^[[[C" undefined-key
|
||||||
|
bindkey "^[[[D" undefined-key
|
||||||
|
bindkey "^[[[E" undefined-key
|
||||||
|
else
|
||||||
|
# The first five standard function keys
|
||||||
|
bindkey "^[[11~" undefined-key
|
||||||
|
bindkey "^[[12~" undefined-key
|
||||||
|
bindkey "^[[13~" undefined-key
|
||||||
|
bindkey "^[[14~" undefined-key
|
||||||
|
bindkey "^[[15~" undefined-key
|
||||||
|
fi
|
||||||
|
bindkey "^[[17~" undefined-key
|
||||||
|
bindkey "^[[18~" undefined-key
|
||||||
|
bindkey "^[[19~" undefined-key
|
||||||
|
bindkey "^[[20~" undefined-key
|
||||||
|
bindkey "^[[21~" undefined-key
|
||||||
|
# Note: F11, F12 are identical with Shift_F1 and Shift_F2
|
||||||
|
bindkey "^[[23~" undefined-key
|
||||||
|
bindkey "^[[24~" undefined-key
|
||||||
|
|
||||||
|
# Shift Function keys F1 - F12
|
||||||
|
# identical with F11 - F22
|
||||||
|
#
|
||||||
|
# bindkey "^[[23~" undefined-key
|
||||||
|
# bindkey "^[[24~" undefined-key
|
||||||
|
bindkey "^[[25~" undefined-key
|
||||||
|
bindkey "^[[26~" undefined-key
|
||||||
|
# DEC keyboard: F15=^[[28~ is Help
|
||||||
|
bindkey "^[[28~" undefined-key
|
||||||
|
# DEC keyboard: F16=^[[29~ is Menu
|
||||||
|
bindkey "^[[29~" undefined-key
|
||||||
|
bindkey "^[[31~" undefined-key
|
||||||
|
bindkey "^[[32~" undefined-key
|
||||||
|
bindkey "^[[33~" undefined-key
|
||||||
|
bindkey "^[[34~" undefined-key
|
||||||
|
if [[ "$TERM" == "xterm" || "$TERM" == "xterm-256color" ]] then
|
||||||
|
# Not common
|
||||||
|
bindkey "^[[35~" undefined-key
|
||||||
|
bindkey "^[[36~" undefined-key
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$TERM" == "xterm" || "$TERM" == "xterm-256color" ]] then
|
||||||
|
# Application keypad and cursor of xterm
|
||||||
|
# with NumLock ON
|
||||||
|
#
|
||||||
|
# Operators
|
||||||
|
bindkey -s "^[Oo" "/"
|
||||||
|
bindkey -s "^[Oj" "*"
|
||||||
|
bindkey -s "^[Om" "-"
|
||||||
|
bindkey -s "^[Ok" "+"
|
||||||
|
bindkey -s "^[Ol" ","
|
||||||
|
bindkey -s "^[OM" "\n"
|
||||||
|
bindkey -s "^[On" "."
|
||||||
|
# Numbers
|
||||||
|
bindkey -s "^[Op" "0"
|
||||||
|
bindkey -s "^[Oq" "1"
|
||||||
|
bindkey -s "^[Or" "2"
|
||||||
|
bindkey -s "^[Os" "3"
|
||||||
|
bindkey -s "^[Ot" "4"
|
||||||
|
bindkey -s "^[Ou" "5"
|
||||||
|
bindkey -s "^[Ov" "6"
|
||||||
|
bindkey -s "^[Ow" "7"
|
||||||
|
bindkey -s "^[Ox" "8"
|
||||||
|
bindkey -s "^[Oy" "9"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# EMACS line editing
|
||||||
|
if [[ "$ZSHEDIT" == "emacs" ]] then
|
||||||
|
# ... xterm application cursor
|
||||||
|
if [[ "$TERM" == "xterm" || "$TERM" == "xterm-256color" ]] then
|
||||||
|
bindkey "^[^[OD" backward-word
|
||||||
|
bindkey "^[^[OC" forward-word
|
||||||
|
bindkey "^[^[OA" up-history
|
||||||
|
bindkey "^[^[OB" down-history
|
||||||
|
bindkey "^^[OD" backward-char
|
||||||
|
bindkey "^^[OC" forward-char
|
||||||
|
bindkey "^^[OA" up-history
|
||||||
|
bindkey "^^[OB" down-history
|
||||||
|
fi
|
||||||
|
# Standard cursor
|
||||||
|
bindkey "^[^[[D" backward-word
|
||||||
|
bindkey "^[^[[C" forward-word
|
||||||
|
bindkey "^[^[[A" up-history
|
||||||
|
bindkey "^[^[[B" down-history
|
||||||
|
bindkey "^^[[D" backward-char
|
||||||
|
bindkey "^^[[C" forward-char
|
||||||
|
bindkey "^^[[A" up-history
|
||||||
|
bindkey "^^[[B" down-history
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Aliases exported from /etc/bash.bashrc
|
||||||
|
alias ..='cd ..'
|
||||||
|
alias ...='cd ../..'
|
||||||
|
alias beep='echo -en "\007"'
|
||||||
|
alias cd..='cd ..'
|
||||||
|
alias dir='ls -l'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias ip='ip --color=auto'
|
||||||
|
alias l='ls -alF'
|
||||||
|
alias la='ls -la'
|
||||||
|
alias ll='ls -l'
|
||||||
|
alias ls-l='ls -l'
|
||||||
|
alias md='mkdir -p'
|
||||||
|
alias o=less
|
||||||
|
alias rd=rmdir
|
||||||
|
alias unmount='echo "Error: Try the command: umount" 1>&2; false'
|
||||||
|
alias which-command=whence
|
||||||
|
alias you='if test "$EUID" = 0 ; then /sbin/yast2 online_update ; else su - -c "/sbin/yast2 online_update" ; fi'
|
||||||
|
|
||||||
|
test -s $HOME/.alias && . $HOME/.alias
|
||||||
|
|
||||||
|
#
|
||||||
|
# Colored file listings
|
||||||
|
#
|
||||||
|
if test -x /usr/bin/dircolors ; then
|
||||||
|
#
|
||||||
|
# set up the color-ls environment variables:
|
||||||
|
#
|
||||||
|
if test -f $HOME/.dir_colors ; then
|
||||||
|
eval "`/usr/bin/dircolors -b $HOME/.dir_colors`"
|
||||||
|
elif test -f /etc/DIR_COLORS ; then
|
||||||
|
eval "`/usr/bin/dircolors -b /etc/DIR_COLORS`"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ls color option depends on the terminal
|
||||||
|
# If LS_COLORS is set but empty, the terminal has no colors.
|
||||||
|
if test "${LS_COLORS+empty}" = "${LS_COLORS:+empty}" ; then
|
||||||
|
LS_OPTIONS=--color=tty
|
||||||
|
else
|
||||||
|
LS_OPTIONS=--color=none
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$UID" = 0 ; then
|
||||||
|
LS_OPTIONS="-A -N $LS_OPTIONS -T 0"
|
||||||
|
else
|
||||||
|
LS_OPTIONS="-N $LS_OPTIONS -T 0"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Avoid trouble with Emacs shell mode
|
||||||
|
if test "$EMACS" = "t" ; then
|
||||||
|
LS_OPTIONS='-N --color=none -T 0';
|
||||||
|
fi
|
||||||
|
export LS_OPTIONS
|
||||||
|
|
||||||
|
# Set GPG_TTY for curses pinentry
|
||||||
|
# (see man gpg-agent and bnc#619295)
|
||||||
|
if test -t && type -p tty > /dev/null 2>&1 ; then
|
||||||
|
GPG_TTY="`tty`"
|
||||||
|
export GPG_TTY
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Read custom system-wide config if exists
|
||||||
|
test -s /etc/zsh.zshrc.local && . /etc/zsh.zshrc.local
|
50
zshrc.rhs
Normal file
50
zshrc.rhs
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#
|
||||||
|
# /etc/zshrc is sourced in interactive shells. It
|
||||||
|
# should contain commands to set up aliases, functions,
|
||||||
|
# options, key bindings, etc.
|
||||||
|
#
|
||||||
|
|
||||||
|
## shell functions
|
||||||
|
#setenv() { export $1=$2 } # csh compatibility
|
||||||
|
|
||||||
|
# Set prompts
|
||||||
|
PROMPT='[%n@%m]%~%# ' # default prompt
|
||||||
|
#RPROMPT=' %~' # prompt for right side of screen
|
||||||
|
|
||||||
|
# bindkey -v # vi key bindings
|
||||||
|
# bindkey -e # emacs key bindings
|
||||||
|
bindkey ' ' magic-space # also do history expansion on space
|
||||||
|
|
||||||
|
# Provide pathmunge for /etc/profile.d scripts
|
||||||
|
pathmunge()
|
||||||
|
{
|
||||||
|
if ! echo $PATH | /bin/grep -qE "(^|:)$1($|:)" ; then
|
||||||
|
if [ "$2" = "after" ] ; then
|
||||||
|
PATH=$PATH:$1
|
||||||
|
else
|
||||||
|
PATH=$1:$PATH
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_src_etc_profile_d()
|
||||||
|
{
|
||||||
|
# Make the *.sh things happier, and have possible ~/.zshenv options like
|
||||||
|
# NOMATCH ignored.
|
||||||
|
emulate -L ksh
|
||||||
|
|
||||||
|
|
||||||
|
# from bashrc, with zsh fixes
|
||||||
|
if [[ ! -o login ]]; then # We're not a login shell
|
||||||
|
for i in /etc/profile.d/*.sh; do
|
||||||
|
if [ -r "$i" ]; then
|
||||||
|
. $i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
unset i
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
_src_etc_profile_d
|
||||||
|
|
||||||
|
unset -f pathmunge _src_etc_profile_d
|
||||||
|
|
Loading…
Reference in New Issue
Block a user