Function: idlwave-shell-repair-file-name
idlwave-shell-repair-file-name is a byte-compiled function defined in
idlw-shell.el.gz.
Signature
(idlwave-shell-repair-file-name FILE)
Documentation
Repair a file name string by taking out all linebreaks.
The last line of STRING may be garbage - we check which one makes a valid file name.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/idlw-shell.el.gz
(defun idlwave-shell-repair-file-name (file)
"Repair a file name string by taking out all linebreaks.
The last line of STRING may be garbage - we check which one makes a valid
file name."
(let ((file1 "") (file2 "") (start 0))
;; We scan no further than to the next "^%" line
(if (string-match "^%" file)
(setq file (substring file 0 (match-beginning 0))))
;; Take out the line breaks
(while (string-match "[ \t]*\n[ \t]*" file start)
(setq file1 (concat file1 (substring file start (match-beginning 0)))
start (match-end 0)))
(setq file2 (concat file1 (substring file start)))
(cond
((file-regular-p file2) file2)
((file-regular-p file1) file1)
;; If we cannot verify the existence of the file, we return the shorter
;; name. The idea behind this is that this may be a relative file name
;; and our idea about the current working directory may be wrong.
;; If it is a relative file name, it hopefully is short.
((not (string= "" file1)) file1)
((not (string= "" file2)) file2)
(t nil))))