export _home_short_dotbashrc=true
fi
-if [ -z "$_home_short_dotbashrc" ];then
+# "$PS1" for interactive shells detection.
+if [ -n "$PS1" -a -z "$_home_short_dotbashrc" ];then
# We permit later reinitialization by unsetting it.
# During our execution we forbid spawning to prevent deadlock by:
# source /etc/bashrc
if [ -f /etc/bashrc ];then source /etc/bashrc;fi
+_bash_profile_addpath_fini=""
function _bash_profile_addpath # <variablename>,<dirpathname>
{
local _varname _varval _varvalold _dirpathname _opt_f _opt_s
_opt_f=0;_opt_s=0
- unset OPTIND
+ unset -v OPTIND
while getopts fs got;do
case "$got" in
[fs]) eval "_opt_$got=1" ;;
if [ $_opt_s = 1 -o -z "`eval "echo \\${$_varname}"`" ];then
eval "$_varname='$_dirpathname'"
else
+ # We want to prevent duplicates due to .bashrc reentrancy across fork(2)s. It is array!
+ _bash_profile_addpath_fini="$_bash_profile_addpath_fini $_varname"
# We want to override any original directories, place dirpathname first!
- # We want to prevent duplicates due to .bashrc reentrancy across fork(2)s.
- eval "_varval=\":\${$_varname}:\""
- until [ "$_varval" = "$_varvalold" ];do
- _varvalold="$_varval"
- eval "_varval=\"$(echo "$_varval"|sed "s#:$_dirpathname:#:#g")\""
- done
- eval "$_varname=\"$_dirpathname$(echo "$_varval"|sed "s#:\$##g")\""
+ eval "$_varname=\"$_dirpathname:\${$_varname}\""
fi
export "$_varname"
}
+function _bash_profile_addpath_fini
+{
+ local _varname
+ for _varname in `echo "$_bash_profile_addpath_fini"|tr ' ' '\n'|sort -u`;do
+ eval "$_varname=\"`eval $(echo "echo \"\\$$_varname\"")|awk -v RS=':' '/[^\n]/{if (!x[$0]++) e=e":"$0;}END{print substr(e,2)}'`\""
+ done
+ unset -v _bash_profile_addpath_fini
+}
# Use reverse order of preferred directories:
# gid(1) dependency on: /opt/sfw/bin
_bash_profile_addpath -s JAVA_HOME "/usr/local/java"
uname_p="`uname -p 2>/dev/null || uname -m`"
[ "`uname`" = "SunOS" ] && _bash_profile_addpath -f LD_LIBRARY_PATH "$HOME/Netscape/dist/lib"
-for family in "/net/jsc-nfs.czech.sun.com/export/jscqa-local" "$HOME";do
- for arch in "$family" $family/$uname_p;do
+for family in $HOME;do
+ for arch in $family $family/$uname_p;do
# Do not "-f": We use /net !
_bash_profile_addpath PATH "$arch/bin"
_bash_profile_addpath PATH "$arch/OpenOffice.org"
unset _perldir
unset -f _bash_profile_addpath
+_bash_profile_addpath_fini
+unset -f _bash_profile_addpath_fini
for i in tar ls find cp mv ln md5sum du grep ar chown chmod tail;do
# Prevent g$i from system directory overriding customized $i binary
- which $i 2>/dev/null | grep /net/jsc-nfs.czech.sun.com/export/jscqa-local/ >/dev/null && continue
+ ###which $i 2>/dev/null | grep /net/jsc-nfs.czech.sun.com/export/jscqa-local/ >/dev/null && continue
which g$i 2>/dev/null | grep '^/' >/dev/null && alias $i=g$i
done
alias l='ls -lbF'
alias maple="ssh -t vega.fjfi.cvut.cz maple"
#alias cc='cc -I/home/short/include'
-alias vi='vim'
+if which vim &>/dev/null;then
+ alias vi='vim'
+else
+ echo >&2 'WARNING: No vim(1).'
+fi
alias grepb='grep --binary-files=binary'
alias L='lynx'
alias chown='chown --no-dereference'
+alias chgrp='chgrp --no-dereference'
alias hexedit='hexedit -s'
alias cvs2cl='cvs2cl --window 3600 --separate-header --no-wrap'
alias cvsfiles='cvsutil --files --print'
alias cvsignoresrm='cvsutil --ignores --rm'
alias cvsignoresrmall='cvsutil --ignores --workings --rm'
alias cvsignoresallrm='cvsutil --ignores --workings --rm'
+alias svnignoresall='svn status |sed -n "s/^[?] //p"'
+alias svnignoresallrm='svn status |sed -n "s/^[?] //p"|tr "\n" "\0"|xargs -0 rm -rf'
[ "`uname`" = "SunOS" -a -x $HOME/bin/rpm-by-pkg ] && alias rpm='rpm-by-pkg'
-alias rpmdb='rpm --define "_dbpath `echo /usr/lib/rpmdb/*/*`"'
alias disass='objdump -D --target=binary --architecture=i386'
+alias cal='cal -m'
+alias vncreadonly='vncviewer -FullColor -Shared -ViewOnly'
+alias diff='diff -u'
+alias rpmbuildlocal='rpmbuild --define "_topdir $PWD" --define "_builddir $PWD" --define "_rpmdir $PWD" --define "_sourcedir $PWD" --define "_specdir $PWD" --define "_srcrpmdir $PWD"'
+alias gdbn='gdb -nx --command=~/.gdbinit'
# '2>/dev/null' to prevent: unalias: x: not found
unalias 2>/dev/null cp # -i
export WWW_HOME="file://$HOME/"
[ -r $file ] && export WWW_HOME="file://$file"
done
-export GREP_OPTIONS="--binary-files=without-match --directories=skip --exclude=tags --exclude=TAGS --exclude=CVS"
+export GREP_OPTIONS="--binary-files=without-match --directories=skip"
+if echo x|GREP_OPTIONS="--exclude=y" grep -q x 2>/dev/null;then
+ export GREP_OPTIONS="$GREP_OPTIONS --exclude=tags --exclude=TAGS --exclude=CVS"
+fi
if [ -n "$PS1" ];then # set only in interactive sessions
export PS1='[bash]${LOGNAME}@${HOSTNAME}:${PWD}# '
export PS1='\[\017\]'"$PS1" # \017=std charmap
export https_proxy=http://127.0.0.1:3128/
export ftp_proxy=http://127.0.0.1:3128/
fi
+_selfabs=
+[ "$_selfabs" = "${_selfabs#/}" ] && _selfabs="$BASH_SOURCE"
+[ "$_selfabs" = "${_selfabs#/}" ] && _selfabs="$PWD/.bashrc"
+[ -r "$_selfabs" ] || unset _selfabs
+[ -n "$_selfabs" ] && export VIMINIT="source `echo "$_selfabs"|sed 's/[.]bashrc$/.vimrc/'`"
-export SOCKS5_SERVER=icsocks.holland.sun.com
+###export SOCKS5_SERVER=icsocks.holland.sun.com
# Force English.
unset LANG LANGUAGE `set|sed -n 's/^\(LC_[^=]*\)=.*$/\1/p'`
); };export -f mi
function ctags {(unset ctags;
if [ $# -ne 0 -a '(' $# -ne 1 -o "$1" '!=' "--c-types=+px" ')' ];then ctags "$@";else
- find -type f -a '!' -name tags -a '!' -name TAGS -a '(' -false \
+ find -name testsuite -prune -o -name .pc -prune -o -name .svn -o \
+ -type f -a '!' -name tags -a '!' -name TAGS -a '(' -false \
-o -name "*.[chC]" \
-o -name "*.cc" \
+ -o -name "*.cxx" \
-o -name "*.java" \
-o -name "*.p[lm]" \
+ -o -name "*.py" \
+ -o -name "*.exp" \
')' \
- |ctags --file-tags -L - "$@"
+ |ctags --file-tags -L - --langmap=Tcl:+.exp "$@"
fi; );}; export -f ctags
function ctagsh { ctags "--c-types=+px"; }; export -f ctagsh
function cpan {(unset cpan; if [ $# = 0 ];then cpan;else perl -MCPAN -e "install qw($*);";fi; );}; export -f cpan
|xargs rpm -qf|xargs rpmquery --qf '%{SOURCERPM}\n'|sed 's/-[^-]*-[^-]*[.]src[.]rpm$/-debuginfo/'|sort -u; }
function ipcsrmall { ipcs|awk '/- Shared Memory/{x="-m"}/- Semaphore/{x="-s"}/^0x/{print "ipcrm "x" "$2}'; }
function eog {(unset eog; touch /tmp/eog.$$;eog "$@" {,,,,,,,,,}/tmp/eog.$$;rm -f /tmp/eog.$$; );}; export -f eog
+function diffc { diff -u "$@"|grep -v '^\(Only in \|Binary files\)'; }; export -f diffc
+function diffi { diffc -X ~/.diffi.list "$@"; }; export -f diffi
+function cvs {(unset cvs;
+ local _opts _opts_d _now _line _o
+ if grep -iw '\(sources.redhat.com\|sourceware.org\):/cvs/src' CVS/Root &>/dev/null;then _opts_d="";else _opts_d="-d";fi
+ _now=false
+ _line=""
+ _opts=""
+ while [ $# != 0 ];do
+ _o="$1"
+ shift
+ _line="$_line $_o"
+ if [ "$_o" = "--" ] && ! $_now;then _now=true;continue;fi
+ if [ "${_o#-}" != "$_o" ] && ! $_now;then continue;fi
+ if [ "$_o" = update -o "$_o" = upd -o "$_o" = up ];then _opts="$_opts_d";fi
+ break
+ done
+ cvs $_line $_opts "$@"
+ ); }; export -f cvs
+function perlrpm { repoquery -q --whatprovides $(for i in "$@";do echo "perl($i)";done|sed -e 's/\//::/g' -e 's/[.]pm//g'); }; export -f perlrpm
ulimit -S -c 0
set +H
# Interactive part:
for key in $HOME/.ssh/id_dsa;do
[ -r "$key" ] || continue
- [ -n "$SSH_TTY" ] && continue
+ # Do not: [ -n "$SSH_TTY" ] && continue
+ # as we may want foreign SSH keys too.
agenteval=/tmp/.$USER.ssh-agent.eval
if lockfile -1 -r 3 -l 10 -s 1 $agenteval.lock;then