Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

bug in zsh 2.6 beta 11: xkeysymdb



If this is a mailing list, I do not subscribe to it (but follow the
instructions in mailing to it), and would appreciate a CC.

I am upgrading from 2.3.1.  The reason I am not upgrading from a later
version is that no other version compiled and ran correctly on both
Solaris and SunOS.  Everything works fine with 2.3.1 but 2.6 beta 11
fails to read my dot files correctly.

beta11 compiles cleanly but has the following bug and complains of a
syntax error in my .zshrc that I cannot locate.  It says ".zshrc:
parse error near `)' [307]".  I will spare you my .zshrc but hope that
future versions can locate syntax errors better.  Note that 2.3.1 does
not complain at all.  I have no idea where the error is or whether
there is one.  All parentheses and braces and brackets match that I
know of.

Here is the bug.  .zslow is a file that I load only once from my
.zshenv file.  It works with 2.3.1.

% . .zslow
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [291]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [561]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [831]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [1101]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [1371]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [1641]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [1911]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [2181]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [2451]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [2721]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [2991]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [3261]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [3531]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [3801]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [4071]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [4341]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [4611]
.zslow: no such file or directory: usr/local/X.V11R5/lib/XKeysymDB [4881]

usr/local/X.V11R5/lib/XKeysymDB exists.  I see 3 errors:

	o zsh cares whether it exists
	o zsh says it does not exist
	o zsh infinitely recurses or something

Here is the file.  Hope it helps.

#
#.zslow
#
#this file is dotted by .zshenv
#
#everything here is inherited by subshells or subprocesses.
#

#ugh, recursion
typeset -x zshenvloadedp=t
#touch ~/.beginning-zslow

#!!!!see also .zshrc
umask 007

#typeset -x USER=kpc@xxxxxxxxxxxxxxxxxxxx
typeset -x homehost=phenotype.arc.nasa.gov			#!!!!
typeset -x homeuid=kpc			#!!!!

typeset -x XKEYSYMDB=/usr/local/X.V11R5/lib/XKeysymDB
#typeset -x LD_LIBRARY_PATH=/usr/local/X.V11R5/lib
#this causes problems with programs copied from sunos
#typeset -x LD_LIBRARY_PATH=/usr/lib:/usr/local/X.V11R5/lib:/usr/ucblib
#works typeset -x LD_LIBRARY_PATH=/usr/local/X.V11R5/lib:/usr/ucblib
#typeset -x LD_LIBRARY_PATH=/usr/local/X.V11R5/lib:/usr/4lib:/usr/ucblib
#typeset -x LD_LIBRARY_PATH=/usr/local/X.V11R5/lib
typeset -x LD_LIBRARY_PATH=/usr/local/lib/motif/usr/lib:/usr/local/X.V11R5/lib

#
#paths
#

#path=($path /usr/ucb /usr/bin /usr/etc)
#:/usr/local/X.V11R5/bin/motif1.2\

#/usr/local/sunos-bin contains binaries from sunos that might be
#slower under solaris due to sunos compatibility library.  i don't
#know anything about this, however.

setpath () {
	if [ -d $1 -a -x $1 ]
	then
		PATH=$PATH:$1
	fi
}

setlocalpaths () {		#local paths in my home directory
	uid=${1:?}

	setpath ~"$uid"/local/user-host/bin
	setpath ~"$uid"/local/host/bin
	setpath ~"$uid"/local/arch/bin
	setpath ~"$uid"/local/site/bin
	setpath ~"$uid"/local/user/bin
}

#The first item in the path should not start with a colon, to prevent ::
#typeset -x PATH=/dev/null/xyzzy-nonexistent-bin
typeset -x PATH=~/sbin
setlocalpaths $LOGNAME
if [ "$LOGNAME" != "$homeuid" ]
then
	setpath ~"$homeuid"/sbin
	setlocalpaths $homeuid
fi

#
#standard paths
#

#
#zsh 2.3.1 at least sometimes prints not a directory if there is a
#non-executable file in path.  also ~user fails if user is a program
#in path.
#

setpath /bin
setpath /usr/bin

setpath /usr/local2/GNU/bin
setpath /usr/local/GNU/bin
setpath /usr/local2/GNU/sparc-sun-sunos4.1.3/bin
setpath /usr/local2/GNU/sparc-sun-solaris2.3/bin
setpath /usr/local2/GNU/sparc-sun-solaris2.4/bin
setpath /usr/local2/GNU/sparc-sun-solaris2.5/bin
setpath /usr/local/GNU/sparc-sun-sunos4.1.3/bin
setpath /usr/local/GNU/sparc-sun-solaris2.3/bin
setpath /usr/local/GNU/sparc-sun-solaris2.4/bin
setpath /usr/local/GNU/sparc-sun-solaris2.5/bin
setpath /usr/gnu/bin
setpath /usr/fsf/bin
setpath /opt/gnu/bin

setpath /usr/local2/bin
setpath /usr/local/bin
setpath /usr/local/packages	#my thing for things like glimpse binaries
setpath /usr/local/share/bin
setpath /usr/share/bin
setpath /usr/5bin
setpath /usr/local/bin/sparc-sun-sunos4.1.3
setpath /usr/local/bin/sparc-sun-solaris2.3
setpath /usr/local/bin/sparc-sun-solaris2.4
setpath /usr/local/bin/sparc-sun-solaris2.5
setpath /usr/local/bin/Sparc10

#phenotype bw motif
setpath /usr/local/lib/motif/usr/bin/X11
setpath /usr/local/X.V11R5/bin
#4.1.3 network
setpath /usr/local/X.V11R5/bin/motif
#setpath /usr/X.V11R5/bin
#setpath /usr/X.V11R5/bin/motif
#setpath /usr/local/X11/bin
#setpath /usr/X11/bin
#setpath /usr/local/X.V11R4/bin
#setpath /usr/local/bin/X.V11R4
#setpath /usr/local/X.V11R6/bin
#setpath /usr/local/X.V11R6/bin/motif
#setpath /usr/X.V11R6/bin

setpath /etc
setpath /usr/etc
setpath /usr/local/etc
setpath /usr/lib
setpath /sbin
setpath /usr/sbin
setpath /usr/kvm
setpath /usr/demo
setpath /usr/games
setpath /usr/sccs
setpath /usr/local/bin/news
setpath /usr/local/lib/news
setpath /usr/lib/news
setpath /usr/ncd/sparc
setpath /usr/diag/sundiag
setpath /usr/diag
setpath /usr/ccs/bin
setpath /opt/SUNWabe/bin
setpath /opt/SUNWcg12/bin
setpath /opt/SUNWdiag/bin
setpath /opt/SUNWdxlib/bin
setpath /opt/SUNWgt/bin
setpath /opt/SUNWits/bin
setpath /opt/SUNWleo/bin
setpath /opt/SUNWrtvc/bin
setpath /opt/SUNWtcx/bin
setpath /usr/ucb
setpath /usr/local/sunos-bin
setpath /usr/lib/sa
setpath /usr/lib/saf
setpath /usr/lib/acct
setpath /usr/lib/nfs
if [ ! -e ~/local/host/.standalone ]
then
	touch ~/.put-foreign-paths-in-zslow
	#stuff mounted on megawatt
	setpath /usr/ccf/bin
	setpath /usr/ccf/X11R5/bin
	setpath /usr/ccf/etc
	setpath /usr/ccf/perl5/bin
	setpath /usr/ccf/perl/bin
	setpath /usr/ccf/graphics/bin
	setpath /usr/ccf/hotjava/bin
	setpath /usr/ccf/texmaker/bin
	setpath /usr/ccf/texmaker/bin
	setpath /usr/ccf/openwin/bin
	setpath /usr/ccf/X11R6/bin
	#stuff on pluto or ptolemy copernicus kronos
	setpath /mnt/pluto/local/GNU/bin
	setpath /mnt/pluto/local/bin
	setpath /mnt/bin
	setpath /usr/openwin/bin
	setpath /usr/annex
	setpath /usr/lib/annex
fi

typeset -x MANPATH
MANPATH=.
MANPATH=${MANPATH}:man
MANPATH=${MANPATH}:/usr/local2/man
MANPATH=${MANPATH}:/usr/local/man
MANPATH=${MANPATH}:/usr/gnu/man
MANPATH=${MANPATH}:/opt/gnu/man
MANPATH=${MANPATH}:/usr/man
MANPATH=${MANPATH}:/usr/share/man
MANPATH=${MANPATH}:/usr/local/man/X.V11R5
MANPATH=${MANPATH}:/usr/ccf/man

typeset -x NAME=${LOGNAME:-?}		      #for gnus
typeset -x TEXEDIT="emacs +%d %s"
typeset -xr FCEDIT=emacs EDITOR=emacs VISUAL=emacs 
typeset -x PAGER=less
typeset -x LESS=iMnQsC
#typeset -x WEBSTERHOST=ames.arc.nasa.gov
typeset -x GZIP=--fast

#!!live dangerously (and try to avoid emacs crashes)
#unlimit filesize datasize stacksize coredumpsize resident descriptors
unlimit
#limit -h coredumpsize 1
#limit coredumpsize 1
#limit -h core 1
#limit core 1
#ulimit?
#soft limits do not seem to be useful for emacs at least

#
#executable paths
#

fix () {
	if [ -x $2 ]
	then
		echo $2
	else
		#echo $1 #!!!!
		whence -p $1
	fi
}

#there is a major problem with this: aliases get overridden.  it seems
typeset -x du=du ls=ls pa=pa man=man id=id

typeset -x cat=cat
typeset -x cut=cut
typeset -x wc=wc
typeset -x sed=sed
typeset -x rm=/bin/rm

typeset -x pk=~/sbin/pk
typeset -x web=~/sbin/web
typeset -x news=~/sbin/news
typeset -x save=~/sbin/save
typeset -x lisp=~/sbin/lisp
typeset -x z=~/sbin/z
typeset -x into=~/sbin/into

typeset -x grep=mygrep
typeset -x mygrepgrep=`fix grep /usr/local/bin/grep`
#!!!!inconsisntency; should be myfgrep shell script.  however, I
#only ever use fgrep for fgrep -vxhf, so the bugs fixed by
#mygrep should not appear.
typeset -x fgrep=`fix fgrep /usr/local/bin/fgrep`

typeset -x rsh=`fix rsh /usr/ucb/rsh`
typeset -x find=`fix find /usr/local/bin/find`
typeset -x gawk=`fix gawk /usr/local2/GNU/bin/gawk`
typeset -x gunzip=`fix gunzip /usr/local2/bin/gunzip`
typeset -x gzip=`fix gzip /usr/local2/bin/gzip`
typeset -x tail=tail
typeset -x diff=`fix diff /usr/local/sunos-bin/diff`
typeset -x head=`fix head /usr/local/sunos-bin/head`
typeset -x join=`fix join /usr/local2/bin/join`
typeset -x sort=`fix sort /usr/local2/bin/sort`
typeset -x tr=`fix tr /usr/ucb/tr`
typeset -x uniq=`fix uniq /usr/local2/bin/uniq`
typeset -x xargs=`fix xargs /usr/local/bin/xargs`

#functions are not exported and variables cannot contain spaces
case `uname -r` in
4.1.3) 	#typeset -x localls='/bin/ls -g'
	typeset -x localpsall='/bin/ps -auxw'
	typeset -x localid='/bin/id'
	typeset -x localdu='/bin/du'
	typeset -x localdf='/bin/df'
	typeset -x localman='man'
;;
5.3|5.4|5.5|*) 	#typeset -x localls='/bin/ls'
	#in 5.2, ps -l shows size
	typeset -x localpsall='/bin/ps -cefj'
	typeset -x localid='/bin/id -a'
	typeset -x localman='/bin/man -a'
	typeset -x localdu='/usr/ucb/du'
	typeset -x localdf='/usr/ucb/df'
	#typeset -x CC=/usr/local/bin/cc
;;
esac

export df=$localdf
export du=$localdf

touch ~/.loaded-zslow

---
kpc@xxxxxxxxxxxxxxxxxxxxx  AI, multidisciplinary neuroethology, info filtering.
Down with Caps-Lock!  Boycott keyboard makers when it displaces Control & Meta!



Messages sorted by: Reverse Date, Date, Thread, Author