[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: trivial patch 3

Usually Rob's memory is better than mine, but I think this time Rob is
confused on what happened.  In my memory, Hemlock no longer merges type
fields because of our fix to the system's understanding of shell dot files.
We did change how PARSE-NAMESTRING and NAMESTRING work, but we did this for
more reasons than the fact that completion worked funny with names like
".cshrc".  MERGE-PATHNAMES was generally losing because of the old way we
parsed file names.  In fact, we never fixed this after I drafted the
proposal for the change for almost an entire year, but we did finally fix
it if I remember correctly because the old broken MERGE-PATHNAMES was
screwing up the dired package.

Hemlock no longer appears to merge types because of the following scenario:
you mistakenly visit "my-code.txt" (note, .txt), and you try to then "Find
File" with typein ".lisp" (as ITS Emacs allowed) to fix the type problem.
This no longer works because ".lisp" is read as a pathname with the name
".lisp" and the type "".  Because the type is non-nil (there is a type,
only it is empty), Hemlock appears to no longer merge in type information.
Actually, PARSE-NAMESTRING and MERGE-PATHNAMES prevent conveniently filling
in the type to correct your previously failing "Find File" use.

Hemlock used to lose with names like ".cshrc" because you could never
complete dot file names.  The system required the user to type them out
fully because it didn't understand this was a file name, not a file type.

I originally proposed the change because my init file's dired hacks were
breaking, but when Blaine added them to the core to support the Hemlock
"Dired" mode, then we had to fix the core's understanding of pathnames.
Changing this back would require writing special code to fix the dired file