(defun return-complementary-file-name (file-name list)
"Return complementary file name. or return nil in case of not found."
(let ((new-name nil))
(while list
(let ((ext1 (car (car list)))
(ext2 (cdr (car list))))
(if (not (null (string-match ext1 file-name)))
(progn
(setq new-name (concat
(file-name-sans-extension file-name)
(extension-from-pattern ext2)))
(if (file-exists-p new-name)
(setq list '(dummy))))
(if (not (null (string-match ext2 file-name)))
(progn
(setq new-name (concat
(file-name-sans-extension file-name)
(extension-from-pattern ext1)))
(if (file-exists-p new-name)
(setq list '(dummy)))))))
(setq list (cdr list)))
new-name))