From: Douglas Alan on
If in bash, I do "set -P" then bash follows the "physical directory
structure" when doing "pwd" and "cd .." etc, rather than the "logical
one" that might be defined via symlinks. Unfortunately, bash still
doesn't obey the physical directory structure for filename completion.
How can I get bash to respect my authority on this issue?

Thanks!
|>ouglas

P.S. Unfortunately, the same problem has now afflicted Emacs for
opening files, etc. If anyone also knows how to also tell Emacs to
respect my physical directory structure, then I'd also like to know
the answer to that.

P.P.S. I don't know who decided that having some programs try to
fathom your "logical directory structure" was a good idea, but it's
not! Not unless you can convince every program in the world to do
things this way, since having some programs use your physical
directory structure, and having other ones use your logical directory
structure is a recipe for confusion and annoyance.
From: Greg Andrews on
Douglas Alan <darkwater42(a)gmail.com> writes:
>
>P.P.S. I don't know who decided that having some programs try to
>fathom your "logical directory structure" was a good idea, but it's
>not! Not unless you can convince every program in the world to do
>things this way, since having some programs use your physical
>directory structure, and having other ones use your logical directory
>structure is a recipe for confusion and annoyance.
>

If I understand you, you find the presence of both physical and
logical directory structures confusing and annoying, and as a result
you don't want programs to use the logical directory structure.

So why don't you remove the logical directory structure?

-Greg
--
::::::::::::: Greg Andrews ::::: gerg(a)panix.com :::::::::::::
I have a map of the United States that's actual size.
-- Steven Wright
From: Douglas Alan on
On Jan 5, 7:39 pm, g...(a)panix.com (Greg Andrews) wrote:
> Douglas Alan <darkwate...(a)gmail.com> writes:

> >P.P.S. I don't know who decided that having some programs try to
> >fathom your "logical directory structure" was a good idea, but it's
> >not! Not unless you can convince every program in the world to do
> >things this way, since having some programs use your physical
> >directory structure, and having other ones use your logical directory
> >structure is a recipe for confusion and annoyance.
>
> If I understand you, you find the presence of both physical and
> logical directory structures confusing and annoying, and as a result
> you don't want programs to use the logical directory structure.
>
> So why don't you remove the logical directory structure?

I've been using "logical directory structures" just fine for the last
25 years, and I have no intention of not using them, as I find them to
be utterly invaluable. What I find unpleasant is programs trying to be
too smart for their own good and changing behavior that used to be
perfectly well-defined. Now it's not well-defined, as some programs
have apparently to interpret ".." to mean something other than its
native Unix meaning.

I don't have to worry about the new logical/physical structure
dichotomy with tcsh, for instance. It continues to work the way it
always has, which was fine. Sometimes I have to use bash, however, and
when I do, I want to configure it to work correctly. I.e., I want ".."
to mean what Unix says it means, not what bash has decided to
reinterpret it as.

Re, Emacs: It changed its default behavior as of Emacs 23 (or perhaps
22, as I might have skipped 22), and this annoys me as it breaks
things that have worked fine for me for decades.

As long as I can reconfigure things so that they work the way that
have traditionally worked, I really don't care. But if I can't
reconfigure things to work according to traditional Unix semantics,
then that annoys me. "Do What I Mean" is not better than "Do What I
Say".

|>ouglas
From: Alan Curry on
In article <ea1edbda-d6a1-4348-a16a-d984efb01a0d(a)34g2000yqp.googlegroups.com>,
Douglas Alan <darkwater42(a)gmail.com> wrote:
>
>I don't have to worry about the new logical/physical structure
>dichotomy with tcsh, for instance.

tcsh had "set symlinks=chase", "set symlinks=ignore", "set symlinks=expand"
a long time ago. The "expand" option is even crazier than anything bash can
do.

You'd probably get better advice if you provided an actual example of
misbehavior instead of just ranting. Some kind of repeatable experiment.

From: Douglas Alan on
On Jan 6, 4:20 pm, pac...(a)kosh.dhis.org (Alan Curry) wrote:

> tcsh had "set symlinks=chase", "set symlinks=ignore", "set symlinks=expand"
> a long time ago. The "expand" option is even crazier than anything bash can
> do.

(1) These aren't set to something DWIMy by default. By default, tcsh
obeys standard Unix semantics. (2) If someone were to set these to a
DWIMy mode for me (e.g., in a system dot file), these options are well
documented, easy to find, and the variable is called, intuitively
enough, "symlinks".

I having nothing against DWIMy features as long as they are opt-in,
rather than opt-out. Or worst of all, no opt at all.

> You'd probably get better advice if you provided an actual example of
> misbehavior instead of just ranting. Some kind of repeatable experiment.

$ mkdir shortcuts
$ ln -s /etc shortcuts
$ ls shortcuts/etc/../<TAB>

When you type the <TAB>, bash will show you the contents of
"shortcuts", rather than the contents of "/". This is the behavior
that I strongly dislike, and doesn't obey standard Unix semantics.

If you type <CR> instead of <TAB>, however, ls will show you the
contents of the root directory, as it should.

Now if you do

$ cd shortcuts/etc/..

the working directory will now be "shortcuts", rather than "/". I
strongly dislike this, but fortunately this behavior can be fixed via
"set -P".

$ set -P
$ cd shortcuts/etc/..

Now the working directory is "/". And all is good. (Modulo bash
filename completion and Emacs.)

|>ouglas