Function: ls-lisp-extension
ls-lisp-extension is a byte-compiled function defined in
ls-lisp.el.gz.
Signature
(ls-lisp-extension FILENAME)
Documentation
Return extension of FILENAME (ignoring any version extension) FOLLOWED by null and full filename, SOLELY for full alpha sort.
Source Code
;; Defined in /usr/src/emacs/lisp/ls-lisp.el.gz
(defun ls-lisp-extension (filename)
"Return extension of FILENAME (ignoring any version extension)
FOLLOWED by null and full filename, SOLELY for full alpha sort."
;; Force extension sort order: `no ext' then `null ext' then `ext'
;; to agree with GNU ls.
(concat
(let* ((i (length filename)) end)
(if (= (aref filename (1- i)) ?.) ; null extension
"\0"
(while (and (>= (setq i (1- i)) 0)
(/= (aref filename i) ?.)))
(if (< i 0) "\0\0" ; no extension
(if (/= (aref filename (1+ i)) ?~)
(substring filename (1+ i))
;; version extension found -- ignore it
(setq end i)
(while (and (>= (setq i (1- i)) 0)
(/= (aref filename i) ?.)))
(if (< i 0) "\0\0" ; no extension
(substring filename (1+ i) end))))
)) "\0" filename))