On Thu, 29 May 2003 11:31, Oswald Buddenhagen wrote: > yep. it's [ double hashes ] a bash-ism (or a ksh-ism, fwiw). It came from from Korn, but it's POSIX shell syntax now. > other than that, i pretty much dislike this directory-based special-casing. i > think my suggestion with "file -z" (or equivalent) is much cleaner. I agree directory based conditionals are not ideal, but standard unix directory structures are a poor man's file type, and it's fast and it works. The only trouble is if you move a log file out of '/var/log' 'mc' would think the log file was a man page. Better than nothing though, and no speed hit. A 'file -z' clause wouldn't be locationally challenged, but it'd be slower. Example: file -z /var/log/syslog.1.gz /var/log/syslog.1.gz: regular file, file -z /usr/man/man1/debclean.1.gz /usr/man/man1/debclean.1.gz: ASCII troff or preprocessor input text (gzip compressed data, was "debclean.1", from Unix, max compression) ...then you've got to parse the output of that. Using substitutions like '##' would make that quick, but if substitutions are taboo, then it'd have to be 'grep'. Sample compressed man code: View=%view{ascii,nroff} t=`file -z %f | grep troff` ; if [ -z "$t" ] ; then gzip -dc %f ; else gzip -dc %f | nroff -c -Tlatin1 -mandoc ; fi This assumes 'troff' is a good magic word for man pages. Mostly it is, but how do you parse for this? file -z /usr/man/man1/sync.1.gz /usr/man/man1/sync.1.gz: ASCII English text (gzip compressed data, was "sync.1", from Unix, max compression) Apart from the directory name, there ain't nuthin there! :( Most efficient of all would be a new file type attribute created either when the file is first made, or on some regular basis, (like the locate database). "Never do at run time what you can do at compile time" goes the motto. The new ReiserFS offers many possibilities for this sort of thing. In the meantime, for those who prefer the 'file -z' way, attached is the same patch, changed so it does it the 'file -z | grep' way.
The following section of this message contains a file attachment prepared for transmission using the Internet MIME message format. If you are using Pegasus Mail, or any another MIME-compliant system, you should be able to save it or view it from within your mailer. If you cannot, please ask your system administrator for assistance. ---- File information ----------- File: mc.ext.2nd.patch Date: 27 May 2003, 2:02 Size: 1663 bytes. Type: Unknown
Attachment:
mc.ext.2nd.patch
Description: Binary data