On Tuesday 10 of April 2012 00:36:36 Darrell Anderson wrote: > > As I mentioned in previous posts, the current mechanism in > > starttde causes $TDEDIRS to be ignored when $XDG_DATA_DIRS > > is explicitly defined in the environment. > > > > This is what we need to add to the existing snippet > > regarding $XDG_DATA_DIRS: > > > > * When $TDEDIRS is not defined in the environment, do > > nothing additional. Leave functionality as is. > > > > * When $TDEDIRS is defined then parse that variable into > > separate directories. Use those separate directories to form > > the $XDG_DATA_DIRS variable. > > > > Notes: > > > > Explicitly declaring $XDG_DATA_DIRS will override $TDEDIRS, > > which must then be explicitly identified in the > > $XDG_DATA_DIRS string to remain useful. When $XDG_DATA_DIRS > > is not explicitly declared, then $TDEDIRS is recognized and > > works as intended. Therefore we need to compensate when > > explicitly declaring $XDG_DATA_DIRS. > > > > The $TDEDIR variable is intended to be singular and $TDEDIRS > > plural. When $TDEDIRS exists in the environment then parse > > that variable into separate directories. > > > > By design, $TDEDIRS should contain whatever is set in > > $TDEDIR. Therefore any additional directories set in > > $TDEDIRS are intended to override data files found in > > $TDEDIR. In both $TDEDIRS and $XDG_DATA_DIRS, those > > additional directories should be placed before $TDEDIR and > > before /usr/share. > > > > In $XDG_DATA_DIRS, $TDEDIR should be placed before > > /usr/share to ensure those data files override anything in > > /usr/share. > > > > For example, on my system I have the following: > > > > $TDEDIR=/opt/trinity > > $TDEDIRS=/usr/local/tde-mods:/opt/trinity > > > > Therefore in my system, $XDG_DATA_DIRS should look like > > this: > > > > XDG_DATA_DIRS=/usr/local/tde-mods/share:/opt/trinity/share:/usr/share > > > > I know of no limitations for expanding $TDEDIRS. > > Theoretically then, $TDEDIRS could contain more than two > > directories, but the last directory in the $TDEDIRS variable > > should always be what is defined in $TDEDIR. > > > > For example, the following presumably could exist: > > > > $TDEDIR=/opt/trinity > > $TDEDIRS=/usr/local/tde-mods:/opt/tde-mods:/opt/trinity > > > > Therefore $XDG_DATA_DIRS would look like this: > > > > XDG_DATA_DIRS=/usr/local/tde-mods/share:/opt/tde-mods/share:/opt/trinity/ > >share:/usr/share > > I posted a patch to starttde in bug report 675 > (http://bugs.pearsoncomputing.net/show_bug.cgi?id=675). > > The patch works here. Please test. > > Thanks. > > Darrell > Lastly I looked at the patch - it looks good. Just one note: $TDEDIR/share/man is "added" to the MANPATH, even when empty. But instead of direct testing MANPATH probably should be checked output from call `manpath`. Slávek --